@@ -8,6 +8,7 @@ import '../../../../client/completion_driver_test.dart';
8
8
9
9
void main () {
10
10
defineReflectiveSuite (() {
11
+ defineReflectiveTests (WildcardCatchClauseTest );
11
12
defineReflectiveTests (WildcardFieldTest );
12
13
defineReflectiveTests (WildcardForLoopTest );
13
14
defineReflectiveTests (WildcardImportPrefixTest );
@@ -17,15 +18,56 @@ void main() {
17
18
});
18
19
}
19
20
20
- /// Fields are binding so not technically wildcards but look just like them.
21
- @reflectiveTest
22
- class WildcardFieldTest extends AbstractCompletionDriverTest {
21
+ class AbstractWildCardTest extends AbstractCompletionDriverTest {
23
22
@override
24
- Set <String > allowedIdentifiers = {'_' };
23
+ Set <String > allowedIdentifiers = {'_' , '__' , '___' };
25
24
26
25
@override
27
26
bool get includeKeywords => false ;
27
+ }
28
+
29
+ @reflectiveTest
30
+ class WildcardCatchClauseTest extends AbstractWildCardTest {
31
+ Future <void > test_argumentList () async {
32
+ await computeSuggestions ('''
33
+ void p(Object o) {}
34
+
35
+ void f() {
36
+ try {
37
+ } catch(_, _) {
38
+ p(^);
39
+ }
40
+ }
41
+ ''' );
42
+ assertResponse (r'''
43
+ suggestions
44
+ ''' );
45
+ }
46
+
47
+ Future <void > test_argumentList_underscores () async {
48
+ await computeSuggestions ('''
49
+ void p(Object o) {}
50
+
51
+ void f() {
52
+ try {
53
+ } catch(__, ___) {
54
+ p(^);
55
+ }
56
+ }
57
+ ''' );
58
+ assertResponse (r'''
59
+ suggestions
60
+ __
61
+ kind: localVariable
62
+ ___
63
+ kind: localVariable
64
+ ''' );
65
+ }
66
+ }
28
67
68
+ /// Fields are binding so not technically wildcards but look just like them.
69
+ @reflectiveTest
70
+ class WildcardFieldTest extends AbstractWildCardTest {
29
71
Future <void > test_argumentList () async {
30
72
await computeSuggestions ('''
31
73
void p(Object o) {}
@@ -63,13 +105,7 @@ suggestions
63
105
}
64
106
65
107
@reflectiveTest
66
- class WildcardForLoopTest extends AbstractCompletionDriverTest {
67
- @override
68
- Set <String > allowedIdentifiers = {'_' , '__' };
69
-
70
- @override
71
- bool get includeKeywords => false ;
72
-
108
+ class WildcardForLoopTest extends AbstractWildCardTest {
73
109
Future <void > test_forEach_argumentList () async {
74
110
await computeSuggestions ('''
75
111
void p(Object o) {}
@@ -136,12 +172,12 @@ suggestions
136
172
}
137
173
138
174
@reflectiveTest
139
- class WildcardImportPrefixTest extends AbstractCompletionDriverTest {
175
+ class WildcardImportPrefixTest extends AbstractWildCardTest {
140
176
@override
141
- Set < String > allowedIdentifiers = { '_' , '__' , 'isBlank' };
142
-
143
- @override
144
- bool get includeKeywords => false ;
177
+ Future < void > setUp () async {
178
+ await super . setUp ();
179
+ allowedIdentifiers. add ( 'isBlank' );
180
+ }
145
181
146
182
Future <void > test_argumentList () async {
147
183
newFile ('$testPackageLibPath /ext.dart' , '''
@@ -215,25 +251,19 @@ suggestions
215
251
}
216
252
217
253
@reflectiveTest
218
- class WildcardLocalVariableTest extends AbstractCompletionDriverTest {
219
- @override
220
- Set <String > allowedIdentifiers = {'_' , '__' , 'b' };
221
-
222
- @override
223
- bool get includeKeywords => false ;
224
-
254
+ class WildcardLocalVariableTest extends AbstractWildCardTest {
225
255
Future <void > test_argumentList () async {
226
256
await computeSuggestions ('''
227
257
void p(Object o) {}
228
258
229
259
void f() {
230
- var _, b = 0;
260
+ var _, b0 = 0;
231
261
p(^);
232
262
}
233
263
''' );
234
264
assertResponse (r'''
235
265
suggestions
236
- b
266
+ b0
237
267
kind: localVariable
238
268
''' );
239
269
}
@@ -270,24 +300,18 @@ suggestions
270
300
}
271
301
272
302
@reflectiveTest
273
- class WildcardParameterTest extends AbstractCompletionDriverTest {
274
- @override
275
- Set <String > allowedIdentifiers = {'_' , '__' , 'b' };
276
-
277
- @override
278
- bool get includeKeywords => false ;
279
-
303
+ class WildcardParameterTest extends AbstractWildCardTest {
280
304
Future <void > test_argumentList () async {
281
305
await computeSuggestions ('''
282
306
void p(Object o) {}
283
307
284
- void f(int _, int b ) {
308
+ void f(int _, int b0 ) {
285
309
p(^);
286
310
}
287
311
''' );
288
312
assertResponse ('''
289
313
suggestions
290
- b
314
+ b0
291
315
kind: parameter
292
316
''' );
293
317
}
@@ -311,13 +335,7 @@ suggestions
311
335
/// Top level variables are binding so not technically wildcards but look just
312
336
/// like them.
313
337
@reflectiveTest
314
- class WildcardTopLevelVariableTest extends AbstractCompletionDriverTest {
315
- @override
316
- Set <String > allowedIdentifiers = {'_' };
317
-
318
- @override
319
- bool get includeKeywords => false ;
320
-
338
+ class WildcardTopLevelVariableTest extends AbstractWildCardTest {
321
339
Future <void > test_argumentList () async {
322
340
await computeSuggestions ('''
323
341
int _ = 0;
0 commit comments