@@ -161,6 +161,9 @@ Tuples.cs:
161161# 45| -1: [LocalVariableAccess] access to local variable y
162162# 48| 8: [Method] M4
163163# 48| -1: [TypeMention] Void
164+ #-----| 2: (Parameters)
165+ # 48| 0: [Parameter] s
166+ # 48| -1: [TypeMention] string
164167# 49| 4: [BlockStmt] {...}
165168# 50| 0: [LocalVariableDeclStmt] ... ...;
166169# 50| 0: [LocalVariableDeclAndInitExpr] (String,(Int32,String),Int32) x = ...
@@ -218,99 +221,140 @@ Tuples.cs:
218221# 61| 0: [MethodCall] call to method Sink
219222# 61| 0: [LocalVariableAccess] access to local variable b
220223# 62| 9: [BreakStmt] break;
221- # 65| 2: [IfStmt] if (...) ...
222- # 65| 0: [IsExpr] ... is ...
223- # 65| 0: [LocalVariableAccess] access to local variable x
224+ # 65| 2: [LocalVariableDeclStmt] ... ...;
225+ # 65| 0: [LocalVariableDeclAndInitExpr] (String,(Int32,String),Int32) y = ...
226+ # 65| -1: [TypeMention] (string, (int, string), int)
227+ # 65| 0: [LocalVariableAccess] access to local variable y
224228# 65| 1: [TupleExpr] (..., ...)
225- # 65| 0: [LocalVariableDeclExpr] String p
229+ # 65| 0: [ParameterAccess] access to parameter s
226230# 65| 1: [TupleExpr] (..., ...)
227- # 65| 0: [LocalVariableDeclExpr] Int32 q
228- # 65| 1: [LocalVariableDeclExpr] String r
229- # 65| 2: [DiscardExpr] _
230- # 66| 1: [BlockStmt] {...}
231- # 67| 0: [ExprStmt] ...;
232- # 67| 0: [MethodCall] call to method Sink
233- # 67| 0: [LocalVariableAccess] access to local variable p
234- # 68| 1: [ExprStmt] ...;
235- # 68| 0: [MethodCall] call to method Sink
236- # 68| 0: [LocalVariableAccess] access to local variable r
237- # 69| 2: [ExprStmt] ...;
238- # 69| 0: [MethodCall] call to method Sink
239- # 69| 0: [LocalVariableAccess] access to local variable q
240- # 73| 9: [Record] R1
241- # 73| 12: [NEOperator] !=
231+ # 65| 0: [IntLiteral] 2
232+ # 65| 1: [ParameterAccess] access to parameter s
233+ # 65| 2: [IntLiteral] 3
234+ # 66| 3: [SwitchStmt] switch (...) {...}
235+ # 66| 0: [LocalVariableAccess] access to local variable y
236+ # 68| 0: [CaseStmt] case ...:
237+ # 68| 0: [RecursivePatternExpr] { ... }
238+ # 68| 2: [PositionalPatternExpr] ( ... )
239+ # 68| 0: [ConstantPatternExpr,StringLiteral] "taint source"
240+ # 68| 1: [TupleExpr] (..., ...)
241+ # 68| 0: [LocalVariableDeclExpr] Int32 b
242+ # 68| 1: [LocalVariableDeclExpr] String c
243+ # 68| 2: [DiscardPatternExpr] _
244+ # 69| 1: [ExprStmt] ...;
245+ # 69| 0: [MethodCall] call to method Sink
246+ # 69| 0: [FieldAccess] access to field Item1
247+ # 69| -1: [LocalVariableAccess] access to local variable y
248+ # 70| 2: [ExprStmt] ...;
249+ # 70| 0: [MethodCall] call to method Sink
250+ # 70| 0: [FieldAccess] access to field Item2
251+ # 70| -1: [FieldAccess] access to field Item2
252+ # 70| -1: [LocalVariableAccess] access to local variable y
253+ # 71| 3: [ExprStmt] ...;
254+ # 71| 0: [MethodCall] call to method Sink
255+ # 71| 0: [LocalVariableAccess] access to local variable c
256+ # 72| 4: [ExprStmt] ...;
257+ # 72| 0: [MethodCall] call to method Sink
258+ # 72| 0: [FieldAccess] access to field Item1
259+ # 72| -1: [FieldAccess] access to field Item2
260+ # 72| -1: [LocalVariableAccess] access to local variable y
261+ # 73| 5: [ExprStmt] ...;
262+ # 73| 0: [MethodCall] call to method Sink
263+ # 73| 0: [LocalVariableAccess] access to local variable b
264+ # 74| 6: [BreakStmt] break;
265+ # 77| 4: [IfStmt] if (...) ...
266+ # 77| 0: [IsExpr] ... is ...
267+ # 77| 0: [LocalVariableAccess] access to local variable x
268+ # 77| 1: [TupleExpr] (..., ...)
269+ # 77| 0: [LocalVariableDeclExpr] String p
270+ # 77| 1: [TupleExpr] (..., ...)
271+ # 77| 0: [LocalVariableDeclExpr] Int32 q
272+ # 77| 1: [LocalVariableDeclExpr] String r
273+ # 77| 2: [DiscardExpr] _
274+ # 78| 1: [BlockStmt] {...}
275+ # 79| 0: [ExprStmt] ...;
276+ # 79| 0: [MethodCall] call to method Sink
277+ # 79| 0: [LocalVariableAccess] access to local variable p
278+ # 80| 1: [ExprStmt] ...;
279+ # 80| 0: [MethodCall] call to method Sink
280+ # 80| 0: [LocalVariableAccess] access to local variable r
281+ # 81| 2: [ExprStmt] ...;
282+ # 81| 0: [MethodCall] call to method Sink
283+ # 81| 0: [LocalVariableAccess] access to local variable q
284+ # 85| 9: [Record] R1
285+ # 85| 12: [NEOperator] !=
242286#-----| 2: (Parameters)
243- # 73 | 0: [Parameter] r1
244- # 73 | 1: [Parameter] r2
245- # 73 | 13: [EQOperator] ==
287+ # 85 | 0: [Parameter] r1
288+ # 85 | 1: [Parameter] r2
289+ # 85 | 13: [EQOperator] ==
246290#-----| 2: (Parameters)
247- # 73 | 0: [Parameter] r1
248- # 73 | 1: [Parameter] r2
249- # 73 | 14: [Property] EqualityContract
250- # 73 | 3: [Getter] get_EqualityContract
251- # 73 | 15: [InstanceConstructor] R1
291+ # 85 | 0: [Parameter] r1
292+ # 85 | 1: [Parameter] r2
293+ # 85 | 14: [Property] EqualityContract
294+ # 85 | 3: [Getter] get_EqualityContract
295+ # 85 | 15: [InstanceConstructor] R1
252296#-----| 2: (Parameters)
253- # 73 | 0: [Parameter] i
254- # 73 | -1: [TypeMention] string
255- # 73 | 1: [Parameter] j
256- # 73 | -1: [TypeMention] int
257- # 73 | 16: [Property] i
258- # 73 | 3: [Getter] get_i
259- # 73 | 4: [Setter] set_i
297+ # 85 | 0: [Parameter] i
298+ # 85 | -1: [TypeMention] string
299+ # 85 | 1: [Parameter] j
300+ # 85 | -1: [TypeMention] int
301+ # 85 | 16: [Property] i
302+ # 85 | 3: [Getter] get_i
303+ # 85 | 4: [Setter] set_i
260304#-----| 2: (Parameters)
261- # 73 | 0: [Parameter] value
262- # 73 | 17: [Property] j
263- # 73 | 3: [Getter] get_j
264- # 73 | 4: [Setter] set_j
305+ # 85 | 0: [Parameter] value
306+ # 85 | 17: [Property] j
307+ # 85 | 3: [Getter] get_j
308+ # 85 | 4: [Setter] set_j
265309#-----| 2: (Parameters)
266- # 73 | 0: [Parameter] value
267- # 75 | 10: [Method] M5
268- # 75 | -1: [TypeMention] Void
269- # 76 | 4: [BlockStmt] {...}
270- # 77 | 0: [LocalVariableDeclStmt] ... ...;
271- # 77 | 0: [LocalVariableDeclAndInitExpr] R1 r = ...
272- # 77 | -1: [TypeMention] R1
273- # 77 | 0: [LocalVariableAccess] access to local variable r
274- # 77 | 1: [ObjectCreation] object creation of type R1
275- # 77 | -1: [TypeMention] R1
276- # 77 | 0: [StringLiteral] "taint source"
277- # 77 | 1: [IntLiteral] 1
278- # 78 | 1: [ExprStmt] ...;
279- # 78 | 0: [MethodCall] call to method Sink
280- # 78 | 0: [PropertyCall] access to property i
281- # 78 | -1: [LocalVariableAccess] access to local variable r
282- # 80 | 2: [ExprStmt] ...;
283- # 80 | 0: [AssignExpr] ... = ...
284- # 80 | 0: [TupleExpr] (..., ...)
285- # 80 | 0: [LocalVariableDeclExpr] String a
286- # 80 | 1: [LocalVariableDeclExpr] Int32 b
287- # 80 | 1: [LocalVariableAccess] access to local variable r
288- # 81 | 3: [ExprStmt] ...;
289- # 81 | 0: [MethodCall] call to method Sink
290- # 81 | 0: [LocalVariableAccess] access to local variable a
291- # 82 | 4: [ExprStmt] ...;
292- # 82 | 0: [MethodCall] call to method Sink
293- # 82 | 0: [LocalVariableAccess] access to local variable b
294- # 84 | 5: [SwitchStmt] switch (...) {...}
295- # 84 | 0: [LocalVariableAccess] access to local variable r
296- # 86 | 0: [CaseStmt] case ...:
297- # 86 | 0: [TupleExpr] (..., ...)
298- # 86 | 0: [LocalVariableDeclExpr] String x
299- # 86 | 1: [LocalVariableDeclExpr] Int32 y
300- # 87 | 1: [ExprStmt] ...;
301- # 87 | 0: [MethodCall] call to method Sink
302- # 87 | 0: [LocalVariableAccess] access to local variable x
303- # 88 | 2: [ExprStmt] ...;
304- # 88 | 0: [MethodCall] call to method Sink
305- # 88 | 0: [LocalVariableAccess] access to local variable y
306- # 89 | 3: [BreakStmt] break;
307- # 93 | 11: [Method] Sink
308- # 93 | -1: [TypeMention] Void
310+ # 85 | 0: [Parameter] value
311+ # 87 | 10: [Method] M5
312+ # 87 | -1: [TypeMention] Void
313+ # 88 | 4: [BlockStmt] {...}
314+ # 89 | 0: [LocalVariableDeclStmt] ... ...;
315+ # 89 | 0: [LocalVariableDeclAndInitExpr] R1 r = ...
316+ # 89 | -1: [TypeMention] R1
317+ # 89 | 0: [LocalVariableAccess] access to local variable r
318+ # 89 | 1: [ObjectCreation] object creation of type R1
319+ # 89 | -1: [TypeMention] R1
320+ # 89 | 0: [StringLiteral] "taint source"
321+ # 89 | 1: [IntLiteral] 1
322+ # 90 | 1: [ExprStmt] ...;
323+ # 90 | 0: [MethodCall] call to method Sink
324+ # 90 | 0: [PropertyCall] access to property i
325+ # 90 | -1: [LocalVariableAccess] access to local variable r
326+ # 92 | 2: [ExprStmt] ...;
327+ # 92 | 0: [AssignExpr] ... = ...
328+ # 92 | 0: [TupleExpr] (..., ...)
329+ # 92 | 0: [LocalVariableDeclExpr] String a
330+ # 92 | 1: [LocalVariableDeclExpr] Int32 b
331+ # 92 | 1: [LocalVariableAccess] access to local variable r
332+ # 93 | 3: [ExprStmt] ...;
333+ # 93 | 0: [MethodCall] call to method Sink
334+ # 93 | 0: [LocalVariableAccess] access to local variable a
335+ # 94 | 4: [ExprStmt] ...;
336+ # 94 | 0: [MethodCall] call to method Sink
337+ # 94 | 0: [LocalVariableAccess] access to local variable b
338+ # 96 | 5: [SwitchStmt] switch (...) {...}
339+ # 96 | 0: [LocalVariableAccess] access to local variable r
340+ # 98 | 0: [CaseStmt] case ...:
341+ # 98 | 0: [TupleExpr] (..., ...)
342+ # 98 | 0: [LocalVariableDeclExpr] String x
343+ # 98 | 1: [LocalVariableDeclExpr] Int32 y
344+ # 99 | 1: [ExprStmt] ...;
345+ # 99 | 0: [MethodCall] call to method Sink
346+ # 99 | 0: [LocalVariableAccess] access to local variable x
347+ # 100 | 2: [ExprStmt] ...;
348+ # 100 | 0: [MethodCall] call to method Sink
349+ # 100 | 0: [LocalVariableAccess] access to local variable y
350+ # 101 | 3: [BreakStmt] break;
351+ # 105 | 11: [Method] Sink
352+ # 105 | -1: [TypeMention] Void
309353#-----| 1: (Type parameters)
310- # 93 | 0: [TypeParameter] T
354+ # 105 | 0: [TypeParameter] T
311355#-----| 2: (Parameters)
312- # 93 | 0: [Parameter] x
313- # 93 | -1: [TypeMention] T
314- # 93 | 4: [BlockStmt] {...}
315- # 96 | [NamespaceDeclaration] namespace ... { ... }
316- # 98 | 1: [Class] IsExternalInit
356+ # 105 | 0: [Parameter] x
357+ # 105 | -1: [TypeMention] T
358+ # 105 | 4: [BlockStmt] {...}
359+ # 108 | [NamespaceDeclaration] namespace ... { ... }
360+ # 110 | 1: [Class] IsExternalInit
0 commit comments