@@ -44,9 +44,24 @@ class Miscellaneous {
44
44
45
45
@ Test
46
46
void compoundExpressions () {
47
+ parseCheck ("#var1.methodOne().methodTwo(42)" );
48
+ parseCheck ("#func1().methodOne().methodTwo(42)" );
49
+ parseCheck ("#func2('enigma').methodOne().methodTwo(42)" );
47
50
parseCheck ("property1.property2.methodOne()" );
48
- parseCheck ("property1[0].property2['key'].methodOne()" );
51
+ parseCheck ("property1.methodOne('enigma').methodTwo(42)" );
52
+ parseCheck ("property1.methodOne().property2.methodTwo()" );
53
+ parseCheck ("property1[0].property2['key'].methodTwo()" );
54
+ parseCheck ("property1[0][1].property2['key'][42].methodTwo()" );
55
+
56
+ // null-safe variants
57
+ parseCheck ("#var1?.methodOne()?.methodTwo(42)" );
58
+ parseCheck ("#func1()?.methodOne()?.methodTwo(42)" );
59
+ parseCheck ("#func2('enigma')?.methodOne()?.methodTwo(42)" );
60
+ parseCheck ("property1?.property2?.methodOne()" );
61
+ parseCheck ("property1?.methodOne('enigma')?.methodTwo(42)" );
49
62
parseCheck ("property1?.methodOne()?.property2?.methodTwo()" );
63
+ parseCheck ("property1[0]?.property2['key']?.methodTwo()" );
64
+ parseCheck ("property1[0][1]?.property2['key'][42]?.methodTwo()" );
50
65
}
51
66
52
67
@ Test
@@ -132,25 +147,34 @@ void indexing() {
132
147
133
148
@ Test
134
149
void projection () {
135
- parseCheck ("{1,2,3,4,5,6,7,8,9,10}.![#isEven()]" );
150
+ parseCheck ("{1,2,3}.![#isEven()]" );
151
+
152
+ // null-safe variant
153
+ parseCheck ("{1,2,3}?.![#isEven()]" );
136
154
}
137
155
138
156
@ Test
139
157
void selection () {
140
- parseCheck ("{1,2,3,4,5,6,7,8,9,10}.?[#isEven(#this) == 'y']" ,
141
- "{1,2,3,4,5,6,7,8,9,10}.?[(#isEven(#this) == 'y')]" );
158
+ parseCheck ("{1,2,3}.?[#isEven(#this)]" );
159
+
160
+ // null-safe variant
161
+ parseCheck ("{1,2,3}?.?[#isEven(#this)]" );
142
162
}
143
163
144
164
@ Test
145
- void selectionFirst () {
146
- parseCheck ("{1,2,3,4,5,6,7,8,9,10}.^[#isEven(#this) == 'y']" ,
147
- "{1,2,3,4,5,6,7,8,9,10}.^[(#isEven(#this) == 'y')]" );
165
+ void selectFirst () {
166
+ parseCheck ("{1,2,3}.^[#isEven(#this)]" );
167
+
168
+ // null-safe variant
169
+ parseCheck ("{1,2,3}?.^[#isEven(#this)]" );
148
170
}
149
171
150
172
@ Test
151
- void selectionLast () {
152
- parseCheck ("{1,2,3,4,5,6,7,8,9,10}.$[#isEven(#this) == 'y']" ,
153
- "{1,2,3,4,5,6,7,8,9,10}.$[(#isEven(#this) == 'y')]" );
173
+ void selectLast () {
174
+ parseCheck ("{1,2,3}.$[#isEven(#this)]" );
175
+
176
+ // null-safe variant
177
+ parseCheck ("{1,2,3}?.$[#isEven(#this)]" );
154
178
}
155
179
}
156
180
0 commit comments