Skip to content

Commit 796a180

Browse files
committed
C#: Add testcase for GVN printing.
1 parent 7e25b14 commit 796a180

File tree

2 files changed

+130
-1
lines changed

2 files changed

+130
-1
lines changed

csharp/ql/test/library-tests/structuralcomparison/structuralComparison.expected

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
same
12
| StructuralComparison.cs:15:18:15:18 | access to field x | StructuralComparison.cs:16:18:16:18 | access to field x |
23
| StructuralComparison.cs:15:18:15:22 | ... + ... | StructuralComparison.cs:16:18:16:22 | ... + ... |
34
| StructuralComparison.cs:15:22:15:22 | access to field y | StructuralComparison.cs:16:22:16:22 | access to field y |
@@ -100,3 +101,130 @@
100101
| StructuralComparison.cs:50:18:50:21 | access to property Prop | StructuralComparison.cs:51:18:51:26 | access to property Prop |
101102
| StructuralComparison.cs:51:18:51:26 | access to property Prop | StructuralComparison.cs:49:18:49:26 | access to property Prop |
102103
| StructuralComparison.cs:51:18:51:26 | access to property Prop | StructuralComparison.cs:50:18:50:21 | access to property Prop |
104+
gvn
105+
| StructuralComparison.cs:5:26:5:26 | access to field x | [(kind:Expr(16),true,x)] |
106+
| StructuralComparison.cs:5:26:5:26 | this access | [(kind:Expr(12))] |
107+
| StructuralComparison.cs:5:26:5:30 | ... = ... | [[(kind:Expr(16),true,x)] :: 0 :: (kind:Expr(63))] |
108+
| StructuralComparison.cs:5:30:5:30 | 0 | 0 |
109+
| StructuralComparison.cs:6:26:6:26 | access to field y | [(kind:Expr(16),true,y)] |
110+
| StructuralComparison.cs:6:26:6:26 | this access | [(kind:Expr(12))] |
111+
| StructuralComparison.cs:6:26:6:30 | ... = ... | [[(kind:Expr(16),true,y)] :: 1 :: (kind:Expr(63))] |
112+
| StructuralComparison.cs:6:30:6:30 | 1 | 1 |
113+
| StructuralComparison.cs:8:24:8:24 | 0 | 0 |
114+
| StructuralComparison.cs:9:29:9:29 | access to parameter a | [(kind:Expr(15),false,a)] |
115+
| StructuralComparison.cs:10:38:10:39 | access to parameter v1 | [(kind:Expr(15),false,v1)] |
116+
| StructuralComparison.cs:10:38:10:44 | ... + ... | [[(kind:Expr(15),false,v2)] :: [(kind:Expr(15),false,v1)] :: (kind:Expr(44))] |
117+
| StructuralComparison.cs:10:43:10:44 | access to parameter v2 | [(kind:Expr(15),false,v2)] |
118+
| StructuralComparison.cs:14:5:17:5 | {...} | [[[[(kind:Expr(14),false,z2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,z1)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: (kind:Stmt(1))] |
119+
| StructuralComparison.cs:15:9:15:23 | ... ...; | [[[(kind:Expr(14),false,z1)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
120+
| StructuralComparison.cs:15:13:15:14 | access to local variable z1 | [(kind:Expr(14),false,z1)] |
121+
| StructuralComparison.cs:15:13:15:22 | Int32 z1 = ... | [[(kind:Expr(14),false,z1)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] |
122+
| StructuralComparison.cs:15:18:15:18 | access to field x | [(kind:Expr(16),true,x)] |
123+
| StructuralComparison.cs:15:18:15:18 | this access | [(kind:Expr(12),false,Class)] |
124+
| StructuralComparison.cs:15:18:15:22 | ... + ... | [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] |
125+
| StructuralComparison.cs:15:22:15:22 | access to field y | [(kind:Expr(16),true,y)] |
126+
| StructuralComparison.cs:15:22:15:22 | this access | [(kind:Expr(12),false,Class)] |
127+
| StructuralComparison.cs:16:9:16:23 | ... ...; | [[[(kind:Expr(14),false,z2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
128+
| StructuralComparison.cs:16:13:16:14 | access to local variable z2 | [(kind:Expr(14),false,z2)] |
129+
| StructuralComparison.cs:16:13:16:22 | Int32 z2 = ... | [[(kind:Expr(14),false,z2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] :: (kind:Expr(83))] |
130+
| StructuralComparison.cs:16:18:16:18 | access to field x | [(kind:Expr(16),true,x)] |
131+
| StructuralComparison.cs:16:18:16:18 | this access | [(kind:Expr(12),false,Class)] |
132+
| StructuralComparison.cs:16:18:16:22 | ... + ... | [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: (kind:Expr(44))] |
133+
| StructuralComparison.cs:16:22:16:22 | access to field y | [(kind:Expr(16),true,y)] |
134+
| StructuralComparison.cs:16:22:16:22 | this access | [(kind:Expr(12),false,Class)] |
135+
| StructuralComparison.cs:20:5:29:5 | {...} | [[[[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] :: [[[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] :: [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] :: [[[(kind:Expr(14),false,z7)] :: [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,z6)] :: [[(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M0)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,z5)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,z4)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,z3)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: (kind:Stmt(1))] |
136+
| StructuralComparison.cs:21:9:21:23 | ... ...; | [[[(kind:Expr(14),false,z3)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
137+
| StructuralComparison.cs:21:13:21:14 | access to local variable z3 | [(kind:Expr(14),false,z3)] |
138+
| StructuralComparison.cs:21:13:21:22 | Int32 z3 = ... | [[(kind:Expr(14),false,z3)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] |
139+
| StructuralComparison.cs:21:18:21:22 | call to method M1 | [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] |
140+
| StructuralComparison.cs:21:18:21:22 | this access | [(kind:Expr(12),false,Class)] |
141+
| StructuralComparison.cs:21:21:21:21 | access to field x | [(kind:Expr(16),true,x)] |
142+
| StructuralComparison.cs:21:21:21:21 | this access | [(kind:Expr(12),false,Class)] |
143+
| StructuralComparison.cs:22:9:22:23 | ... ...; | [[[(kind:Expr(14),false,z4)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
144+
| StructuralComparison.cs:22:13:22:14 | access to local variable z4 | [(kind:Expr(14),false,z4)] |
145+
| StructuralComparison.cs:22:13:22:22 | Int32 z4 = ... | [[(kind:Expr(14),false,z4)] :: [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] |
146+
| StructuralComparison.cs:22:18:22:22 | call to method M1 | [[(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] |
147+
| StructuralComparison.cs:22:18:22:22 | this access | [(kind:Expr(12),false,Class)] |
148+
| StructuralComparison.cs:22:21:22:21 | access to field x | [(kind:Expr(16),true,x)] |
149+
| StructuralComparison.cs:22:21:22:21 | this access | [(kind:Expr(12),false,Class)] |
150+
| StructuralComparison.cs:23:9:23:23 | ... ...; | [[[(kind:Expr(14),false,z5)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
151+
| StructuralComparison.cs:23:13:23:14 | access to local variable z5 | [(kind:Expr(14),false,z5)] |
152+
| StructuralComparison.cs:23:13:23:22 | Int32 z5 = ... | [[(kind:Expr(14),false,z5)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] :: (kind:Expr(83))] |
153+
| StructuralComparison.cs:23:18:23:22 | call to method M1 | [[(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M1)] |
154+
| StructuralComparison.cs:23:18:23:22 | this access | [(kind:Expr(12),false,Class)] |
155+
| StructuralComparison.cs:23:21:23:21 | access to field y | [(kind:Expr(16),true,y)] |
156+
| StructuralComparison.cs:23:21:23:21 | this access | [(kind:Expr(12),false,Class)] |
157+
| StructuralComparison.cs:24:9:24:22 | ... ...; | [[[(kind:Expr(14),false,z6)] :: [[(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M0)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
158+
| StructuralComparison.cs:24:13:24:14 | access to local variable z6 | [(kind:Expr(14),false,z6)] |
159+
| StructuralComparison.cs:24:13:24:21 | Int32 z6 = ... | [[(kind:Expr(14),false,z6)] :: [[(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M0)] :: (kind:Expr(83))] |
160+
| StructuralComparison.cs:24:18:24:21 | call to method M0 | [[(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M0)] |
161+
| StructuralComparison.cs:24:18:24:21 | this access | [(kind:Expr(12),false,Class)] |
162+
| StructuralComparison.cs:25:9:25:37 | ... ...; | [[[(kind:Expr(14),false,z7)] :: [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Expr(44))] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
163+
| StructuralComparison.cs:25:13:25:14 | access to local variable z7 | [(kind:Expr(14),false,z7)] |
164+
| StructuralComparison.cs:25:13:25:36 | Int32 z7 = ... | [[(kind:Expr(14),false,z7)] :: [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Expr(44))] :: (kind:Expr(83))] |
165+
| StructuralComparison.cs:25:18:25:25 | call to method M2 | [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] |
166+
| StructuralComparison.cs:25:18:25:25 | this access | [(kind:Expr(12),false,Class)] |
167+
| StructuralComparison.cs:25:18:25:36 | ... + ... | [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Expr(44))] |
168+
| StructuralComparison.cs:25:21:25:21 | access to field x | [(kind:Expr(16),true,x)] |
169+
| StructuralComparison.cs:25:21:25:21 | this access | [(kind:Expr(12),false,Class)] |
170+
| StructuralComparison.cs:25:24:25:24 | access to field y | [(kind:Expr(16),true,y)] |
171+
| StructuralComparison.cs:25:24:25:24 | this access | [(kind:Expr(12),false,Class)] |
172+
| StructuralComparison.cs:25:29:25:36 | call to method M2 | [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] |
173+
| StructuralComparison.cs:25:29:25:36 | this access | [(kind:Expr(12),false,Class)] |
174+
| StructuralComparison.cs:25:32:25:32 | access to field x | [(kind:Expr(16),true,x)] |
175+
| StructuralComparison.cs:25:32:25:32 | this access | [(kind:Expr(12),false,Class)] |
176+
| StructuralComparison.cs:25:35:25:35 | access to field y | [(kind:Expr(16),true,y)] |
177+
| StructuralComparison.cs:25:35:25:35 | this access | [(kind:Expr(12),false,Class)] |
178+
| StructuralComparison.cs:26:9:26:16 | call to method M2 | [[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] |
179+
| StructuralComparison.cs:26:9:26:16 | this access | [(kind:Expr(12),false,Class)] |
180+
| StructuralComparison.cs:26:9:26:17 | ...; | [[[(kind:Expr(16),true,y)] :: [(kind:Expr(16),true,x)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] |
181+
| StructuralComparison.cs:26:12:26:12 | access to field x | [(kind:Expr(16),true,x)] |
182+
| StructuralComparison.cs:26:12:26:12 | this access | [(kind:Expr(12),false,Class)] |
183+
| StructuralComparison.cs:26:15:26:15 | access to field y | [(kind:Expr(16),true,y)] |
184+
| StructuralComparison.cs:26:15:26:15 | this access | [(kind:Expr(12),false,Class)] |
185+
| StructuralComparison.cs:27:9:27:16 | call to method M2 | [[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] |
186+
| StructuralComparison.cs:27:9:27:16 | this access | [(kind:Expr(12),false,Class)] |
187+
| StructuralComparison.cs:27:9:27:17 | ...; | [[[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] |
188+
| StructuralComparison.cs:27:12:27:12 | access to field y | [(kind:Expr(16),true,y)] |
189+
| StructuralComparison.cs:27:12:27:12 | this access | [(kind:Expr(12),false,Class)] |
190+
| StructuralComparison.cs:27:15:27:15 | access to field x | [(kind:Expr(16),true,x)] |
191+
| StructuralComparison.cs:27:15:27:15 | this access | [(kind:Expr(12),false,Class)] |
192+
| StructuralComparison.cs:28:9:28:16 | call to method M2 | [[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] |
193+
| StructuralComparison.cs:28:9:28:16 | this access | [(kind:Expr(12),false,Class)] |
194+
| StructuralComparison.cs:28:9:28:17 | ...; | [[[(kind:Expr(16),true,x)] :: [(kind:Expr(16),true,y)] :: [(kind:Expr(12),false,Class)] :: (kind:Expr(24),false,M2)] :: (kind:Stmt(2))] |
195+
| StructuralComparison.cs:28:12:28:12 | access to field y | [(kind:Expr(16),true,y)] |
196+
| StructuralComparison.cs:28:12:28:12 | this access | [(kind:Expr(12),false,Class)] |
197+
| StructuralComparison.cs:28:15:28:15 | access to field x | [(kind:Expr(16),true,x)] |
198+
| StructuralComparison.cs:28:15:28:15 | this access | [(kind:Expr(12),false,Class)] |
199+
| StructuralComparison.cs:41:5:45:5 | {...} | [[[[(kind:Expr(14),false,x3)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,x2)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,x1)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: (kind:Stmt(1))] |
200+
| StructuralComparison.cs:42:9:42:28 | ... ...; | [[[(kind:Expr(14),false,x1)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
201+
| StructuralComparison.cs:42:13:42:14 | access to local variable x1 | [(kind:Expr(14),false,x1)] |
202+
| StructuralComparison.cs:42:13:42:27 | Int32 x1 = ... | [[(kind:Expr(14),false,x1)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] |
203+
| StructuralComparison.cs:42:18:42:21 | base access | [(kind:Expr(13),false,BaseClass)] |
204+
| StructuralComparison.cs:42:18:42:27 | access to field Field | [(kind:Expr(16),true,Field)] |
205+
| StructuralComparison.cs:43:9:43:23 | ... ...; | [[[(kind:Expr(14),false,x2)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
206+
| StructuralComparison.cs:43:13:43:14 | access to local variable x2 | [(kind:Expr(14),false,x2)] |
207+
| StructuralComparison.cs:43:13:43:22 | Int32 x2 = ... | [[(kind:Expr(14),false,x2)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] |
208+
| StructuralComparison.cs:43:18:43:22 | access to field Field | [(kind:Expr(16),true,Field)] |
209+
| StructuralComparison.cs:43:18:43:22 | this access | [(kind:Expr(12),false,DerivedClass)] |
210+
| StructuralComparison.cs:44:9:44:28 | ... ...; | [[[(kind:Expr(14),false,x3)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
211+
| StructuralComparison.cs:44:13:44:14 | access to local variable x3 | [(kind:Expr(14),false,x3)] |
212+
| StructuralComparison.cs:44:13:44:27 | Int32 x3 = ... | [[(kind:Expr(14),false,x3)] :: [(kind:Expr(16),true,Field)] :: (kind:Expr(83))] |
213+
| StructuralComparison.cs:44:18:44:21 | this access | [(kind:Expr(12),false,DerivedClass)] |
214+
| StructuralComparison.cs:44:18:44:27 | access to field Field | [(kind:Expr(16),true,Field)] |
215+
| StructuralComparison.cs:48:5:52:5 | {...} | [[[[(kind:Expr(14),false,y3)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,y2)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: [[[(kind:Expr(14),false,y1)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] :: (kind:Stmt(1))] |
216+
| StructuralComparison.cs:49:9:49:27 | ... ...; | [[[(kind:Expr(14),false,y1)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
217+
| StructuralComparison.cs:49:13:49:14 | access to local variable y1 | [(kind:Expr(14),false,y1)] |
218+
| StructuralComparison.cs:49:13:49:26 | Object y1 = ... | [[(kind:Expr(14),false,y1)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] |
219+
| StructuralComparison.cs:49:18:49:21 | base access | [(kind:Expr(13),false,BaseClass)] |
220+
| StructuralComparison.cs:49:18:49:26 | access to property Prop | [(kind:Expr(17),true,Prop)] |
221+
| StructuralComparison.cs:50:9:50:22 | ... ...; | [[[(kind:Expr(14),false,y2)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
222+
| StructuralComparison.cs:50:13:50:14 | access to local variable y2 | [(kind:Expr(14),false,y2)] |
223+
| StructuralComparison.cs:50:13:50:21 | Object y2 = ... | [[(kind:Expr(14),false,y2)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] |
224+
| StructuralComparison.cs:50:18:50:21 | access to property Prop | [(kind:Expr(17),true,Prop)] |
225+
| StructuralComparison.cs:50:18:50:21 | this access | [(kind:Expr(12),false,DerivedClass)] |
226+
| StructuralComparison.cs:51:9:51:27 | ... ...; | [[[(kind:Expr(14),false,y3)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] :: (kind:Stmt(22))] |
227+
| StructuralComparison.cs:51:13:51:14 | access to local variable y3 | [(kind:Expr(14),false,y3)] |
228+
| StructuralComparison.cs:51:13:51:26 | Object y3 = ... | [[(kind:Expr(14),false,y3)] :: [(kind:Expr(17),true,Prop)] :: (kind:Expr(83))] |
229+
| StructuralComparison.cs:51:18:51:21 | this access | [(kind:Expr(12),false,DerivedClass)] |
230+
| StructuralComparison.cs:51:18:51:26 | access to property Prop | [(kind:Expr(17),true,Prop)] |

csharp/ql/test/library-tests/structuralcomparison/structuralComparison.ql

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,4 +21,5 @@ private class StructuralComparisonTest extends StructuralComparisonConfiguration
2121
query predicate same(ControlFlowElement e1, ControlFlowElement e2) {
2222
exists(StructuralComparisonTest sct | sct.same(e1, e2))
2323
}
24-
// query predicate gvn(ControlFlowElement e, Gvn gvn) { gvn = toGvn(e) and e.fromSource() }
24+
25+
query predicate gvn(ControlFlowElement e, Gvn gvn) { gvn = toGvn(e) and e.fromSource() }

0 commit comments

Comments
 (0)