Skip to content

Commit 4ec57e2

Browse files
pqCommit Queue
authored and
Commit Queue
committed
[wildcards] catch clause completion tests
See: #56361 Change-Id: I681e3b5ebfd2dcce3f377b8d45a492d44bf058a0 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/378569 Commit-Queue: Phil Quitslund <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent b946c47 commit 4ec57e2

File tree

1 file changed

+59
-41
lines changed

1 file changed

+59
-41
lines changed

pkg/analysis_server/test/services/completion/dart/declaration/wildcard_variables_test.dart

Lines changed: 59 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import '../../../../client/completion_driver_test.dart';
88

99
void main() {
1010
defineReflectiveSuite(() {
11+
defineReflectiveTests(WildcardCatchClauseTest);
1112
defineReflectiveTests(WildcardFieldTest);
1213
defineReflectiveTests(WildcardForLoopTest);
1314
defineReflectiveTests(WildcardImportPrefixTest);
@@ -17,15 +18,56 @@ void main() {
1718
});
1819
}
1920

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 {
2322
@override
24-
Set<String> allowedIdentifiers = {'_'};
23+
Set<String> allowedIdentifiers = {'_', '__', '___'};
2524

2625
@override
2726
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+
}
2867

68+
/// Fields are binding so not technically wildcards but look just like them.
69+
@reflectiveTest
70+
class WildcardFieldTest extends AbstractWildCardTest {
2971
Future<void> test_argumentList() async {
3072
await computeSuggestions('''
3173
void p(Object o) {}
@@ -63,13 +105,7 @@ suggestions
63105
}
64106

65107
@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 {
73109
Future<void> test_forEach_argumentList() async {
74110
await computeSuggestions('''
75111
void p(Object o) {}
@@ -136,12 +172,12 @@ suggestions
136172
}
137173

138174
@reflectiveTest
139-
class WildcardImportPrefixTest extends AbstractCompletionDriverTest {
175+
class WildcardImportPrefixTest extends AbstractWildCardTest {
140176
@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+
}
145181

146182
Future<void> test_argumentList() async {
147183
newFile('$testPackageLibPath/ext.dart', '''
@@ -215,25 +251,19 @@ suggestions
215251
}
216252

217253
@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 {
225255
Future<void> test_argumentList() async {
226256
await computeSuggestions('''
227257
void p(Object o) {}
228258
229259
void f() {
230-
var _, b = 0;
260+
var _, b0 = 0;
231261
p(^);
232262
}
233263
''');
234264
assertResponse(r'''
235265
suggestions
236-
b
266+
b0
237267
kind: localVariable
238268
''');
239269
}
@@ -270,24 +300,18 @@ suggestions
270300
}
271301

272302
@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 {
280304
Future<void> test_argumentList() async {
281305
await computeSuggestions('''
282306
void p(Object o) {}
283307
284-
void f(int _, int b) {
308+
void f(int _, int b0) {
285309
p(^);
286310
}
287311
''');
288312
assertResponse('''
289313
suggestions
290-
b
314+
b0
291315
kind: parameter
292316
''');
293317
}
@@ -311,13 +335,7 @@ suggestions
311335
/// Top level variables are binding so not technically wildcards but look just
312336
/// like them.
313337
@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 {
321339
Future<void> test_argumentList() async {
322340
await computeSuggestions('''
323341
int _ = 0;

0 commit comments

Comments
 (0)