Skip to content

Commit 09dc3c8

Browse files
michaelnebelMathiasVP
authored andcommitted
C#: Update model generator implementation and test expected output.
1 parent a94cffa commit 09dc3c8

File tree

3 files changed

+13
-13
lines changed

3 files changed

+13
-13
lines changed

csharp/ql/src/utils/modelgenerator/internal/CaptureModels.qll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -124,13 +124,13 @@ module ModelGeneratorCommonInput implements ModelGeneratorCommonInputSig<Locatio
124124

125125
string qualifierString() { result = "Argument[this]" }
126126

127-
string parameterAccess(CS::Parameter p) {
127+
string parameterApproximateAccess(CS::Parameter p) {
128128
if Collections::isCollectionType(p.getType())
129129
then result = "Argument[" + p.getPosition() + "].Element"
130130
else result = "Argument[" + p.getPosition() + "]"
131131
}
132132

133-
string parameterContentAccess(CS::Parameter p) { result = "Argument[" + p.getPosition() + "]" }
133+
string parameterExactAccess(CS::Parameter p) { result = "Argument[" + p.getPosition() + "]" }
134134

135135
private signature string parameterAccessSig(Parameter p);
136136

@@ -145,13 +145,13 @@ module ModelGeneratorCommonInput implements ModelGeneratorCommonInputSig<Locatio
145145
}
146146

147147
bindingset[c]
148-
string paramReturnNodeAsOutput(CS::Callable c, ParameterPosition pos) {
149-
result = ParamReturnNodeAsOutput<parameterAccess/1>::paramReturnNodeAsOutput(c, pos)
148+
string paramReturnNodeAsApproximateOutput(CS::Callable c, ParameterPosition pos) {
149+
result = ParamReturnNodeAsOutput<parameterApproximateAccess/1>::paramReturnNodeAsOutput(c, pos)
150150
}
151151

152152
bindingset[c]
153-
string paramReturnNodeAsContentOutput(Callable c, ParameterPosition pos) {
154-
result = ParamReturnNodeAsOutput<parameterContentAccess/1>::paramReturnNodeAsOutput(c, pos)
153+
string paramReturnNodeAsExactOutput(Callable c, ParameterPosition pos) {
154+
result = ParamReturnNodeAsOutput<parameterExactAccess/1>::paramReturnNodeAsOutput(c, pos)
155155
}
156156

157157
ParameterPosition getReturnKindParamPosition(ReturnKind kind) {

csharp/ql/src/utils/modelgenerator/internal/CaptureTypeBasedSummaryModels.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ private predicate localTypeParameter(Callable callable, TypeParameter tp) {
3939
*/
4040
private predicate parameter(Callable callable, string input, TypeParameter tp) {
4141
exists(Parameter p |
42-
input = ModelGeneratorInput::parameterAccess(p) and
42+
input = ModelGeneratorInput::parameterApproximateAccess(p) and
4343
p = callable.getAParameter() and
4444
(
4545
// Parameter of type tp

csharp/ql/test/utils/modelgenerator/dataflow/Summaries.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,35 +133,35 @@ public List<string> ReturnFieldInAList()
133133
return new List<string> { tainted };
134134
}
135135

136-
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0].Element;ReturnValue;value;df-generated
136+
// heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0];ReturnValue;value;df-generated
137137
// contentbased-summary=Models;CollectionFlow;false;ReturnComplexTypeArray;(System.String[]);;Argument[0];ReturnValue;value;dfc-generated
138138
public string[] ReturnComplexTypeArray(string[] a)
139139
{
140140
return a;
141141
}
142142

143-
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0].Element;ReturnValue;value;df-generated
143+
// heuristic-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0];ReturnValue;value;df-generated
144144
// contentbased-summary=Models;CollectionFlow;false;ReturnBulkTypeList;(System.Collections.Generic.List<System.Byte>);;Argument[0];ReturnValue;value;dfc-generated
145145
public List<byte> ReturnBulkTypeList(List<byte> a)
146146
{
147147
return a;
148148
}
149149

150-
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0].Element;ReturnValue;value;df-generated
150+
// heuristic-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0];ReturnValue;value;df-generated
151151
// contentbased-summary=Models;CollectionFlow;false;ReturnComplexTypeDictionary;(System.Collections.Generic.Dictionary<System.Int32,System.String>);;Argument[0];ReturnValue;value;dfc-generated
152152
public Dictionary<int, string> ReturnComplexTypeDictionary(Dictionary<int, string> a)
153153
{
154154
return a;
155155
}
156156

157-
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0].Element;ReturnValue;value;df-generated
157+
// heuristic-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0];ReturnValue;value;df-generated
158158
// contentbased-summary=Models;CollectionFlow;false;ReturnUntypedArray;(System.Array);;Argument[0];ReturnValue;value;dfc-generated
159159
public Array ReturnUntypedArray(Array a)
160160
{
161161
return a;
162162
}
163163

164-
// SPURIOUS-heuristic-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0].Element;ReturnValue;value;df-generated
164+
// heuristic-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0];ReturnValue;value;df-generated
165165
// contentbased-summary=Models;CollectionFlow;false;ReturnUntypedList;(System.Collections.IList);;Argument[0];ReturnValue;value;dfc-generated
166166
public IList ReturnUntypedList(IList a)
167167
{
@@ -202,7 +202,7 @@ public IEnumerableFlow(string s)
202202
tainted = s;
203203
}
204204

205-
// SPURIOUS-heuristic-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0].Element;ReturnValue;value;df-generated
205+
// heuristic-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0];ReturnValue;value;df-generated
206206
// contentbased-summary=Models;IEnumerableFlow;false;ReturnIEnumerable;(System.Collections.Generic.IEnumerable<System.String>);;Argument[0];ReturnValue;value;dfc-generated
207207
public IEnumerable<string> ReturnIEnumerable(IEnumerable<string> input)
208208
{

0 commit comments

Comments
 (0)