@@ -163,112 +163,154 @@ Tuples.cs:
163163# 48| -1: [TypeMention] Void
164164# 49| 4: [BlockStmt] {...}
165165# 50| 0: [LocalVariableDeclStmt] ... ...;
166- # 50| 0: [LocalVariableDeclAndInitExpr] (String,Int32,Int32) x = ...
167- # 50| -1: [TypeMention] (string, int, int)
166+ # 50| 0: [LocalVariableDeclAndInitExpr] (String,( Int32,String) ,Int32) x = ...
167+ # 50| -1: [TypeMention] (string, ( int, string) , int)
168168# 50| 0: [LocalVariableAccess] access to local variable x
169169# 50| 1: [TupleExpr] (..., ...)
170170# 50| 0: [StringLiteral] "taint source"
171- # 50| 1: [IntLiteral] 2
171+ # 50| 1: [TupleExpr] (..., ...)
172+ # 50| 0: [IntLiteral] 2
173+ # 50| 1: [StringLiteral] "taint source"
172174# 50| 2: [IntLiteral] 3
173175# 51| 1: [SwitchStmt] switch (...) {...}
174176# 51| 0: [LocalVariableAccess] access to local variable x
175177# 53| 0: [CaseStmt] case ...:
176- # 53| 0: [VariablePatternExpr] (String,Int32,Int32) t
177- # 53| 0: [TypeMention] (string, int, int)
178+ # 53| 0: [VariablePatternExpr] (String,( Int32,String) ,Int32) t
179+ # 53| 0: [TypeMention] (string, ( int, string) , int)
178180# 53| 1: [TypeMention] string
179- # 53| 2: [TypeMention] int
181+ # 53| 2: [TypeMention] (int, string)
182+ # 53| 1: [TypeMention] int
183+ # 53| 2: [TypeMention] string
180184# 53| 3: [TypeMention] int
181185# 53| 1: [GTExpr] ... > ...
182- # 53| 0: [FieldAccess] access to field Item2
186+ # 53| 0: [FieldAccess] access to field Item3
183187# 53| -1: [LocalVariableAccess] access to local variable t
184- # 53| 1: [IntLiteral] 10
185- # 54| 1: [BreakStmt] break;
186- # 55| 2: [CaseStmt] case ...:
187- # 55| 0: [TupleExpr] (..., ...)
188- # 55| 0: [LocalVariableDeclExpr] String a
189- # 55| 1: [LocalVariableDeclExpr] Int32 b
190- # 55| 2: [DiscardExpr] _
188+ # 53| 1: [IntLiteral] 1
189+ # 54| 1: [ExprStmt] ...;
190+ # 54| 0: [MethodCall] call to method Sink
191+ # 54| 0: [FieldAccess] access to field Item1
192+ # 54| -1: [LocalVariableAccess] access to local variable t
193+ # 55| 2: [ExprStmt] ...;
194+ # 55| 0: [MethodCall] call to method Sink
195+ # 55| 0: [FieldAccess] access to field Item2
196+ # 55| -1: [FieldAccess] access to field Item2
197+ # 55| -1: [LocalVariableAccess] access to local variable t
191198# 56| 3: [ExprStmt] ...;
192199# 56| 0: [MethodCall] call to method Sink
193- # 56| 0: [LocalVariableAccess] access to local variable a
194- # 57| 4: [ExprStmt] ...;
195- # 57| 0: [MethodCall] call to method Sink
196- # 57| 0: [LocalVariableAccess] access to local variable b
197- # 58| 5: [BreakStmt] break;
198- # 62| 9: [Record] R1
199- # 62| 12: [NEOperator] !=
200+ # 56| 0: [FieldAccess] access to field Item1
201+ # 56| -1: [FieldAccess] access to field Item2
202+ # 56| -1: [LocalVariableAccess] access to local variable t
203+ # 57| 4: [BreakStmt] break;
204+ # 58| 5: [CaseStmt] case ...:
205+ # 58| 0: [TupleExpr] (..., ...)
206+ # 58| 0: [LocalVariableDeclExpr] String a
207+ # 58| 1: [TupleExpr] (..., ...)
208+ # 58| 0: [LocalVariableDeclExpr] Int32 b
209+ # 58| 1: [LocalVariableDeclExpr] String c
210+ # 58| 2: [DiscardExpr] _
211+ # 59| 6: [ExprStmt] ...;
212+ # 59| 0: [MethodCall] call to method Sink
213+ # 59| 0: [LocalVariableAccess] access to local variable a
214+ # 60| 7: [ExprStmt] ...;
215+ # 60| 0: [MethodCall] call to method Sink
216+ # 60| 0: [LocalVariableAccess] access to local variable c
217+ # 61| 8: [ExprStmt] ...;
218+ # 61| 0: [MethodCall] call to method Sink
219+ # 61| 0: [LocalVariableAccess] access to local variable b
220+ # 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| 1: [TupleExpr] (..., ...)
225+ # 65| 0: [LocalVariableDeclExpr] String p
226+ # 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] !=
200242#-----| 2: (Parameters)
201- # 62 | 0: [Parameter] r1
202- # 62 | 1: [Parameter] r2
203- # 62 | 13: [EQOperator] ==
243+ # 73 | 0: [Parameter] r1
244+ # 73 | 1: [Parameter] r2
245+ # 73 | 13: [EQOperator] ==
204246#-----| 2: (Parameters)
205- # 62 | 0: [Parameter] r1
206- # 62 | 1: [Parameter] r2
207- # 62 | 14: [Property] EqualityContract
208- # 62 | 3: [Getter] get_EqualityContract
209- # 62 | 15: [InstanceConstructor] R1
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
210252#-----| 2: (Parameters)
211- # 62 | 0: [Parameter] i
212- # 62 | -1: [TypeMention] string
213- # 62 | 1: [Parameter] j
214- # 62 | -1: [TypeMention] int
215- # 62 | 16: [Property] i
216- # 62 | 3: [Getter] get_i
217- # 62 | 4: [Setter] set_i
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
218260#-----| 2: (Parameters)
219- # 62 | 0: [Parameter] value
220- # 62 | 17: [Property] j
221- # 62 | 3: [Getter] get_j
222- # 62 | 4: [Setter] set_j
261+ # 73 | 0: [Parameter] value
262+ # 73 | 17: [Property] j
263+ # 73 | 3: [Getter] get_j
264+ # 73 | 4: [Setter] set_j
223265#-----| 2: (Parameters)
224- # 62 | 0: [Parameter] value
225- # 64 | 10: [Method] M5
226- # 64 | -1: [TypeMention] Void
227- # 65 | 4: [BlockStmt] {...}
228- # 66 | 0: [LocalVariableDeclStmt] ... ...;
229- # 66 | 0: [LocalVariableDeclAndInitExpr] R1 r = ...
230- # 66 | -1: [TypeMention] R1
231- # 66 | 0: [LocalVariableAccess] access to local variable r
232- # 66 | 1: [ObjectCreation] object creation of type R1
233- # 66 | -1: [TypeMention] R1
234- # 66 | 0: [StringLiteral] "taint source"
235- # 66 | 1: [IntLiteral] 1
236- # 67 | 1: [ExprStmt] ...;
237- # 67 | 0: [MethodCall] call to method Sink
238- # 67 | 0: [PropertyCall] access to property i
239- # 67 | -1: [LocalVariableAccess] access to local variable r
240- # 69 | 2: [ExprStmt] ...;
241- # 69 | 0: [AssignExpr] ... = ...
242- # 69 | 0: [TupleExpr] (..., ...)
243- # 69 | 0: [LocalVariableDeclExpr] String a
244- # 69 | 1: [LocalVariableDeclExpr] Int32 b
245- # 69 | 1: [LocalVariableAccess] access to local variable r
246- # 70 | 3: [ExprStmt] ...;
247- # 70 | 0: [MethodCall] call to method Sink
248- # 70 | 0: [LocalVariableAccess] access to local variable a
249- # 71 | 4: [ExprStmt] ...;
250- # 71 | 0: [MethodCall] call to method Sink
251- # 71 | 0: [LocalVariableAccess] access to local variable b
252- # 73 | 5: [SwitchStmt] switch (...) {...}
253- # 73 | 0: [LocalVariableAccess] access to local variable r
254- # 75 | 0: [CaseStmt] case ...:
255- # 75 | 0: [TupleExpr] (..., ...)
256- # 75 | 0: [LocalVariableDeclExpr] String x
257- # 75 | 1: [LocalVariableDeclExpr] Int32 y
258- # 76 | 1: [ExprStmt] ...;
259- # 76 | 0: [MethodCall] call to method Sink
260- # 76 | 0: [LocalVariableAccess] access to local variable x
261- # 77 | 2: [ExprStmt] ...;
262- # 77 | 0: [MethodCall] call to method Sink
263- # 77 | 0: [LocalVariableAccess] access to local variable y
264- # 78 | 3: [BreakStmt] break;
265- # 82 | 11: [Method] Sink
266- # 82 | -1: [TypeMention] Void
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
267309#-----| 1: (Type parameters)
268- # 82 | 0: [TypeParameter] T
310+ # 93 | 0: [TypeParameter] T
269311#-----| 2: (Parameters)
270- # 82 | 0: [Parameter] x
271- # 82 | -1: [TypeMention] T
272- # 82 | 4: [BlockStmt] {...}
273- # 85 | [NamespaceDeclaration] namespace ... { ... }
274- # 87 | 1: [Class] IsExternalInit
312+ # 93 | 0: [Parameter] x
313+ # 93 | -1: [TypeMention] T
314+ # 93 | 4: [BlockStmt] {...}
315+ # 96 | [NamespaceDeclaration] namespace ... { ... }
316+ # 98 | 1: [Class] IsExternalInit
0 commit comments