OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 import 'dart:async'; | 5 import 'dart:async'; |
6 | 6 |
7 import 'package:analysis_server/src/provisional/completion/dart/completion_dart.
dart'; | 7 import 'package:analysis_server/src/provisional/completion/dart/completion_dart.
dart'; |
8 import 'package:analysis_server/src/services/completion/dart/type_member_contrib
utor.dart'; | 8 import 'package:analysis_server/src/services/completion/dart/type_member_contrib
utor.dart'; |
9 import 'package:analyzer_plugin/protocol/protocol_common.dart'; | 9 import 'package:analyzer_plugin/protocol/protocol_common.dart'; |
10 import 'package:test/test.dart'; | 10 import 'package:test/test.dart'; |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
106 | 106 |
107 void main() {new A().f^}'''); | 107 void main() {new A().f^}'''); |
108 await computeSuggestions(); | 108 await computeSuggestions(); |
109 | 109 |
110 assertSuggestMethod('foo', 'A', 'bool', | 110 assertSuggestMethod('foo', 'A', 'bool', |
111 defaultArgListString: 'bar, baz: null'); | 111 defaultArgListString: 'bar, baz: null'); |
112 } | 112 } |
113 | 113 |
114 test_ArgumentList() async { | 114 test_ArgumentList() async { |
115 // ArgumentList MethodInvocation ExpressionStatement Block | 115 // ArgumentList MethodInvocation ExpressionStatement Block |
116 addSource( | 116 addSource('/libA.dart', ''' |
117 '/libA.dart', | |
118 ''' | |
119 library A; | 117 library A; |
120 bool hasLength(int expected) { } | 118 bool hasLength(int expected) { } |
121 void baz() { }'''); | 119 void baz() { }'''); |
122 addTestSource(''' | 120 addTestSource(''' |
123 import '/libA.dart'; | 121 import '/libA.dart'; |
124 class B { } | 122 class B { } |
125 String bar() => true; | 123 String bar() => true; |
126 void main() {expect(^)}'''); | 124 void main() {expect(^)}'''); |
127 await computeSuggestions(); | 125 await computeSuggestions(); |
128 expect(replacementOffset, completionOffset); | 126 expect(replacementOffset, completionOffset); |
129 expect(replacementLength, 0); | 127 expect(replacementLength, 0); |
130 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 128 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
131 assertNotSuggested('bar'); | 129 assertNotSuggested('bar'); |
132 assertNotSuggested('hasLength'); | 130 assertNotSuggested('hasLength'); |
133 assertNotSuggested('identical'); | 131 assertNotSuggested('identical'); |
134 assertNotSuggested('B'); | 132 assertNotSuggested('B'); |
135 assertNotSuggested('Object'); | 133 assertNotSuggested('Object'); |
136 assertNotSuggested('main'); | 134 assertNotSuggested('main'); |
137 assertNotSuggested('baz'); | 135 assertNotSuggested('baz'); |
138 assertNotSuggested('print'); | 136 assertNotSuggested('print'); |
139 } | 137 } |
140 | 138 |
141 test_ArgumentList_imported_function() async { | 139 test_ArgumentList_imported_function() async { |
142 // ArgumentList MethodInvocation ExpressionStatement Block | 140 // ArgumentList MethodInvocation ExpressionStatement Block |
143 addSource( | 141 addSource('/libA.dart', ''' |
144 '/libA.dart', | |
145 ''' | |
146 library A; | 142 library A; |
147 bool hasLength(int expected) { } | 143 bool hasLength(int expected) { } |
148 expect(arg) { } | 144 expect(arg) { } |
149 void baz() { }'''); | 145 void baz() { }'''); |
150 addTestSource(''' | 146 addTestSource(''' |
151 import '/libA.dart' | 147 import '/libA.dart' |
152 class B { } | 148 class B { } |
153 String bar() => true; | 149 String bar() => true; |
154 void main() {expect(^)}'''); | 150 void main() {expect(^)}'''); |
155 await computeSuggestions(); | 151 await computeSuggestions(); |
156 expect(replacementOffset, completionOffset); | 152 expect(replacementOffset, completionOffset); |
157 expect(replacementLength, 0); | 153 expect(replacementLength, 0); |
158 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 154 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
159 assertNotSuggested('bar'); | 155 assertNotSuggested('bar'); |
160 assertNotSuggested('hasLength'); | 156 assertNotSuggested('hasLength'); |
161 assertNotSuggested('identical'); | 157 assertNotSuggested('identical'); |
162 assertNotSuggested('B'); | 158 assertNotSuggested('B'); |
163 assertNotSuggested('Object'); | 159 assertNotSuggested('Object'); |
164 assertNotSuggested('main'); | 160 assertNotSuggested('main'); |
165 assertNotSuggested('baz'); | 161 assertNotSuggested('baz'); |
166 assertNotSuggested('print'); | 162 assertNotSuggested('print'); |
167 } | 163 } |
168 | 164 |
169 test_ArgumentList_InstanceCreationExpression_functionalArg() async { | 165 test_ArgumentList_InstanceCreationExpression_functionalArg() async { |
170 // ArgumentList InstanceCreationExpression ExpressionStatement Block | 166 // ArgumentList InstanceCreationExpression ExpressionStatement Block |
171 addSource( | 167 addSource('/libA.dart', ''' |
172 '/libA.dart', | |
173 ''' | |
174 library A; | 168 library A; |
175 class A { A(f()) { } } | 169 class A { A(f()) { } } |
176 bool hasLength(int expected) { } | 170 bool hasLength(int expected) { } |
177 void baz() { }'''); | 171 void baz() { }'''); |
178 addTestSource(''' | 172 addTestSource(''' |
179 import 'dart:async'; | 173 import 'dart:async'; |
180 import '/libA.dart'; | 174 import '/libA.dart'; |
181 class B { } | 175 class B { } |
182 String bar() => true; | 176 String bar() => true; |
183 void main() {new A(^)}'''); | 177 void main() {new A(^)}'''); |
184 await computeSuggestions(); | 178 await computeSuggestions(); |
185 expect(replacementOffset, completionOffset); | 179 expect(replacementOffset, completionOffset); |
186 expect(replacementLength, 0); | 180 expect(replacementLength, 0); |
187 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 181 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
188 assertNotSuggested('bar'); | 182 assertNotSuggested('bar'); |
189 assertNotSuggested('hasLength'); | 183 assertNotSuggested('hasLength'); |
190 assertNotSuggested('identical'); | 184 assertNotSuggested('identical'); |
191 assertNotSuggested('B'); | 185 assertNotSuggested('B'); |
192 assertNotSuggested('A'); | 186 assertNotSuggested('A'); |
193 assertNotSuggested('Object'); | 187 assertNotSuggested('Object'); |
194 assertNotSuggested('main'); | 188 assertNotSuggested('main'); |
195 assertNotSuggested('baz'); | 189 assertNotSuggested('baz'); |
196 assertNotSuggested('print'); | 190 assertNotSuggested('print'); |
197 } | 191 } |
198 | 192 |
199 test_ArgumentList_InstanceCreationExpression_typedefArg() async { | 193 test_ArgumentList_InstanceCreationExpression_typedefArg() async { |
200 // ArgumentList InstanceCreationExpression ExpressionStatement Block | 194 // ArgumentList InstanceCreationExpression ExpressionStatement Block |
201 addSource( | 195 addSource('/libA.dart', ''' |
202 '/libA.dart', | |
203 ''' | |
204 library A; | 196 library A; |
205 typedef Funct(); | 197 typedef Funct(); |
206 class A { A(Funct f) { } } | 198 class A { A(Funct f) { } } |
207 bool hasLength(int expected) { } | 199 bool hasLength(int expected) { } |
208 void baz() { }'''); | 200 void baz() { }'''); |
209 addTestSource(''' | 201 addTestSource(''' |
210 import 'dart:async'; | 202 import 'dart:async'; |
211 import '/libA.dart'; | 203 import '/libA.dart'; |
212 class B { } | 204 class B { } |
213 String bar() => true; | 205 String bar() => true; |
214 void main() {new A(^)}'''); | 206 void main() {new A(^)}'''); |
215 await computeSuggestions(); | 207 await computeSuggestions(); |
216 expect(replacementOffset, completionOffset); | 208 expect(replacementOffset, completionOffset); |
217 expect(replacementLength, 0); | 209 expect(replacementLength, 0); |
218 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 210 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
219 assertNotSuggested('bar'); | 211 assertNotSuggested('bar'); |
220 assertNotSuggested('hasLength'); | 212 assertNotSuggested('hasLength'); |
221 assertNotSuggested('identical'); | 213 assertNotSuggested('identical'); |
222 assertNotSuggested('B'); | 214 assertNotSuggested('B'); |
223 assertNotSuggested('A'); | 215 assertNotSuggested('A'); |
224 assertNotSuggested('Object'); | 216 assertNotSuggested('Object'); |
225 assertNotSuggested('main'); | 217 assertNotSuggested('main'); |
226 assertNotSuggested('baz'); | 218 assertNotSuggested('baz'); |
227 assertNotSuggested('print'); | 219 assertNotSuggested('print'); |
228 } | 220 } |
229 | 221 |
230 test_ArgumentList_local_function() async { | 222 test_ArgumentList_local_function() async { |
231 // ArgumentList MethodInvocation ExpressionStatement Block | 223 // ArgumentList MethodInvocation ExpressionStatement Block |
232 addSource( | 224 addSource('/libA.dart', ''' |
233 '/libA.dart', | |
234 ''' | |
235 library A; | 225 library A; |
236 bool hasLength(int expected) { } | 226 bool hasLength(int expected) { } |
237 void baz() { }'''); | 227 void baz() { }'''); |
238 addTestSource(''' | 228 addTestSource(''' |
239 import '/libA.dart' | 229 import '/libA.dart' |
240 expect(arg) { } | 230 expect(arg) { } |
241 class B { } | 231 class B { } |
242 String bar() => true; | 232 String bar() => true; |
243 void main() {expect(^)}'''); | 233 void main() {expect(^)}'''); |
244 await computeSuggestions(); | 234 await computeSuggestions(); |
245 expect(replacementOffset, completionOffset); | 235 expect(replacementOffset, completionOffset); |
246 expect(replacementLength, 0); | 236 expect(replacementLength, 0); |
247 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 237 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
248 assertNotSuggested('bar'); | 238 assertNotSuggested('bar'); |
249 assertNotSuggested('hasLength'); | 239 assertNotSuggested('hasLength'); |
250 assertNotSuggested('identical'); | 240 assertNotSuggested('identical'); |
251 assertNotSuggested('B'); | 241 assertNotSuggested('B'); |
252 assertNotSuggested('Object'); | 242 assertNotSuggested('Object'); |
253 assertNotSuggested('main'); | 243 assertNotSuggested('main'); |
254 assertNotSuggested('baz'); | 244 assertNotSuggested('baz'); |
255 assertNotSuggested('print'); | 245 assertNotSuggested('print'); |
256 } | 246 } |
257 | 247 |
258 test_ArgumentList_local_method() async { | 248 test_ArgumentList_local_method() async { |
259 // ArgumentList MethodInvocation ExpressionStatement Block | 249 // ArgumentList MethodInvocation ExpressionStatement Block |
260 addSource( | 250 addSource('/libA.dart', ''' |
261 '/libA.dart', | |
262 ''' | |
263 library A; | 251 library A; |
264 bool hasLength(int expected) { } | 252 bool hasLength(int expected) { } |
265 void baz() { }'''); | 253 void baz() { }'''); |
266 addTestSource(''' | 254 addTestSource(''' |
267 import '/libA.dart' | 255 import '/libA.dart' |
268 class B { | 256 class B { |
269 expect(arg) { } | 257 expect(arg) { } |
270 void foo() {expect(^)}} | 258 void foo() {expect(^)}} |
271 String bar() => true;'''); | 259 String bar() => true;'''); |
272 await computeSuggestions(); | 260 await computeSuggestions(); |
273 expect(replacementOffset, completionOffset); | 261 expect(replacementOffset, completionOffset); |
274 expect(replacementLength, 0); | 262 expect(replacementLength, 0); |
275 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 263 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
276 assertNotSuggested('bar'); | 264 assertNotSuggested('bar'); |
277 assertNotSuggested('hasLength'); | 265 assertNotSuggested('hasLength'); |
278 assertNotSuggested('identical'); | 266 assertNotSuggested('identical'); |
279 assertNotSuggested('B'); | 267 assertNotSuggested('B'); |
280 assertNotSuggested('Object'); | 268 assertNotSuggested('Object'); |
281 assertNotSuggested('main'); | 269 assertNotSuggested('main'); |
282 assertNotSuggested('baz'); | 270 assertNotSuggested('baz'); |
283 assertNotSuggested('print'); | 271 assertNotSuggested('print'); |
284 } | 272 } |
285 | 273 |
286 test_ArgumentList_MethodInvocation_functionalArg() async { | 274 test_ArgumentList_MethodInvocation_functionalArg() async { |
287 // ArgumentList MethodInvocation ExpressionStatement Block | 275 // ArgumentList MethodInvocation ExpressionStatement Block |
288 addSource( | 276 addSource('/libA.dart', ''' |
289 '/libA.dart', | |
290 ''' | |
291 library A; | 277 library A; |
292 class A { A(f()) { } } | 278 class A { A(f()) { } } |
293 bool hasLength(int expected) { } | 279 bool hasLength(int expected) { } |
294 void baz() { }'''); | 280 void baz() { }'''); |
295 addTestSource(''' | 281 addTestSource(''' |
296 import 'dart:async'; | 282 import 'dart:async'; |
297 import '/libA.dart'; | 283 import '/libA.dart'; |
298 class B { } | 284 class B { } |
299 String bar(f()) => true; | 285 String bar(f()) => true; |
300 void main() {bar(^);}'''); | 286 void main() {bar(^);}'''); |
301 await computeSuggestions(); | 287 await computeSuggestions(); |
302 expect(replacementOffset, completionOffset); | 288 expect(replacementOffset, completionOffset); |
303 expect(replacementLength, 0); | 289 expect(replacementLength, 0); |
304 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 290 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
305 assertNotSuggested('bar'); | 291 assertNotSuggested('bar'); |
306 assertNotSuggested('hasLength'); | 292 assertNotSuggested('hasLength'); |
307 assertNotSuggested('identical'); | 293 assertNotSuggested('identical'); |
308 assertNotSuggested('B'); | 294 assertNotSuggested('B'); |
309 assertNotSuggested('A'); | 295 assertNotSuggested('A'); |
310 assertNotSuggested('Object'); | 296 assertNotSuggested('Object'); |
311 assertNotSuggested('main'); | 297 assertNotSuggested('main'); |
312 assertNotSuggested('baz'); | 298 assertNotSuggested('baz'); |
313 assertNotSuggested('print'); | 299 assertNotSuggested('print'); |
314 } | 300 } |
315 | 301 |
316 test_ArgumentList_MethodInvocation_methodArg() async { | 302 test_ArgumentList_MethodInvocation_methodArg() async { |
317 // ArgumentList MethodInvocation ExpressionStatement Block | 303 // ArgumentList MethodInvocation ExpressionStatement Block |
318 addSource( | 304 addSource('/libA.dart', ''' |
319 '/libA.dart', | |
320 ''' | |
321 library A; | 305 library A; |
322 class A { A(f()) { } } | 306 class A { A(f()) { } } |
323 bool hasLength(int expected) { } | 307 bool hasLength(int expected) { } |
324 void baz() { }'''); | 308 void baz() { }'''); |
325 addTestSource(''' | 309 addTestSource(''' |
326 import 'dart:async'; | 310 import 'dart:async'; |
327 import '/libA.dart'; | 311 import '/libA.dart'; |
328 class B { String bar(f()) => true; } | 312 class B { String bar(f()) => true; } |
329 void main() {new B().bar(^);}'''); | 313 void main() {new B().bar(^);}'''); |
330 await computeSuggestions(); | 314 await computeSuggestions(); |
331 expect(replacementOffset, completionOffset); | 315 expect(replacementOffset, completionOffset); |
332 expect(replacementLength, 0); | 316 expect(replacementLength, 0); |
333 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 317 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
334 assertNotSuggested('hasLength'); | 318 assertNotSuggested('hasLength'); |
335 assertNotSuggested('identical'); | 319 assertNotSuggested('identical'); |
336 assertNotSuggested('B'); | 320 assertNotSuggested('B'); |
337 assertNotSuggested('A'); | 321 assertNotSuggested('A'); |
338 assertNotSuggested('Object'); | 322 assertNotSuggested('Object'); |
339 assertNotSuggested('main'); | 323 assertNotSuggested('main'); |
340 assertNotSuggested('baz'); | 324 assertNotSuggested('baz'); |
341 assertNotSuggested('print'); | 325 assertNotSuggested('print'); |
342 } | 326 } |
343 | 327 |
344 test_ArgumentList_namedParam() async { | 328 test_ArgumentList_namedParam() async { |
345 // SimpleIdentifier NamedExpression ArgumentList MethodInvocation | 329 // SimpleIdentifier NamedExpression ArgumentList MethodInvocation |
346 // ExpressionStatement | 330 // ExpressionStatement |
347 addSource( | 331 addSource('/libA.dart', ''' |
348 '/libA.dart', | |
349 ''' | |
350 library A; | 332 library A; |
351 bool hasLength(int expected) { }'''); | 333 bool hasLength(int expected) { }'''); |
352 addTestSource(''' | 334 addTestSource(''' |
353 import '/libA.dart' | 335 import '/libA.dart' |
354 String bar() => true; | 336 String bar() => true; |
355 void main() {expect(foo: ^)}'''); | 337 void main() {expect(foo: ^)}'''); |
356 await computeSuggestions(); | 338 await computeSuggestions(); |
357 expect(replacementOffset, completionOffset); | 339 expect(replacementOffset, completionOffset); |
358 expect(replacementLength, 0); | 340 expect(replacementLength, 0); |
359 assertNotSuggested('bar'); | 341 assertNotSuggested('bar'); |
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
516 expect(replacementOffset, completionOffset); | 498 expect(replacementOffset, completionOffset); |
517 expect(replacementLength, 0); | 499 expect(replacementLength, 0); |
518 assertNotSuggested('a'); | 500 assertNotSuggested('a'); |
519 assertNotSuggested('Object'); | 501 assertNotSuggested('Object'); |
520 assertNotSuggested('b'); | 502 assertNotSuggested('b'); |
521 assertNotSuggested('=='); | 503 assertNotSuggested('=='); |
522 } | 504 } |
523 | 505 |
524 test_Block() async { | 506 test_Block() async { |
525 // Block BlockFunctionBody MethodDeclaration | 507 // Block BlockFunctionBody MethodDeclaration |
526 addSource( | 508 addSource('/testAB.dart', ''' |
527 '/testAB.dart', | |
528 ''' | |
529 export "dart:math" hide max; | 509 export "dart:math" hide max; |
530 class A {int x;} | 510 class A {int x;} |
531 @deprecated D1() {int x;} | 511 @deprecated D1() {int x;} |
532 class _B {boo() { partBoo() {}} }'''); | 512 class _B {boo() { partBoo() {}} }'''); |
533 addSource( | 513 addSource('/testCD.dart', ''' |
534 '/testCD.dart', | |
535 ''' | |
536 String T1; | 514 String T1; |
537 var _T2; | 515 var _T2; |
538 class C { } | 516 class C { } |
539 class D { }'''); | 517 class D { }'''); |
540 addSource( | 518 addSource('/testEEF.dart', ''' |
541 '/testEEF.dart', | |
542 ''' | |
543 class EE { } | 519 class EE { } |
544 class F { }'''); | 520 class F { }'''); |
545 addSource('/testG.dart', 'class G { }'); | 521 addSource('/testG.dart', 'class G { }'); |
546 addSource( | 522 addSource('/testH.dart', ''' |
547 '/testH.dart', | |
548 ''' | |
549 class H { } | 523 class H { } |
550 int T3; | 524 int T3; |
551 var _T4;'''); // not imported | 525 var _T4;'''); // not imported |
552 addTestSource(''' | 526 addTestSource(''' |
553 import "testAB.dart"; | 527 import "testAB.dart"; |
554 import "testCD.dart" hide D; | 528 import "testCD.dart" hide D; |
555 import "testEEF.dart" show EE; | 529 import "testEEF.dart" show EE; |
556 import "testG.dart" as g; | 530 import "testG.dart" as g; |
557 int T5; | 531 int T5; |
558 var _T6; | 532 var _T6; |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
616 assertNotSuggested('blog'); | 590 assertNotSuggested('blog'); |
617 // TODO (danrubel) suggest HtmlElement as low relevance | 591 // TODO (danrubel) suggest HtmlElement as low relevance |
618 assertNotSuggested('HtmlElement'); | 592 assertNotSuggested('HtmlElement'); |
619 assertNotSuggested('Uri'); | 593 assertNotSuggested('Uri'); |
620 assertNotSuggested('parseIPv6Address'); | 594 assertNotSuggested('parseIPv6Address'); |
621 assertNotSuggested('parseHex'); | 595 assertNotSuggested('parseHex'); |
622 } | 596 } |
623 | 597 |
624 test_Block_final() async { | 598 test_Block_final() async { |
625 // Block BlockFunctionBody MethodDeclaration | 599 // Block BlockFunctionBody MethodDeclaration |
626 addSource( | 600 addSource('/testAB.dart', ''' |
627 '/testAB.dart', | |
628 ''' | |
629 export "dart:math" hide max; | 601 export "dart:math" hide max; |
630 class A {int x;} | 602 class A {int x;} |
631 @deprecated D1() {int x;} | 603 @deprecated D1() {int x;} |
632 class _B {boo() { partBoo() {}} }'''); | 604 class _B {boo() { partBoo() {}} }'''); |
633 addSource( | 605 addSource('/testCD.dart', ''' |
634 '/testCD.dart', | |
635 ''' | |
636 String T1; | 606 String T1; |
637 var _T2; | 607 var _T2; |
638 class C { } | 608 class C { } |
639 class D { }'''); | 609 class D { }'''); |
640 addSource( | 610 addSource('/testEEF.dart', ''' |
641 '/testEEF.dart', | |
642 ''' | |
643 class EE { } | 611 class EE { } |
644 class F { }'''); | 612 class F { }'''); |
645 addSource('/testG.dart', 'class G { }'); | 613 addSource('/testG.dart', 'class G { }'); |
646 addSource( | 614 addSource('/testH.dart', ''' |
647 '/testH.dart', | |
648 ''' | |
649 class H { } | 615 class H { } |
650 int T3; | 616 int T3; |
651 var _T4;'''); // not imported | 617 var _T4;'''); // not imported |
652 addTestSource(''' | 618 addTestSource(''' |
653 import "testAB.dart"; | 619 import "testAB.dart"; |
654 import "testCD.dart" hide D; | 620 import "testCD.dart" hide D; |
655 import "testEEF.dart" show EE; | 621 import "testEEF.dart" show EE; |
656 import "testG.dart" as g; | 622 import "testG.dart" as g; |
657 int T5; | 623 int T5; |
658 var _T6; | 624 var _T6; |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
736 | 702 |
737 test_Block_final3() async { | 703 test_Block_final3() async { |
738 addTestSource('main() {final ^ v;}'); | 704 addTestSource('main() {final ^ v;}'); |
739 await computeSuggestions(); | 705 await computeSuggestions(); |
740 | 706 |
741 assertNotSuggested('String'); | 707 assertNotSuggested('String'); |
742 } | 708 } |
743 | 709 |
744 test_Block_final_final() async { | 710 test_Block_final_final() async { |
745 // Block BlockFunctionBody MethodDeclaration | 711 // Block BlockFunctionBody MethodDeclaration |
746 addSource( | 712 addSource('/testAB.dart', ''' |
747 '/testAB.dart', | |
748 ''' | |
749 export "dart:math" hide max; | 713 export "dart:math" hide max; |
750 class A {int x;} | 714 class A {int x;} |
751 @deprecated D1() {int x;} | 715 @deprecated D1() {int x;} |
752 class _B {boo() { partBoo() {}} }'''); | 716 class _B {boo() { partBoo() {}} }'''); |
753 addSource( | 717 addSource('/testCD.dart', ''' |
754 '/testCD.dart', | |
755 ''' | |
756 String T1; | 718 String T1; |
757 var _T2; | 719 var _T2; |
758 class C { } | 720 class C { } |
759 class D { }'''); | 721 class D { }'''); |
760 addSource( | 722 addSource('/testEEF.dart', ''' |
761 '/testEEF.dart', | |
762 ''' | |
763 class EE { } | 723 class EE { } |
764 class F { }'''); | 724 class F { }'''); |
765 addSource('/testG.dart', 'class G { }'); | 725 addSource('/testG.dart', 'class G { }'); |
766 addSource( | 726 addSource('/testH.dart', ''' |
767 '/testH.dart', | |
768 ''' | |
769 class H { } | 727 class H { } |
770 int T3; | 728 int T3; |
771 var _T4;'''); // not imported | 729 var _T4;'''); // not imported |
772 addTestSource(''' | 730 addTestSource(''' |
773 import "testAB.dart"; | 731 import "testAB.dart"; |
774 import "testCD.dart" hide D; | 732 import "testCD.dart" hide D; |
775 import "testEEF.dart" show EE; | 733 import "testEEF.dart" show EE; |
776 import "testG.dart" as g; | 734 import "testG.dart" as g; |
777 int T5; | 735 int T5; |
778 var _T6; | 736 var _T6; |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
842 assertNotSuggested('blog'); | 800 assertNotSuggested('blog'); |
843 // TODO (danrubel) suggest HtmlElement as low relevance | 801 // TODO (danrubel) suggest HtmlElement as low relevance |
844 assertNotSuggested('HtmlElement'); | 802 assertNotSuggested('HtmlElement'); |
845 assertNotSuggested('Uri'); | 803 assertNotSuggested('Uri'); |
846 assertNotSuggested('parseIPv6Address'); | 804 assertNotSuggested('parseIPv6Address'); |
847 assertNotSuggested('parseHex'); | 805 assertNotSuggested('parseHex'); |
848 } | 806 } |
849 | 807 |
850 test_Block_final_var() async { | 808 test_Block_final_var() async { |
851 // Block BlockFunctionBody MethodDeclaration | 809 // Block BlockFunctionBody MethodDeclaration |
852 addSource( | 810 addSource('/testAB.dart', ''' |
853 '/testAB.dart', | |
854 ''' | |
855 export "dart:math" hide max; | 811 export "dart:math" hide max; |
856 class A {int x;} | 812 class A {int x;} |
857 @deprecated D1() {int x;} | 813 @deprecated D1() {int x;} |
858 class _B {boo() { partBoo() {}} }'''); | 814 class _B {boo() { partBoo() {}} }'''); |
859 addSource( | 815 addSource('/testCD.dart', ''' |
860 '/testCD.dart', | |
861 ''' | |
862 String T1; | 816 String T1; |
863 var _T2; | 817 var _T2; |
864 class C { } | 818 class C { } |
865 class D { }'''); | 819 class D { }'''); |
866 addSource( | 820 addSource('/testEEF.dart', ''' |
867 '/testEEF.dart', | |
868 ''' | |
869 class EE { } | 821 class EE { } |
870 class F { }'''); | 822 class F { }'''); |
871 addSource('/testG.dart', 'class G { }'); | 823 addSource('/testG.dart', 'class G { }'); |
872 addSource( | 824 addSource('/testH.dart', ''' |
873 '/testH.dart', | |
874 ''' | |
875 class H { } | 825 class H { } |
876 int T3; | 826 int T3; |
877 var _T4;'''); // not imported | 827 var _T4;'''); // not imported |
878 addTestSource(''' | 828 addTestSource(''' |
879 import "testAB.dart"; | 829 import "testAB.dart"; |
880 import "testCD.dart" hide D; | 830 import "testCD.dart" hide D; |
881 import "testEEF.dart" show EE; | 831 import "testEEF.dart" show EE; |
882 import "testG.dart" as g; | 832 import "testG.dart" as g; |
883 int T5; | 833 int T5; |
884 var _T6; | 834 var _T6; |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
947 assertNotSuggested('clog'); | 897 assertNotSuggested('clog'); |
948 assertNotSuggested('blog'); | 898 assertNotSuggested('blog'); |
949 // TODO (danrubel) suggest HtmlElement as low relevance | 899 // TODO (danrubel) suggest HtmlElement as low relevance |
950 assertNotSuggested('HtmlElement'); | 900 assertNotSuggested('HtmlElement'); |
951 assertNotSuggested('Uri'); | 901 assertNotSuggested('Uri'); |
952 assertNotSuggested('parseIPv6Address'); | 902 assertNotSuggested('parseIPv6Address'); |
953 assertNotSuggested('parseHex'); | 903 assertNotSuggested('parseHex'); |
954 } | 904 } |
955 | 905 |
956 test_Block_identifier_partial() async { | 906 test_Block_identifier_partial() async { |
957 addSource( | 907 addSource('/testAB.dart', ''' |
958 '/testAB.dart', | |
959 ''' | |
960 export "dart:math" hide max; | 908 export "dart:math" hide max; |
961 class A {int x;} | 909 class A {int x;} |
962 @deprecated D1() {int x;} | 910 @deprecated D1() {int x;} |
963 class _B { }'''); | 911 class _B { }'''); |
964 addSource( | 912 addSource('/testCD.dart', ''' |
965 '/testCD.dart', | |
966 ''' | |
967 String T1; | 913 String T1; |
968 var _T2; | 914 var _T2; |
969 class C { } | 915 class C { } |
970 class D { }'''); | 916 class D { }'''); |
971 addSource( | 917 addSource('/testEEF.dart', ''' |
972 '/testEEF.dart', | |
973 ''' | |
974 class EE { } | 918 class EE { } |
975 class F { }'''); | 919 class F { }'''); |
976 addSource('/testG.dart', 'class G { }'); | 920 addSource('/testG.dart', 'class G { }'); |
977 addSource( | 921 addSource('/testH.dart', ''' |
978 '/testH.dart', | |
979 ''' | |
980 class H { } | 922 class H { } |
981 class D3 { } | 923 class D3 { } |
982 int T3; | 924 int T3; |
983 var _T4;'''); // not imported | 925 var _T4;'''); // not imported |
984 addTestSource(''' | 926 addTestSource(''' |
985 import "testAB.dart"; | 927 import "testAB.dart"; |
986 import "testCD.dart" hide D; | 928 import "testCD.dart" hide D; |
987 import "testEEF.dart" show EE; | 929 import "testEEF.dart" show EE; |
988 import "testG.dart" as g; | 930 import "testG.dart" as g; |
989 int T5; | 931 int T5; |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1034 assertNotSuggested('_T4'); | 976 assertNotSuggested('_T4'); |
1035 //assertNotSuggested('T5'); | 977 //assertNotSuggested('T5'); |
1036 //assertNotSuggested('_T6'); | 978 //assertNotSuggested('_T6'); |
1037 assertNotSuggested('=='); | 979 assertNotSuggested('=='); |
1038 // TODO (danrubel) suggest HtmlElement as low relevance | 980 // TODO (danrubel) suggest HtmlElement as low relevance |
1039 assertNotSuggested('HtmlElement'); | 981 assertNotSuggested('HtmlElement'); |
1040 } | 982 } |
1041 | 983 |
1042 test_Block_inherited_imported() async { | 984 test_Block_inherited_imported() async { |
1043 // Block BlockFunctionBody MethodDeclaration ClassDeclaration | 985 // Block BlockFunctionBody MethodDeclaration ClassDeclaration |
1044 addSource( | 986 addSource('/testB.dart', ''' |
1045 '/testB.dart', | |
1046 ''' | |
1047 lib B; | 987 lib B; |
1048 class F { var f1; f2() { } get f3 => 0; set f4(fx) { } var _pf; } | 988 class F { var f1; f2() { } get f3 => 0; set f4(fx) { } var _pf; } |
1049 class E extends F { var e1; e2() { } } | 989 class E extends F { var e1; e2() { } } |
1050 class I { int i1; i2() { } } | 990 class I { int i1; i2() { } } |
1051 class M { var m1; int m2() { } }'''); | 991 class M { var m1; int m2() { } }'''); |
1052 addTestSource(''' | 992 addTestSource(''' |
1053 import "testB.dart"; | 993 import "testB.dart"; |
1054 class A extends E implements I with M {a() {^}}'''); | 994 class A extends E implements I with M {a() {^}}'''); |
1055 await computeSuggestions(); | 995 await computeSuggestions(); |
1056 | 996 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1089 assertNotSuggested('m1'); | 1029 assertNotSuggested('m1'); |
1090 assertNotSuggested('f3'); | 1030 assertNotSuggested('f3'); |
1091 assertNotSuggested('f4'); | 1031 assertNotSuggested('f4'); |
1092 assertNotSuggested('e2'); | 1032 assertNotSuggested('e2'); |
1093 assertNotSuggested('f2'); | 1033 assertNotSuggested('f2'); |
1094 assertNotSuggested('i2'); | 1034 assertNotSuggested('i2'); |
1095 assertNotSuggested('m2'); | 1035 assertNotSuggested('m2'); |
1096 } | 1036 } |
1097 | 1037 |
1098 test_Block_local_function() async { | 1038 test_Block_local_function() async { |
1099 addSource( | 1039 addSource('/testAB.dart', ''' |
1100 '/testAB.dart', | |
1101 ''' | |
1102 export "dart:math" hide max; | 1040 export "dart:math" hide max; |
1103 class A {int x;} | 1041 class A {int x;} |
1104 @deprecated D1() {int x;} | 1042 @deprecated D1() {int x;} |
1105 class _B {boo() { partBoo() {}} }'''); | 1043 class _B {boo() { partBoo() {}} }'''); |
1106 addSource( | 1044 addSource('/testCD.dart', ''' |
1107 '/testCD.dart', | |
1108 ''' | |
1109 String T1; | 1045 String T1; |
1110 var _T2; | 1046 var _T2; |
1111 class C { } | 1047 class C { } |
1112 class D { }'''); | 1048 class D { }'''); |
1113 addSource( | 1049 addSource('/testEEF.dart', ''' |
1114 '/testEEF.dart', | |
1115 ''' | |
1116 class EE { } | 1050 class EE { } |
1117 class F { }'''); | 1051 class F { }'''); |
1118 addSource('/testG.dart', 'class G { }'); | 1052 addSource('/testG.dart', 'class G { }'); |
1119 addSource( | 1053 addSource('/testH.dart', ''' |
1120 '/testH.dart', | |
1121 ''' | |
1122 class H { } | 1054 class H { } |
1123 int T3; | 1055 int T3; |
1124 var _T4;'''); // not imported | 1056 var _T4;'''); // not imported |
1125 addTestSource(''' | 1057 addTestSource(''' |
1126 import "testAB.dart"; | 1058 import "testAB.dart"; |
1127 import "testCD.dart" hide D; | 1059 import "testCD.dart" hide D; |
1128 import "testEEF.dart" show EE; | 1060 import "testEEF.dart" show EE; |
1129 import "testG.dart" as g; | 1061 import "testG.dart" as g; |
1130 int T5; | 1062 int T5; |
1131 var _T6; | 1063 var _T6; |
(...skipping 30 matching lines...) Expand all Loading... |
1162 expect(replacementOffset, completionOffset - 1); | 1094 expect(replacementOffset, completionOffset - 1); |
1163 expect(replacementLength, 1); | 1095 expect(replacementLength, 1); |
1164 assertNotSuggested('Foo'); | 1096 assertNotSuggested('Foo'); |
1165 // TODO(danrubel) implement | 1097 // TODO(danrubel) implement |
1166 assertNotSuggested('Foo2'); | 1098 assertNotSuggested('Foo2'); |
1167 assertNotSuggested('Future'); | 1099 assertNotSuggested('Future'); |
1168 } | 1100 } |
1169 | 1101 |
1170 test_CascadeExpression_method1() async { | 1102 test_CascadeExpression_method1() async { |
1171 // PropertyAccess CascadeExpression ExpressionStatement Block | 1103 // PropertyAccess CascadeExpression ExpressionStatement Block |
1172 addSource( | 1104 addSource('/testB.dart', ''' |
1173 '/testB.dart', | |
1174 ''' | |
1175 class B { }'''); | 1105 class B { }'''); |
1176 addTestSource(''' | 1106 addTestSource(''' |
1177 import "testB.dart"; | 1107 import "testB.dart"; |
1178 class A {var b; X _c;} | 1108 class A {var b; X _c;} |
1179 class X{} | 1109 class X{} |
1180 // looks like a cascade to the parser | 1110 // looks like a cascade to the parser |
1181 // but the user is trying to get completions for a non-cascade | 1111 // but the user is trying to get completions for a non-cascade |
1182 main() {A a; a.^.z()}'''); | 1112 main() {A a; a.^.z()}'''); |
1183 await computeSuggestions(); | 1113 await computeSuggestions(); |
1184 expect(replacementOffset, completionOffset); | 1114 expect(replacementOffset, completionOffset); |
1185 expect(replacementLength, 0); | 1115 expect(replacementLength, 0); |
1186 assertSuggestField('b', null); | 1116 assertSuggestField('b', null); |
1187 assertSuggestField('_c', 'X'); | 1117 assertSuggestField('_c', 'X'); |
1188 assertNotSuggested('Object'); | 1118 assertNotSuggested('Object'); |
1189 assertNotSuggested('A'); | 1119 assertNotSuggested('A'); |
1190 assertNotSuggested('B'); | 1120 assertNotSuggested('B'); |
1191 assertNotSuggested('X'); | 1121 assertNotSuggested('X'); |
1192 assertNotSuggested('z'); | 1122 assertNotSuggested('z'); |
1193 assertNotSuggested('=='); | 1123 assertNotSuggested('=='); |
1194 } | 1124 } |
1195 | 1125 |
1196 test_CascadeExpression_selector1() async { | 1126 test_CascadeExpression_selector1() async { |
1197 // PropertyAccess CascadeExpression ExpressionStatement Block | 1127 // PropertyAccess CascadeExpression ExpressionStatement Block |
1198 addSource( | 1128 addSource('/testB.dart', ''' |
1199 '/testB.dart', | |
1200 ''' | |
1201 class B { }'''); | 1129 class B { }'''); |
1202 addTestSource(''' | 1130 addTestSource(''' |
1203 import "testB.dart"; | 1131 import "testB.dart"; |
1204 class A {var b; X _c;} | 1132 class A {var b; X _c;} |
1205 class X{} | 1133 class X{} |
1206 // looks like a cascade to the parser | 1134 // looks like a cascade to the parser |
1207 // but the user is trying to get completions for a non-cascade | 1135 // but the user is trying to get completions for a non-cascade |
1208 main() {A a; a.^.z}'''); | 1136 main() {A a; a.^.z}'''); |
1209 await computeSuggestions(); | 1137 await computeSuggestions(); |
1210 expect(replacementOffset, completionOffset); | 1138 expect(replacementOffset, completionOffset); |
1211 expect(replacementLength, 0); | 1139 expect(replacementLength, 0); |
1212 assertSuggestField('b', null); | 1140 assertSuggestField('b', null); |
1213 assertSuggestField('_c', 'X'); | 1141 assertSuggestField('_c', 'X'); |
1214 assertNotSuggested('Object'); | 1142 assertNotSuggested('Object'); |
1215 assertNotSuggested('A'); | 1143 assertNotSuggested('A'); |
1216 assertNotSuggested('B'); | 1144 assertNotSuggested('B'); |
1217 assertNotSuggested('X'); | 1145 assertNotSuggested('X'); |
1218 assertNotSuggested('z'); | 1146 assertNotSuggested('z'); |
1219 assertNotSuggested('=='); | 1147 assertNotSuggested('=='); |
1220 } | 1148 } |
1221 | 1149 |
1222 test_CascadeExpression_selector2() async { | 1150 test_CascadeExpression_selector2() async { |
1223 // SimpleIdentifier PropertyAccess CascadeExpression ExpressionStatement | 1151 // SimpleIdentifier PropertyAccess CascadeExpression ExpressionStatement |
1224 addSource( | 1152 addSource('/testB.dart', ''' |
1225 '/testB.dart', | |
1226 ''' | |
1227 class B { }'''); | 1153 class B { }'''); |
1228 addTestSource(''' | 1154 addTestSource(''' |
1229 import "testB.dart"; | 1155 import "testB.dart"; |
1230 class A {var b; X _c;} | 1156 class A {var b; X _c;} |
1231 class X{} | 1157 class X{} |
1232 main() {A a; a..^z}'''); | 1158 main() {A a; a..^z}'''); |
1233 await computeSuggestions(); | 1159 await computeSuggestions(); |
1234 expect(replacementOffset, completionOffset); | 1160 expect(replacementOffset, completionOffset); |
1235 expect(replacementLength, 1); | 1161 expect(replacementLength, 1); |
1236 assertSuggestField('b', null); | 1162 assertSuggestField('b', null); |
1237 assertSuggestField('_c', 'X'); | 1163 assertSuggestField('_c', 'X'); |
1238 assertNotSuggested('Object'); | 1164 assertNotSuggested('Object'); |
1239 assertNotSuggested('A'); | 1165 assertNotSuggested('A'); |
1240 assertNotSuggested('B'); | 1166 assertNotSuggested('B'); |
1241 assertNotSuggested('X'); | 1167 assertNotSuggested('X'); |
1242 assertNotSuggested('z'); | 1168 assertNotSuggested('z'); |
1243 assertNotSuggested('=='); | 1169 assertNotSuggested('=='); |
1244 } | 1170 } |
1245 | 1171 |
1246 test_CascadeExpression_selector2_withTrailingReturn() async { | 1172 test_CascadeExpression_selector2_withTrailingReturn() async { |
1247 // PropertyAccess CascadeExpression ExpressionStatement Block | 1173 // PropertyAccess CascadeExpression ExpressionStatement Block |
1248 addSource( | 1174 addSource('/testB.dart', ''' |
1249 '/testB.dart', | |
1250 ''' | |
1251 class B { }'''); | 1175 class B { }'''); |
1252 addTestSource(''' | 1176 addTestSource(''' |
1253 import "testB.dart"; | 1177 import "testB.dart"; |
1254 class A {var b; X _c;} | 1178 class A {var b; X _c;} |
1255 class X{} | 1179 class X{} |
1256 main() {A a; a..^ return}'''); | 1180 main() {A a; a..^ return}'''); |
1257 await computeSuggestions(); | 1181 await computeSuggestions(); |
1258 expect(replacementOffset, completionOffset); | 1182 expect(replacementOffset, completionOffset); |
1259 expect(replacementLength, 0); | 1183 expect(replacementLength, 0); |
1260 assertSuggestField('b', null); | 1184 assertSuggestField('b', null); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1329 expect(replacementLength, 0); | 1253 expect(replacementLength, 0); |
1330 assertNotSuggested('e'); | 1254 assertNotSuggested('e'); |
1331 assertNotSuggested('s'); | 1255 assertNotSuggested('s'); |
1332 assertNotSuggested('a'); | 1256 assertNotSuggested('a'); |
1333 assertNotSuggested('Object'); | 1257 assertNotSuggested('Object'); |
1334 assertNotSuggested('x'); | 1258 assertNotSuggested('x'); |
1335 } | 1259 } |
1336 | 1260 |
1337 test_ClassDeclaration_body() async { | 1261 test_ClassDeclaration_body() async { |
1338 // ClassDeclaration CompilationUnit | 1262 // ClassDeclaration CompilationUnit |
1339 addSource( | 1263 addSource('/testB.dart', ''' |
1340 '/testB.dart', | |
1341 ''' | |
1342 class B { }'''); | 1264 class B { }'''); |
1343 addTestSource(''' | 1265 addTestSource(''' |
1344 import "testB.dart" as x; | 1266 import "testB.dart" as x; |
1345 @deprecated class A {^} | 1267 @deprecated class A {^} |
1346 class _B {} | 1268 class _B {} |
1347 A T;'''); | 1269 A T;'''); |
1348 await computeSuggestions(); | 1270 await computeSuggestions(); |
1349 expect(replacementOffset, completionOffset); | 1271 expect(replacementOffset, completionOffset); |
1350 expect(replacementLength, 0); | 1272 expect(replacementLength, 0); |
1351 assertNotSuggested('A'); | 1273 assertNotSuggested('A'); |
1352 assertNotSuggested('_B'); | 1274 assertNotSuggested('_B'); |
1353 assertNotSuggested('Object'); | 1275 assertNotSuggested('Object'); |
1354 assertNotSuggested('T'); | 1276 assertNotSuggested('T'); |
1355 assertNotSuggested('x'); | 1277 assertNotSuggested('x'); |
1356 } | 1278 } |
1357 | 1279 |
1358 test_ClassDeclaration_body_final() async { | 1280 test_ClassDeclaration_body_final() async { |
1359 // ClassDeclaration CompilationUnit | 1281 // ClassDeclaration CompilationUnit |
1360 addSource( | 1282 addSource('/testB.dart', ''' |
1361 '/testB.dart', | |
1362 ''' | |
1363 class B { }'''); | 1283 class B { }'''); |
1364 addTestSource(''' | 1284 addTestSource(''' |
1365 import "testB.dart" as x; | 1285 import "testB.dart" as x; |
1366 class A {final ^} | 1286 class A {final ^} |
1367 class _B {} | 1287 class _B {} |
1368 A T;'''); | 1288 A T;'''); |
1369 await computeSuggestions(); | 1289 await computeSuggestions(); |
1370 expect(replacementOffset, completionOffset); | 1290 expect(replacementOffset, completionOffset); |
1371 expect(replacementLength, 0); | 1291 expect(replacementLength, 0); |
1372 assertNotSuggested('A'); | 1292 assertNotSuggested('A'); |
1373 assertNotSuggested('_B'); | 1293 assertNotSuggested('_B'); |
1374 assertNotSuggested('Object'); | 1294 assertNotSuggested('Object'); |
1375 assertNotSuggested('T'); | 1295 assertNotSuggested('T'); |
1376 assertNotSuggested('x'); | 1296 assertNotSuggested('x'); |
1377 } | 1297 } |
1378 | 1298 |
1379 test_ClassDeclaration_body_final_field() async { | 1299 test_ClassDeclaration_body_final_field() async { |
1380 // ClassDeclaration CompilationUnit | 1300 // ClassDeclaration CompilationUnit |
1381 addSource( | 1301 addSource('/testB.dart', ''' |
1382 '/testB.dart', | |
1383 ''' | |
1384 class B { }'''); | 1302 class B { }'''); |
1385 addTestSource(''' | 1303 addTestSource(''' |
1386 import "testB.dart" as x; | 1304 import "testB.dart" as x; |
1387 class A {final ^ A(){}} | 1305 class A {final ^ A(){}} |
1388 class _B {} | 1306 class _B {} |
1389 A T;'''); | 1307 A T;'''); |
1390 await computeSuggestions(); | 1308 await computeSuggestions(); |
1391 expect(replacementOffset, completionOffset); | 1309 expect(replacementOffset, completionOffset); |
1392 expect(replacementLength, 0); | 1310 expect(replacementLength, 0); |
1393 assertNotSuggested('A'); | 1311 assertNotSuggested('A'); |
1394 assertNotSuggested('_B'); | 1312 assertNotSuggested('_B'); |
1395 assertNotSuggested('String'); | 1313 assertNotSuggested('String'); |
1396 assertNotSuggested('T'); | 1314 assertNotSuggested('T'); |
1397 assertNotSuggested('x'); | 1315 assertNotSuggested('x'); |
1398 } | 1316 } |
1399 | 1317 |
1400 test_ClassDeclaration_body_final_field2() async { | 1318 test_ClassDeclaration_body_final_field2() async { |
1401 // ClassDeclaration CompilationUnit | 1319 // ClassDeclaration CompilationUnit |
1402 addSource( | 1320 addSource('/testB.dart', ''' |
1403 '/testB.dart', | |
1404 ''' | |
1405 class B { }'''); | 1321 class B { }'''); |
1406 addTestSource(''' | 1322 addTestSource(''' |
1407 import "testB.dart" as Soo; | 1323 import "testB.dart" as Soo; |
1408 class A {final S^ A();} | 1324 class A {final S^ A();} |
1409 class _B {} | 1325 class _B {} |
1410 A Sew;'''); | 1326 A Sew;'''); |
1411 await computeSuggestions(); | 1327 await computeSuggestions(); |
1412 expect(replacementOffset, completionOffset - 1); | 1328 expect(replacementOffset, completionOffset - 1); |
1413 expect(replacementLength, 1); | 1329 expect(replacementLength, 1); |
1414 assertNotSuggested('A'); | 1330 assertNotSuggested('A'); |
1415 assertNotSuggested('_B'); | 1331 assertNotSuggested('_B'); |
1416 assertNotSuggested('String'); | 1332 assertNotSuggested('String'); |
1417 assertNotSuggested('Sew'); | 1333 assertNotSuggested('Sew'); |
1418 assertNotSuggested('Soo'); | 1334 assertNotSuggested('Soo'); |
1419 } | 1335 } |
1420 | 1336 |
1421 test_ClassDeclaration_body_final_final() async { | 1337 test_ClassDeclaration_body_final_final() async { |
1422 // ClassDeclaration CompilationUnit | 1338 // ClassDeclaration CompilationUnit |
1423 addSource( | 1339 addSource('/testB.dart', ''' |
1424 '/testB.dart', | |
1425 ''' | |
1426 class B { }'''); | 1340 class B { }'''); |
1427 addTestSource(''' | 1341 addTestSource(''' |
1428 import "testB.dart" as x; | 1342 import "testB.dart" as x; |
1429 class A {final ^ final foo;} | 1343 class A {final ^ final foo;} |
1430 class _B {} | 1344 class _B {} |
1431 A T;'''); | 1345 A T;'''); |
1432 await computeSuggestions(); | 1346 await computeSuggestions(); |
1433 expect(replacementOffset, completionOffset); | 1347 expect(replacementOffset, completionOffset); |
1434 expect(replacementLength, 0); | 1348 expect(replacementLength, 0); |
1435 assertNotSuggested('A'); | 1349 assertNotSuggested('A'); |
1436 assertNotSuggested('_B'); | 1350 assertNotSuggested('_B'); |
1437 assertNotSuggested('Object'); | 1351 assertNotSuggested('Object'); |
1438 assertNotSuggested('T'); | 1352 assertNotSuggested('T'); |
1439 assertNotSuggested('x'); | 1353 assertNotSuggested('x'); |
1440 } | 1354 } |
1441 | 1355 |
1442 test_ClassDeclaration_body_final_var() async { | 1356 test_ClassDeclaration_body_final_var() async { |
1443 // ClassDeclaration CompilationUnit | 1357 // ClassDeclaration CompilationUnit |
1444 addSource( | 1358 addSource('/testB.dart', ''' |
1445 '/testB.dart', | |
1446 ''' | |
1447 class B { }'''); | 1359 class B { }'''); |
1448 addTestSource(''' | 1360 addTestSource(''' |
1449 import "testB.dart" as x; | 1361 import "testB.dart" as x; |
1450 class A {final ^ var foo;} | 1362 class A {final ^ var foo;} |
1451 class _B {} | 1363 class _B {} |
1452 A T;'''); | 1364 A T;'''); |
1453 await computeSuggestions(); | 1365 await computeSuggestions(); |
1454 expect(replacementOffset, completionOffset); | 1366 expect(replacementOffset, completionOffset); |
1455 expect(replacementLength, 0); | 1367 expect(replacementLength, 0); |
1456 assertNotSuggested('A'); | 1368 assertNotSuggested('A'); |
1457 assertNotSuggested('_B'); | 1369 assertNotSuggested('_B'); |
1458 assertNotSuggested('Object'); | 1370 assertNotSuggested('Object'); |
1459 assertNotSuggested('T'); | 1371 assertNotSuggested('T'); |
1460 assertNotSuggested('x'); | 1372 assertNotSuggested('x'); |
1461 } | 1373 } |
1462 | 1374 |
1463 test_Combinator_hide() async { | 1375 test_Combinator_hide() async { |
1464 // SimpleIdentifier HideCombinator ImportDirective | 1376 // SimpleIdentifier HideCombinator ImportDirective |
1465 addSource( | 1377 addSource('/testAB.dart', ''' |
1466 '/testAB.dart', | |
1467 ''' | |
1468 library libAB; | 1378 library libAB; |
1469 part '/partAB.dart'; | 1379 part '/partAB.dart'; |
1470 class A { } | 1380 class A { } |
1471 class B { }'''); | 1381 class B { }'''); |
1472 addSource( | 1382 addSource('/partAB.dart', ''' |
1473 '/partAB.dart', | |
1474 ''' | |
1475 part of libAB; | 1383 part of libAB; |
1476 var T1; | 1384 var T1; |
1477 PB F1() => new PB(); | 1385 PB F1() => new PB(); |
1478 class PB { }'''); | 1386 class PB { }'''); |
1479 addSource( | 1387 addSource('/testCD.dart', ''' |
1480 '/testCD.dart', | |
1481 ''' | |
1482 class C { } | 1388 class C { } |
1483 class D { }'''); | 1389 class D { }'''); |
1484 addTestSource(''' | 1390 addTestSource(''' |
1485 import "testAB.dart" hide ^; | 1391 import "testAB.dart" hide ^; |
1486 import "testCD.dart"; | 1392 import "testCD.dart"; |
1487 class X {}'''); | 1393 class X {}'''); |
1488 await computeSuggestions(); | 1394 await computeSuggestions(); |
1489 assertNoSuggestions(); | 1395 assertNoSuggestions(); |
1490 } | 1396 } |
1491 | 1397 |
1492 test_Combinator_show() async { | 1398 test_Combinator_show() async { |
1493 // SimpleIdentifier HideCombinator ImportDirective | 1399 // SimpleIdentifier HideCombinator ImportDirective |
1494 addSource( | 1400 addSource('/testAB.dart', ''' |
1495 '/testAB.dart', | |
1496 ''' | |
1497 library libAB; | 1401 library libAB; |
1498 part '/partAB.dart'; | 1402 part '/partAB.dart'; |
1499 class A { } | 1403 class A { } |
1500 class B { }'''); | 1404 class B { }'''); |
1501 addSource( | 1405 addSource('/partAB.dart', ''' |
1502 '/partAB.dart', | |
1503 ''' | |
1504 part of libAB; | 1406 part of libAB; |
1505 var T1; | 1407 var T1; |
1506 PB F1() => new PB(); | 1408 PB F1() => new PB(); |
1507 typedef PB2 F2(int blat); | 1409 typedef PB2 F2(int blat); |
1508 class Clz = Object with Object; | 1410 class Clz = Object with Object; |
1509 class PB { }'''); | 1411 class PB { }'''); |
1510 addSource( | 1412 addSource('/testCD.dart', ''' |
1511 '/testCD.dart', | |
1512 ''' | |
1513 class C { } | 1413 class C { } |
1514 class D { }'''); | 1414 class D { }'''); |
1515 addTestSource(''' | 1415 addTestSource(''' |
1516 import "testAB.dart" show ^; | 1416 import "testAB.dart" show ^; |
1517 import "testCD.dart"; | 1417 import "testCD.dart"; |
1518 class X {}'''); | 1418 class X {}'''); |
1519 await computeSuggestions(); | 1419 await computeSuggestions(); |
1520 assertNoSuggestions(); | 1420 assertNoSuggestions(); |
1521 } | 1421 } |
1522 | 1422 |
1523 test_ConditionalExpression_elseExpression() async { | 1423 test_ConditionalExpression_elseExpression() async { |
1524 // SimpleIdentifier ConditionalExpression ReturnStatement | 1424 // SimpleIdentifier ConditionalExpression ReturnStatement |
1525 addSource( | 1425 addSource('/testA.dart', ''' |
1526 '/testA.dart', | |
1527 ''' | |
1528 int T1; | 1426 int T1; |
1529 F1() { } | 1427 F1() { } |
1530 class A {int x;}'''); | 1428 class A {int x;}'''); |
1531 addTestSource(''' | 1429 addTestSource(''' |
1532 import "testA.dart"; | 1430 import "testA.dart"; |
1533 int T2; | 1431 int T2; |
1534 F2() { } | 1432 F2() { } |
1535 class B {int x;} | 1433 class B {int x;} |
1536 class C {foo(){var f; {var x;} return a ? T1 : T^}}'''); | 1434 class C {foo(){var f; {var x;} return a ? T1 : T^}}'''); |
1537 await computeSuggestions(); | 1435 await computeSuggestions(); |
1538 // top level results are partially filtered based on first char | 1436 // top level results are partially filtered based on first char |
1539 assertNotSuggested('T2'); | 1437 assertNotSuggested('T2'); |
1540 // TODO (danrubel) getter is being suggested instead of top level var | 1438 // TODO (danrubel) getter is being suggested instead of top level var |
1541 //assertSuggestImportedTopLevelVar('T1', 'int'); | 1439 //assertSuggestImportedTopLevelVar('T1', 'int'); |
1542 } | 1440 } |
1543 | 1441 |
1544 test_ConditionalExpression_elseExpression_empty() async { | 1442 test_ConditionalExpression_elseExpression_empty() async { |
1545 // SimpleIdentifier ConditionalExpression ReturnStatement | 1443 // SimpleIdentifier ConditionalExpression ReturnStatement |
1546 addSource( | 1444 addSource('/testA.dart', ''' |
1547 '/testA.dart', | |
1548 ''' | |
1549 int T1; | 1445 int T1; |
1550 F1() { } | 1446 F1() { } |
1551 class A {int x;}'''); | 1447 class A {int x;}'''); |
1552 addTestSource(''' | 1448 addTestSource(''' |
1553 import "testA.dart"; | 1449 import "testA.dart"; |
1554 int T2; | 1450 int T2; |
1555 F2() { } | 1451 F2() { } |
1556 class B {int x;} | 1452 class B {int x;} |
1557 class C {foo(){var f; {var x;} return a ? T1 : ^}}'''); | 1453 class C {foo(){var f; {var x;} return a ? T1 : ^}}'''); |
1558 await computeSuggestions(); | 1454 await computeSuggestions(); |
1559 assertNotSuggested('x'); | 1455 assertNotSuggested('x'); |
1560 assertNotSuggested('f'); | 1456 assertNotSuggested('f'); |
1561 assertNotSuggested('foo'); | 1457 assertNotSuggested('foo'); |
1562 assertNotSuggested('C'); | 1458 assertNotSuggested('C'); |
1563 assertNotSuggested('F2'); | 1459 assertNotSuggested('F2'); |
1564 assertNotSuggested('T2'); | 1460 assertNotSuggested('T2'); |
1565 assertNotSuggested('A'); | 1461 assertNotSuggested('A'); |
1566 assertNotSuggested('F1'); | 1462 assertNotSuggested('F1'); |
1567 // TODO (danrubel) getter is being suggested instead of top level var | 1463 // TODO (danrubel) getter is being suggested instead of top level var |
1568 //assertSuggestImportedTopLevelVar('T1', 'int'); | 1464 //assertSuggestImportedTopLevelVar('T1', 'int'); |
1569 } | 1465 } |
1570 | 1466 |
1571 test_ConditionalExpression_partial_thenExpression() async { | 1467 test_ConditionalExpression_partial_thenExpression() async { |
1572 // SimpleIdentifier ConditionalExpression ReturnStatement | 1468 // SimpleIdentifier ConditionalExpression ReturnStatement |
1573 addSource( | 1469 addSource('/testA.dart', ''' |
1574 '/testA.dart', | |
1575 ''' | |
1576 int T1; | 1470 int T1; |
1577 F1() { } | 1471 F1() { } |
1578 class A {int x;}'''); | 1472 class A {int x;}'''); |
1579 addTestSource(''' | 1473 addTestSource(''' |
1580 import "testA.dart"; | 1474 import "testA.dart"; |
1581 int T2; | 1475 int T2; |
1582 F2() { } | 1476 F2() { } |
1583 class B {int x;} | 1477 class B {int x;} |
1584 class C {foo(){var f; {var x;} return a ? T^}}'''); | 1478 class C {foo(){var f; {var x;} return a ? T^}}'''); |
1585 await computeSuggestions(); | 1479 await computeSuggestions(); |
1586 // top level results are partially filtered based on first char | 1480 // top level results are partially filtered based on first char |
1587 assertNotSuggested('T2'); | 1481 assertNotSuggested('T2'); |
1588 // TODO (danrubel) getter is being suggested instead of top level var | 1482 // TODO (danrubel) getter is being suggested instead of top level var |
1589 //assertSuggestImportedTopLevelVar('T1', 'int'); | 1483 //assertSuggestImportedTopLevelVar('T1', 'int'); |
1590 } | 1484 } |
1591 | 1485 |
1592 test_ConditionalExpression_partial_thenExpression_empty() async { | 1486 test_ConditionalExpression_partial_thenExpression_empty() async { |
1593 // SimpleIdentifier ConditionalExpression ReturnStatement | 1487 // SimpleIdentifier ConditionalExpression ReturnStatement |
1594 addSource( | 1488 addSource('/testA.dart', ''' |
1595 '/testA.dart', | |
1596 ''' | |
1597 int T1; | 1489 int T1; |
1598 F1() { } | 1490 F1() { } |
1599 class A {int x;}'''); | 1491 class A {int x;}'''); |
1600 addTestSource(''' | 1492 addTestSource(''' |
1601 import "testA.dart"; | 1493 import "testA.dart"; |
1602 int T2; | 1494 int T2; |
1603 F2() { } | 1495 F2() { } |
1604 class B {int x;} | 1496 class B {int x;} |
1605 class C {foo(){var f; {var x;} return a ? ^}}'''); | 1497 class C {foo(){var f; {var x;} return a ? ^}}'''); |
1606 await computeSuggestions(); | 1498 await computeSuggestions(); |
1607 assertNotSuggested('x'); | 1499 assertNotSuggested('x'); |
1608 assertNotSuggested('f'); | 1500 assertNotSuggested('f'); |
1609 assertNotSuggested('foo'); | 1501 assertNotSuggested('foo'); |
1610 assertNotSuggested('C'); | 1502 assertNotSuggested('C'); |
1611 assertNotSuggested('F2'); | 1503 assertNotSuggested('F2'); |
1612 assertNotSuggested('T2'); | 1504 assertNotSuggested('T2'); |
1613 assertNotSuggested('A'); | 1505 assertNotSuggested('A'); |
1614 assertNotSuggested('F1'); | 1506 assertNotSuggested('F1'); |
1615 // TODO (danrubel) getter is being suggested instead of top level var | 1507 // TODO (danrubel) getter is being suggested instead of top level var |
1616 //assertSuggestImportedTopLevelVar('T1', 'int'); | 1508 //assertSuggestImportedTopLevelVar('T1', 'int'); |
1617 } | 1509 } |
1618 | 1510 |
1619 test_ConditionalExpression_thenExpression() async { | 1511 test_ConditionalExpression_thenExpression() async { |
1620 // SimpleIdentifier ConditionalExpression ReturnStatement | 1512 // SimpleIdentifier ConditionalExpression ReturnStatement |
1621 addSource( | 1513 addSource('/testA.dart', ''' |
1622 '/testA.dart', | |
1623 ''' | |
1624 int T1; | 1514 int T1; |
1625 F1() { } | 1515 F1() { } |
1626 class A {int x;}'''); | 1516 class A {int x;}'''); |
1627 addTestSource(''' | 1517 addTestSource(''' |
1628 import "testA.dart"; | 1518 import "testA.dart"; |
1629 int T2; | 1519 int T2; |
1630 F2() { } | 1520 F2() { } |
1631 class B {int x;} | 1521 class B {int x;} |
1632 class C {foo(){var f; {var x;} return a ? T^ : c}}'''); | 1522 class C {foo(){var f; {var x;} return a ? T^ : c}}'''); |
1633 await computeSuggestions(); | 1523 await computeSuggestions(); |
1634 // top level results are partially filtered based on first char | 1524 // top level results are partially filtered based on first char |
1635 assertNotSuggested('T2'); | 1525 assertNotSuggested('T2'); |
1636 // TODO (danrubel) getter is being suggested instead of top level var | 1526 // TODO (danrubel) getter is being suggested instead of top level var |
1637 //assertSuggestImportedTopLevelVar('T1', 'int'); | 1527 //assertSuggestImportedTopLevelVar('T1', 'int'); |
1638 } | 1528 } |
1639 | 1529 |
1640 test_ConstructorName_importedClass() async { | 1530 test_ConstructorName_importedClass() async { |
1641 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName | 1531 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName |
1642 // InstanceCreationExpression | 1532 // InstanceCreationExpression |
1643 addSource( | 1533 addSource('/testB.dart', ''' |
1644 '/testB.dart', | |
1645 ''' | |
1646 lib B; | 1534 lib B; |
1647 int T1; | 1535 int T1; |
1648 F1() { } | 1536 F1() { } |
1649 class X {X.c(); X._d(); z() {}}'''); | 1537 class X {X.c(); X._d(); z() {}}'''); |
1650 addTestSource(''' | 1538 addTestSource(''' |
1651 import "testB.dart"; | 1539 import "testB.dart"; |
1652 var m; | 1540 var m; |
1653 main() {new X.^}'''); | 1541 main() {new X.^}'''); |
1654 await computeSuggestions(); | 1542 await computeSuggestions(); |
1655 expect(replacementOffset, completionOffset); | 1543 expect(replacementOffset, completionOffset); |
1656 expect(replacementLength, 0); | 1544 expect(replacementLength, 0); |
1657 // Suggested by NamedConstructorContributor | 1545 // Suggested by NamedConstructorContributor |
1658 assertNotSuggested('c'); | 1546 assertNotSuggested('c'); |
1659 assertNotSuggested('F1'); | 1547 assertNotSuggested('F1'); |
1660 assertNotSuggested('T1'); | 1548 assertNotSuggested('T1'); |
1661 assertNotSuggested('_d'); | 1549 assertNotSuggested('_d'); |
1662 assertNotSuggested('z'); | 1550 assertNotSuggested('z'); |
1663 assertNotSuggested('m'); | 1551 assertNotSuggested('m'); |
1664 } | 1552 } |
1665 | 1553 |
1666 test_ConstructorName_importedFactory() async { | 1554 test_ConstructorName_importedFactory() async { |
1667 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName | 1555 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName |
1668 // InstanceCreationExpression | 1556 // InstanceCreationExpression |
1669 addSource( | 1557 addSource('/testB.dart', ''' |
1670 '/testB.dart', | |
1671 ''' | |
1672 lib B; | 1558 lib B; |
1673 int T1; | 1559 int T1; |
1674 F1() { } | 1560 F1() { } |
1675 class X {factory X.c(); factory X._d(); z() {}}'''); | 1561 class X {factory X.c(); factory X._d(); z() {}}'''); |
1676 addTestSource(''' | 1562 addTestSource(''' |
1677 import "testB.dart"; | 1563 import "testB.dart"; |
1678 var m; | 1564 var m; |
1679 main() {new X.^}'''); | 1565 main() {new X.^}'''); |
1680 await computeSuggestions(); | 1566 await computeSuggestions(); |
1681 expect(replacementOffset, completionOffset); | 1567 expect(replacementOffset, completionOffset); |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1821 await computeSuggestions(); | 1707 await computeSuggestions(); |
1822 assertNotSuggested('E'); | 1708 assertNotSuggested('E'); |
1823 assertNotSuggested('one'); | 1709 assertNotSuggested('one'); |
1824 assertNotSuggested('two'); | 1710 assertNotSuggested('two'); |
1825 assertSuggestField('index', 'int'); | 1711 assertSuggestField('index', 'int'); |
1826 assertNotSuggested('values'); | 1712 assertNotSuggested('values'); |
1827 } | 1713 } |
1828 | 1714 |
1829 test_ExpressionStatement_identifier() async { | 1715 test_ExpressionStatement_identifier() async { |
1830 // SimpleIdentifier ExpressionStatement Block | 1716 // SimpleIdentifier ExpressionStatement Block |
1831 addSource( | 1717 addSource('/testA.dart', ''' |
1832 '/testA.dart', | |
1833 ''' | |
1834 _B F1() { } | 1718 _B F1() { } |
1835 class A {int x;} | 1719 class A {int x;} |
1836 class _B { }'''); | 1720 class _B { }'''); |
1837 addTestSource(''' | 1721 addTestSource(''' |
1838 import "testA.dart"; | 1722 import "testA.dart"; |
1839 typedef int F2(int blat); | 1723 typedef int F2(int blat); |
1840 class Clz = Object with Object; | 1724 class Clz = Object with Object; |
1841 class C {foo(){^} void bar() {}}'''); | 1725 class C {foo(){^} void bar() {}}'''); |
1842 await computeSuggestions(); | 1726 await computeSuggestions(); |
1843 expect(replacementOffset, completionOffset); | 1727 expect(replacementOffset, completionOffset); |
1844 expect(replacementLength, 0); | 1728 expect(replacementLength, 0); |
1845 assertNotSuggested('A'); | 1729 assertNotSuggested('A'); |
1846 assertNotSuggested('F1'); | 1730 assertNotSuggested('F1'); |
1847 assertNotSuggested('C'); | 1731 assertNotSuggested('C'); |
1848 assertNotSuggested('foo'); | 1732 assertNotSuggested('foo'); |
1849 assertNotSuggested('bar'); | 1733 assertNotSuggested('bar'); |
1850 assertNotSuggested('F2'); | 1734 assertNotSuggested('F2'); |
1851 assertNotSuggested('Clz'); | 1735 assertNotSuggested('Clz'); |
1852 assertNotSuggested('C'); | 1736 assertNotSuggested('C'); |
1853 assertNotSuggested('x'); | 1737 assertNotSuggested('x'); |
1854 assertNotSuggested('_B'); | 1738 assertNotSuggested('_B'); |
1855 } | 1739 } |
1856 | 1740 |
1857 test_ExpressionStatement_name() async { | 1741 test_ExpressionStatement_name() async { |
1858 // ExpressionStatement Block BlockFunctionBody MethodDeclaration | 1742 // ExpressionStatement Block BlockFunctionBody MethodDeclaration |
1859 addSource( | 1743 addSource('/testA.dart', ''' |
1860 '/testA.dart', | |
1861 ''' | |
1862 B T1; | 1744 B T1; |
1863 class B{}'''); | 1745 class B{}'''); |
1864 addTestSource(''' | 1746 addTestSource(''' |
1865 import "testA.dart"; | 1747 import "testA.dart"; |
1866 class C {a() {C ^}}'''); | 1748 class C {a() {C ^}}'''); |
1867 await computeSuggestions(); | 1749 await computeSuggestions(); |
1868 assertNoSuggestions(); | 1750 assertNoSuggestions(); |
1869 } | 1751 } |
1870 | 1752 |
1871 test_FieldDeclaration_name_typed() async { | 1753 test_FieldDeclaration_name_typed() async { |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2027 await computeSuggestions(); | 1909 await computeSuggestions(); |
2028 expect(replacementOffset, completionOffset - 1); | 1910 expect(replacementOffset, completionOffset - 1); |
2029 expect(replacementLength, 1); | 1911 expect(replacementLength, 1); |
2030 assertNotSuggested('index'); | 1912 assertNotSuggested('index'); |
2031 assertNotSuggested('main'); | 1913 assertNotSuggested('main'); |
2032 assertNotSuggested('bar'); | 1914 assertNotSuggested('bar'); |
2033 } | 1915 } |
2034 | 1916 |
2035 test_FunctionDeclaration_returnType_afterComment() async { | 1917 test_FunctionDeclaration_returnType_afterComment() async { |
2036 // ClassDeclaration CompilationUnit | 1918 // ClassDeclaration CompilationUnit |
2037 addSource( | 1919 addSource('/testA.dart', ''' |
2038 '/testA.dart', | |
2039 ''' | |
2040 int T1; | 1920 int T1; |
2041 F1() { } | 1921 F1() { } |
2042 typedef D1(); | 1922 typedef D1(); |
2043 class C1 {C1(this.x) { } int x;}'''); | 1923 class C1 {C1(this.x) { } int x;}'''); |
2044 addTestSource(''' | 1924 addTestSource(''' |
2045 import "testA.dart"; | 1925 import "testA.dart"; |
2046 int T2; | 1926 int T2; |
2047 F2() { } | 1927 F2() { } |
2048 typedef D2(); | 1928 typedef D2(); |
2049 class C2 { } | 1929 class C2 { } |
2050 /* */ ^ zoo(z) { } String name;'''); | 1930 /* */ ^ zoo(z) { } String name;'''); |
2051 await computeSuggestions(); | 1931 await computeSuggestions(); |
2052 expect(replacementOffset, completionOffset); | 1932 expect(replacementOffset, completionOffset); |
2053 expect(replacementLength, 0); | 1933 expect(replacementLength, 0); |
2054 assertNotSuggested('Object'); | 1934 assertNotSuggested('Object'); |
2055 assertNotSuggested('T1'); | 1935 assertNotSuggested('T1'); |
2056 assertNotSuggested('F1'); | 1936 assertNotSuggested('F1'); |
2057 assertNotSuggested('D1'); | 1937 assertNotSuggested('D1'); |
2058 assertNotSuggested('C1'); | 1938 assertNotSuggested('C1'); |
2059 assertNotSuggested('T2'); | 1939 assertNotSuggested('T2'); |
2060 assertNotSuggested('F2'); | 1940 assertNotSuggested('F2'); |
2061 assertNotSuggested('D2'); | 1941 assertNotSuggested('D2'); |
2062 assertNotSuggested('C2'); | 1942 assertNotSuggested('C2'); |
2063 assertNotSuggested('name'); | 1943 assertNotSuggested('name'); |
2064 } | 1944 } |
2065 | 1945 |
2066 test_FunctionDeclaration_returnType_afterComment2() async { | 1946 test_FunctionDeclaration_returnType_afterComment2() async { |
2067 // FunctionDeclaration ClassDeclaration CompilationUnit | 1947 // FunctionDeclaration ClassDeclaration CompilationUnit |
2068 addSource( | 1948 addSource('/testA.dart', ''' |
2069 '/testA.dart', | |
2070 ''' | |
2071 int T1; | 1949 int T1; |
2072 F1() { } | 1950 F1() { } |
2073 typedef D1(); | 1951 typedef D1(); |
2074 class C1 {C1(this.x) { } int x;}'''); | 1952 class C1 {C1(this.x) { } int x;}'''); |
2075 addTestSource(''' | 1953 addTestSource(''' |
2076 import "testA.dart"; | 1954 import "testA.dart"; |
2077 int T2; | 1955 int T2; |
2078 F2() { } | 1956 F2() { } |
2079 typedef D2(); | 1957 typedef D2(); |
2080 class C2 { } | 1958 class C2 { } |
2081 /** */ ^ zoo(z) { } String name;'''); | 1959 /** */ ^ zoo(z) { } String name;'''); |
2082 await computeSuggestions(); | 1960 await computeSuggestions(); |
2083 expect(replacementOffset, completionOffset); | 1961 expect(replacementOffset, completionOffset); |
2084 expect(replacementLength, 0); | 1962 expect(replacementLength, 0); |
2085 assertNotSuggested('Object'); | 1963 assertNotSuggested('Object'); |
2086 assertNotSuggested('T1'); | 1964 assertNotSuggested('T1'); |
2087 assertNotSuggested('F1'); | 1965 assertNotSuggested('F1'); |
2088 assertNotSuggested('D1'); | 1966 assertNotSuggested('D1'); |
2089 assertNotSuggested('C1'); | 1967 assertNotSuggested('C1'); |
2090 assertNotSuggested('T2'); | 1968 assertNotSuggested('T2'); |
2091 assertNotSuggested('F2'); | 1969 assertNotSuggested('F2'); |
2092 assertNotSuggested('D2'); | 1970 assertNotSuggested('D2'); |
2093 assertNotSuggested('C2'); | 1971 assertNotSuggested('C2'); |
2094 assertNotSuggested('name'); | 1972 assertNotSuggested('name'); |
2095 } | 1973 } |
2096 | 1974 |
2097 test_FunctionDeclaration_returnType_afterComment3() async { | 1975 test_FunctionDeclaration_returnType_afterComment3() async { |
2098 // FunctionDeclaration ClassDeclaration CompilationUnit | 1976 // FunctionDeclaration ClassDeclaration CompilationUnit |
2099 addSource( | 1977 addSource('/testA.dart', ''' |
2100 '/testA.dart', | |
2101 ''' | |
2102 int T1; | 1978 int T1; |
2103 F1() { } | 1979 F1() { } |
2104 typedef D1(); | 1980 typedef D1(); |
2105 class C1 {C1(this.x) { } int x;}'''); | 1981 class C1 {C1(this.x) { } int x;}'''); |
2106 addTestSource(''' | 1982 addTestSource(''' |
2107 import "testA.dart"; | 1983 import "testA.dart"; |
2108 int T2; | 1984 int T2; |
2109 F2() { } | 1985 F2() { } |
2110 typedef D2(); | 1986 typedef D2(); |
2111 /// some dartdoc | 1987 /// some dartdoc |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2260 // SimpleStringLiteral ImportDirective | 2136 // SimpleStringLiteral ImportDirective |
2261 addTestSource(''' | 2137 addTestSource(''' |
2262 import "dart^"; | 2138 import "dart^"; |
2263 main() {}'''); | 2139 main() {}'''); |
2264 await computeSuggestions(); | 2140 await computeSuggestions(); |
2265 assertNoSuggestions(); | 2141 assertNoSuggestions(); |
2266 } | 2142 } |
2267 | 2143 |
2268 test_IndexExpression() async { | 2144 test_IndexExpression() async { |
2269 // ExpressionStatement Block | 2145 // ExpressionStatement Block |
2270 addSource( | 2146 addSource('/testA.dart', ''' |
2271 '/testA.dart', | |
2272 ''' | |
2273 int T1; | 2147 int T1; |
2274 F1() { } | 2148 F1() { } |
2275 class A {int x;}'''); | 2149 class A {int x;}'''); |
2276 addTestSource(''' | 2150 addTestSource(''' |
2277 import "testA.dart"; | 2151 import "testA.dart"; |
2278 int T2; | 2152 int T2; |
2279 F2() { } | 2153 F2() { } |
2280 class B {int x;} | 2154 class B {int x;} |
2281 class C {foo(){var f; {var x;} f[^]}}'''); | 2155 class C {foo(){var f; {var x;} f[^]}}'''); |
2282 await computeSuggestions(); | 2156 await computeSuggestions(); |
2283 assertNotSuggested('x'); | 2157 assertNotSuggested('x'); |
2284 assertNotSuggested('f'); | 2158 assertNotSuggested('f'); |
2285 assertNotSuggested('foo'); | 2159 assertNotSuggested('foo'); |
2286 assertNotSuggested('C'); | 2160 assertNotSuggested('C'); |
2287 assertNotSuggested('F2'); | 2161 assertNotSuggested('F2'); |
2288 assertNotSuggested('T2'); | 2162 assertNotSuggested('T2'); |
2289 assertNotSuggested('A'); | 2163 assertNotSuggested('A'); |
2290 assertNotSuggested('F1'); | 2164 assertNotSuggested('F1'); |
2291 // TODO (danrubel) getter is being suggested instead of top level var | 2165 // TODO (danrubel) getter is being suggested instead of top level var |
2292 //assertSuggestImportedTopLevelVar('T1', 'int'); | 2166 //assertSuggestImportedTopLevelVar('T1', 'int'); |
2293 } | 2167 } |
2294 | 2168 |
2295 test_IndexExpression2() async { | 2169 test_IndexExpression2() async { |
2296 // SimpleIdentifier IndexExpression ExpressionStatement Block | 2170 // SimpleIdentifier IndexExpression ExpressionStatement Block |
2297 addSource( | 2171 addSource('/testA.dart', ''' |
2298 '/testA.dart', | |
2299 ''' | |
2300 int T1; | 2172 int T1; |
2301 F1() { } | 2173 F1() { } |
2302 class A {int x;}'''); | 2174 class A {int x;}'''); |
2303 addTestSource(''' | 2175 addTestSource(''' |
2304 import "testA.dart"; | 2176 import "testA.dart"; |
2305 int T2; | 2177 int T2; |
2306 F2() { } | 2178 F2() { } |
2307 class B {int x;} | 2179 class B {int x;} |
2308 class C {foo(){var f; {var x;} f[T^]}}'''); | 2180 class C {foo(){var f; {var x;} f[T^]}}'''); |
2309 await computeSuggestions(); | 2181 await computeSuggestions(); |
2310 // top level results are partially filtered based on first char | 2182 // top level results are partially filtered based on first char |
2311 assertNotSuggested('T2'); | 2183 assertNotSuggested('T2'); |
2312 // TODO (danrubel) getter is being suggested instead of top level var | 2184 // TODO (danrubel) getter is being suggested instead of top level var |
2313 //assertSuggestImportedTopLevelVar('T1', 'int'); | 2185 //assertSuggestImportedTopLevelVar('T1', 'int'); |
2314 } | 2186 } |
2315 | 2187 |
2316 test_InstanceCreationExpression_imported() async { | 2188 test_InstanceCreationExpression_imported() async { |
2317 // SimpleIdentifier TypeName ConstructorName InstanceCreationExpression | 2189 // SimpleIdentifier TypeName ConstructorName InstanceCreationExpression |
2318 addSource( | 2190 addSource('/testA.dart', ''' |
2319 '/testA.dart', | |
2320 ''' | |
2321 int T1; | 2191 int T1; |
2322 F1() { } | 2192 F1() { } |
2323 class A {A(this.x) { } int x;}'''); | 2193 class A {A(this.x) { } int x;}'''); |
2324 addTestSource(''' | 2194 addTestSource(''' |
2325 import "testA.dart"; | 2195 import "testA.dart"; |
2326 import "dart:async"; | 2196 import "dart:async"; |
2327 int T2; | 2197 int T2; |
2328 F2() { } | 2198 F2() { } |
2329 class B {B(this.x, [String boo]) { } int x;} | 2199 class B {B(this.x, [String boo]) { } int x;} |
2330 class C {foo(){var f; {var x;} new ^}}'''); | 2200 class C {foo(){var f; {var x;} new ^}}'''); |
(...skipping 20 matching lines...) Expand all Loading... |
2351 addTestSource('class C {foo(){new F^}}'); | 2221 addTestSource('class C {foo(){new F^}}'); |
2352 await computeSuggestions(); | 2222 await computeSuggestions(); |
2353 expect(replacementOffset, completionOffset - 1); | 2223 expect(replacementOffset, completionOffset - 1); |
2354 expect(replacementLength, 1); | 2224 expect(replacementLength, 1); |
2355 assertNotSuggested('Future'); | 2225 assertNotSuggested('Future'); |
2356 assertNotSuggested('Foo'); | 2226 assertNotSuggested('Foo'); |
2357 } | 2227 } |
2358 | 2228 |
2359 test_InterpolationExpression() async { | 2229 test_InterpolationExpression() async { |
2360 // SimpleIdentifier InterpolationExpression StringInterpolation | 2230 // SimpleIdentifier InterpolationExpression StringInterpolation |
2361 addSource( | 2231 addSource('/testA.dart', ''' |
2362 '/testA.dart', | |
2363 ''' | |
2364 int T1; | 2232 int T1; |
2365 F1() { } | 2233 F1() { } |
2366 typedef D1(); | 2234 typedef D1(); |
2367 class C1 {C1(this.x) { } int x;}'''); | 2235 class C1 {C1(this.x) { } int x;}'''); |
2368 addTestSource(''' | 2236 addTestSource(''' |
2369 import "testA.dart"; | 2237 import "testA.dart"; |
2370 int T2; | 2238 int T2; |
2371 F2() { } | 2239 F2() { } |
2372 typedef D2(); | 2240 typedef D2(); |
2373 class C2 { } | 2241 class C2 { } |
2374 main() {String name; print("hello \$^");}'''); | 2242 main() {String name; print("hello \$^");}'''); |
2375 await computeSuggestions(); | 2243 await computeSuggestions(); |
2376 expect(replacementOffset, completionOffset); | 2244 expect(replacementOffset, completionOffset); |
2377 expect(replacementLength, 0); | 2245 expect(replacementLength, 0); |
2378 assertNotSuggested('Object'); | 2246 assertNotSuggested('Object'); |
2379 // TODO(danrubel) should return top level var rather than getter | 2247 // TODO(danrubel) should return top level var rather than getter |
2380 assertNotSuggested('F1'); | 2248 assertNotSuggested('F1'); |
2381 assertNotSuggested('D1'); | 2249 assertNotSuggested('D1'); |
2382 assertNotSuggested('C1'); | 2250 assertNotSuggested('C1'); |
2383 assertNotSuggested('T2'); | 2251 assertNotSuggested('T2'); |
2384 assertNotSuggested('F2'); | 2252 assertNotSuggested('F2'); |
2385 assertNotSuggested('D2'); | 2253 assertNotSuggested('D2'); |
2386 assertNotSuggested('C2'); | 2254 assertNotSuggested('C2'); |
2387 assertNotSuggested('name'); | 2255 assertNotSuggested('name'); |
2388 } | 2256 } |
2389 | 2257 |
2390 test_InterpolationExpression_block() async { | 2258 test_InterpolationExpression_block() async { |
2391 // SimpleIdentifier InterpolationExpression StringInterpolation | 2259 // SimpleIdentifier InterpolationExpression StringInterpolation |
2392 addSource( | 2260 addSource('/testA.dart', ''' |
2393 '/testA.dart', | |
2394 ''' | |
2395 int T1; | 2261 int T1; |
2396 F1() { } | 2262 F1() { } |
2397 typedef D1(); | 2263 typedef D1(); |
2398 class C1 {C1(this.x) { } int x;}'''); | 2264 class C1 {C1(this.x) { } int x;}'''); |
2399 addTestSource(''' | 2265 addTestSource(''' |
2400 import "testA.dart"; | 2266 import "testA.dart"; |
2401 int T2; | 2267 int T2; |
2402 F2() { } | 2268 F2() { } |
2403 typedef D2(); | 2269 typedef D2(); |
2404 class C2 { } | 2270 class C2 { } |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2450 addTestSource('main() {String name; print("hello \${nam^e.length}");}'); | 2316 addTestSource('main() {String name; print("hello \${nam^e.length}");}'); |
2451 await computeSuggestions(); | 2317 await computeSuggestions(); |
2452 assertNotSuggested('name'); | 2318 assertNotSuggested('name'); |
2453 // top level results are partially filtered | 2319 // top level results are partially filtered |
2454 //assertNotSuggested('Object'); | 2320 //assertNotSuggested('Object'); |
2455 assertNotSuggested('length'); | 2321 assertNotSuggested('length'); |
2456 } | 2322 } |
2457 | 2323 |
2458 test_IsExpression() async { | 2324 test_IsExpression() async { |
2459 // SimpleIdentifier TypeName IsExpression IfStatement | 2325 // SimpleIdentifier TypeName IsExpression IfStatement |
2460 addSource( | 2326 addSource('/testB.dart', ''' |
2461 '/testB.dart', | |
2462 ''' | |
2463 lib B; | 2327 lib B; |
2464 foo() { } | 2328 foo() { } |
2465 class X {X.c(); X._d(); z() {}}'''); | 2329 class X {X.c(); X._d(); z() {}}'''); |
2466 addTestSource(''' | 2330 addTestSource(''' |
2467 import "testB.dart"; | 2331 import "testB.dart"; |
2468 class Y {Y.c(); Y._d(); z() {}} | 2332 class Y {Y.c(); Y._d(); z() {}} |
2469 main() {var x; if (x is ^) { }}'''); | 2333 main() {var x; if (x is ^) { }}'''); |
2470 await computeSuggestions(); | 2334 await computeSuggestions(); |
2471 expect(replacementOffset, completionOffset); | 2335 expect(replacementOffset, completionOffset); |
2472 expect(replacementLength, 0); | 2336 expect(replacementLength, 0); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2524 } | 2388 } |
2525 | 2389 |
2526 test_keyword() async { | 2390 test_keyword() async { |
2527 addTestSource('class C { static C get instance => null; } main() {C.in^}'); | 2391 addTestSource('class C { static C get instance => null; } main() {C.in^}'); |
2528 await computeSuggestions(); | 2392 await computeSuggestions(); |
2529 // Suggested by StaticMemberContributor | 2393 // Suggested by StaticMemberContributor |
2530 assertNotSuggested('instance'); | 2394 assertNotSuggested('instance'); |
2531 } | 2395 } |
2532 | 2396 |
2533 test_keyword2() async { | 2397 test_keyword2() async { |
2534 addSource( | 2398 addSource('/testB.dart', ''' |
2535 '/testB.dart', | |
2536 ''' | |
2537 lib B; | 2399 lib B; |
2538 int newT1; | 2400 int newT1; |
2539 int T1; | 2401 int T1; |
2540 nowIsIt() { } | 2402 nowIsIt() { } |
2541 class X {factory X.c(); factory X._d(); z() {}}'''); | 2403 class X {factory X.c(); factory X._d(); z() {}}'''); |
2542 addTestSource(''' | 2404 addTestSource(''' |
2543 import "testB.dart"; | 2405 import "testB.dart"; |
2544 String newer() {} | 2406 String newer() {} |
2545 var m; | 2407 var m; |
2546 main() {new^ X.c();}'''); | 2408 main() {new^ X.c();}'''); |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2645 | 2507 |
2646 test_localVariableDeclarationName() async { | 2508 test_localVariableDeclarationName() async { |
2647 addTestSource('main() {String m^}'); | 2509 addTestSource('main() {String m^}'); |
2648 await computeSuggestions(); | 2510 await computeSuggestions(); |
2649 assertNotSuggested('main'); | 2511 assertNotSuggested('main'); |
2650 assertNotSuggested('min'); | 2512 assertNotSuggested('min'); |
2651 } | 2513 } |
2652 | 2514 |
2653 test_MapLiteralEntry() async { | 2515 test_MapLiteralEntry() async { |
2654 // MapLiteralEntry MapLiteral VariableDeclaration | 2516 // MapLiteralEntry MapLiteral VariableDeclaration |
2655 addSource( | 2517 addSource('/testA.dart', ''' |
2656 '/testA.dart', | |
2657 ''' | |
2658 int T1; | 2518 int T1; |
2659 F1() { } | 2519 F1() { } |
2660 typedef D1(); | 2520 typedef D1(); |
2661 class C1 {C1(this.x) { } int x;}'''); | 2521 class C1 {C1(this.x) { } int x;}'''); |
2662 addTestSource(''' | 2522 addTestSource(''' |
2663 import "testA.dart"; | 2523 import "testA.dart"; |
2664 int T2; | 2524 int T2; |
2665 F2() { } | 2525 F2() { } |
2666 typedef D2(); | 2526 typedef D2(); |
2667 class C2 { } | 2527 class C2 { } |
2668 foo = {^'''); | 2528 foo = {^'''); |
2669 await computeSuggestions(); | 2529 await computeSuggestions(); |
2670 expect(replacementOffset, completionOffset); | 2530 expect(replacementOffset, completionOffset); |
2671 expect(replacementLength, 0); | 2531 expect(replacementLength, 0); |
2672 assertNotSuggested('Object'); | 2532 assertNotSuggested('Object'); |
2673 assertNotSuggested('F1'); | 2533 assertNotSuggested('F1'); |
2674 assertNotSuggested('D1'); | 2534 assertNotSuggested('D1'); |
2675 assertNotSuggested('C1'); | 2535 assertNotSuggested('C1'); |
2676 assertNotSuggested('T2'); | 2536 assertNotSuggested('T2'); |
2677 assertNotSuggested('F2'); | 2537 assertNotSuggested('F2'); |
2678 assertNotSuggested('D2'); | 2538 assertNotSuggested('D2'); |
2679 assertNotSuggested('C2'); | 2539 assertNotSuggested('C2'); |
2680 } | 2540 } |
2681 | 2541 |
2682 test_MapLiteralEntry1() async { | 2542 test_MapLiteralEntry1() async { |
2683 // MapLiteralEntry MapLiteral VariableDeclaration | 2543 // MapLiteralEntry MapLiteral VariableDeclaration |
2684 addSource( | 2544 addSource('/testA.dart', ''' |
2685 '/testA.dart', | |
2686 ''' | |
2687 int T1; | 2545 int T1; |
2688 F1() { } | 2546 F1() { } |
2689 typedef D1(); | 2547 typedef D1(); |
2690 class C1 {C1(this.x) { } int x;}'''); | 2548 class C1 {C1(this.x) { } int x;}'''); |
2691 addTestSource(''' | 2549 addTestSource(''' |
2692 import "testA.dart"; | 2550 import "testA.dart"; |
2693 int T2; | 2551 int T2; |
2694 F2() { } | 2552 F2() { } |
2695 typedef D2(); | 2553 typedef D2(); |
2696 class C2 { } | 2554 class C2 { } |
2697 foo = {T^'''); | 2555 foo = {T^'''); |
2698 await computeSuggestions(); | 2556 await computeSuggestions(); |
2699 expect(replacementOffset, completionOffset - 1); | 2557 expect(replacementOffset, completionOffset - 1); |
2700 expect(replacementLength, 1); | 2558 expect(replacementLength, 1); |
2701 assertNotSuggested('T2'); | 2559 assertNotSuggested('T2'); |
2702 } | 2560 } |
2703 | 2561 |
2704 test_MapLiteralEntry2() async { | 2562 test_MapLiteralEntry2() async { |
2705 // SimpleIdentifier MapLiteralEntry MapLiteral VariableDeclaration | 2563 // SimpleIdentifier MapLiteralEntry MapLiteral VariableDeclaration |
2706 addSource( | 2564 addSource('/testA.dart', ''' |
2707 '/testA.dart', | |
2708 ''' | |
2709 int T1; | 2565 int T1; |
2710 F1() { } | 2566 F1() { } |
2711 typedef D1(); | 2567 typedef D1(); |
2712 class C1 {C1(this.x) { } int x;}'''); | 2568 class C1 {C1(this.x) { } int x;}'''); |
2713 addTestSource(''' | 2569 addTestSource(''' |
2714 import "testA.dart"; | 2570 import "testA.dart"; |
2715 int T2; | 2571 int T2; |
2716 F2() { } | 2572 F2() { } |
2717 typedef D2(); | 2573 typedef D2(); |
2718 class C2 { } | 2574 class C2 { } |
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2828 await computeSuggestions(); | 2684 await computeSuggestions(); |
2829 expect(replacementOffset, completionOffset); | 2685 expect(replacementOffset, completionOffset); |
2830 expect(replacementLength, 0); | 2686 expect(replacementLength, 0); |
2831 assertNotSuggested('a'); | 2687 assertNotSuggested('a'); |
2832 assertNotSuggested('f'); | 2688 assertNotSuggested('f'); |
2833 assertNotSuggested('_g'); | 2689 assertNotSuggested('_g'); |
2834 } | 2690 } |
2835 | 2691 |
2836 test_MethodDeclaration_body_static() async { | 2692 test_MethodDeclaration_body_static() async { |
2837 // Block BlockFunctionBody MethodDeclaration | 2693 // Block BlockFunctionBody MethodDeclaration |
2838 addSource( | 2694 addSource('/testC.dart', ''' |
2839 '/testC.dart', | |
2840 ''' | |
2841 class C { | 2695 class C { |
2842 c1() {} | 2696 c1() {} |
2843 var c2; | 2697 var c2; |
2844 static c3() {} | 2698 static c3() {} |
2845 static var c4;}'''); | 2699 static var c4;}'''); |
2846 addTestSource(''' | 2700 addTestSource(''' |
2847 import "testC.dart"; | 2701 import "testC.dart"; |
2848 class B extends C { | 2702 class B extends C { |
2849 b1() {} | 2703 b1() {} |
2850 var b2; | 2704 var b2; |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2909 assertNotSuggested('foo'); | 2763 assertNotSuggested('foo'); |
2910 assertNotSuggested('bar'); | 2764 assertNotSuggested('bar'); |
2911 assertNotSuggested('a'); | 2765 assertNotSuggested('a'); |
2912 assertNotSuggested('x'); | 2766 assertNotSuggested('x'); |
2913 assertNotSuggested('y'); | 2767 assertNotSuggested('y'); |
2914 assertNotSuggested('String'); | 2768 assertNotSuggested('String'); |
2915 } | 2769 } |
2916 | 2770 |
2917 test_MethodDeclaration_returnType() async { | 2771 test_MethodDeclaration_returnType() async { |
2918 // ClassDeclaration CompilationUnit | 2772 // ClassDeclaration CompilationUnit |
2919 addSource( | 2773 addSource('/testA.dart', ''' |
2920 '/testA.dart', | |
2921 ''' | |
2922 int T1; | 2774 int T1; |
2923 F1() { } | 2775 F1() { } |
2924 typedef D1(); | 2776 typedef D1(); |
2925 class C1 {C1(this.x) { } int x;}'''); | 2777 class C1 {C1(this.x) { } int x;}'''); |
2926 addTestSource(''' | 2778 addTestSource(''' |
2927 import "testA.dart"; | 2779 import "testA.dart"; |
2928 int T2; | 2780 int T2; |
2929 F2() { } | 2781 F2() { } |
2930 typedef D2(); | 2782 typedef D2(); |
2931 class C2 {^ zoo(z) { } String name; }'''); | 2783 class C2 {^ zoo(z) { } String name; }'''); |
2932 await computeSuggestions(); | 2784 await computeSuggestions(); |
2933 expect(replacementOffset, completionOffset); | 2785 expect(replacementOffset, completionOffset); |
2934 expect(replacementLength, 0); | 2786 expect(replacementLength, 0); |
2935 assertNotSuggested('Object'); | 2787 assertNotSuggested('Object'); |
2936 assertNotSuggested('T1'); | 2788 assertNotSuggested('T1'); |
2937 assertNotSuggested('F1'); | 2789 assertNotSuggested('F1'); |
2938 assertNotSuggested('D1'); | 2790 assertNotSuggested('D1'); |
2939 assertNotSuggested('C1'); | 2791 assertNotSuggested('C1'); |
2940 assertNotSuggested('T2'); | 2792 assertNotSuggested('T2'); |
2941 assertNotSuggested('F2'); | 2793 assertNotSuggested('F2'); |
2942 assertNotSuggested('D2'); | 2794 assertNotSuggested('D2'); |
2943 assertNotSuggested('C2'); | 2795 assertNotSuggested('C2'); |
2944 assertNotSuggested('name'); | 2796 assertNotSuggested('name'); |
2945 } | 2797 } |
2946 | 2798 |
2947 test_MethodDeclaration_returnType_afterComment() async { | 2799 test_MethodDeclaration_returnType_afterComment() async { |
2948 // ClassDeclaration CompilationUnit | 2800 // ClassDeclaration CompilationUnit |
2949 addSource( | 2801 addSource('/testA.dart', ''' |
2950 '/testA.dart', | |
2951 ''' | |
2952 int T1; | 2802 int T1; |
2953 F1() { } | 2803 F1() { } |
2954 typedef D1(); | 2804 typedef D1(); |
2955 class C1 {C1(this.x) { } int x;}'''); | 2805 class C1 {C1(this.x) { } int x;}'''); |
2956 addTestSource(''' | 2806 addTestSource(''' |
2957 import "testA.dart"; | 2807 import "testA.dart"; |
2958 int T2; | 2808 int T2; |
2959 F2() { } | 2809 F2() { } |
2960 typedef D2(); | 2810 typedef D2(); |
2961 class C2 {/* */ ^ zoo(z) { } String name; }'''); | 2811 class C2 {/* */ ^ zoo(z) { } String name; }'''); |
2962 await computeSuggestions(); | 2812 await computeSuggestions(); |
2963 expect(replacementOffset, completionOffset); | 2813 expect(replacementOffset, completionOffset); |
2964 expect(replacementLength, 0); | 2814 expect(replacementLength, 0); |
2965 assertNotSuggested('Object'); | 2815 assertNotSuggested('Object'); |
2966 assertNotSuggested('T1'); | 2816 assertNotSuggested('T1'); |
2967 assertNotSuggested('F1'); | 2817 assertNotSuggested('F1'); |
2968 assertNotSuggested('D1'); | 2818 assertNotSuggested('D1'); |
2969 assertNotSuggested('C1'); | 2819 assertNotSuggested('C1'); |
2970 assertNotSuggested('T2'); | 2820 assertNotSuggested('T2'); |
2971 assertNotSuggested('F2'); | 2821 assertNotSuggested('F2'); |
2972 assertNotSuggested('D2'); | 2822 assertNotSuggested('D2'); |
2973 assertNotSuggested('C2'); | 2823 assertNotSuggested('C2'); |
2974 assertNotSuggested('name'); | 2824 assertNotSuggested('name'); |
2975 } | 2825 } |
2976 | 2826 |
2977 test_MethodDeclaration_returnType_afterComment2() async { | 2827 test_MethodDeclaration_returnType_afterComment2() async { |
2978 // MethodDeclaration ClassDeclaration CompilationUnit | 2828 // MethodDeclaration ClassDeclaration CompilationUnit |
2979 addSource( | 2829 addSource('/testA.dart', ''' |
2980 '/testA.dart', | |
2981 ''' | |
2982 int T1; | 2830 int T1; |
2983 F1() { } | 2831 F1() { } |
2984 typedef D1(); | 2832 typedef D1(); |
2985 class C1 {C1(this.x) { } int x;}'''); | 2833 class C1 {C1(this.x) { } int x;}'''); |
2986 addTestSource(''' | 2834 addTestSource(''' |
2987 import "testA.dart"; | 2835 import "testA.dart"; |
2988 int T2; | 2836 int T2; |
2989 F2() { } | 2837 F2() { } |
2990 typedef D2(); | 2838 typedef D2(); |
2991 class C2 {/** */ ^ zoo(z) { } String name; }'''); | 2839 class C2 {/** */ ^ zoo(z) { } String name; }'''); |
2992 await computeSuggestions(); | 2840 await computeSuggestions(); |
2993 expect(replacementOffset, completionOffset); | 2841 expect(replacementOffset, completionOffset); |
2994 expect(replacementLength, 0); | 2842 expect(replacementLength, 0); |
2995 assertNotSuggested('Object'); | 2843 assertNotSuggested('Object'); |
2996 assertNotSuggested('T1'); | 2844 assertNotSuggested('T1'); |
2997 assertNotSuggested('F1'); | 2845 assertNotSuggested('F1'); |
2998 assertNotSuggested('D1'); | 2846 assertNotSuggested('D1'); |
2999 assertNotSuggested('C1'); | 2847 assertNotSuggested('C1'); |
3000 assertNotSuggested('T2'); | 2848 assertNotSuggested('T2'); |
3001 assertNotSuggested('F2'); | 2849 assertNotSuggested('F2'); |
3002 assertNotSuggested('D2'); | 2850 assertNotSuggested('D2'); |
3003 assertNotSuggested('C2'); | 2851 assertNotSuggested('C2'); |
3004 assertNotSuggested('name'); | 2852 assertNotSuggested('name'); |
3005 } | 2853 } |
3006 | 2854 |
3007 test_MethodDeclaration_returnType_afterComment3() async { | 2855 test_MethodDeclaration_returnType_afterComment3() async { |
3008 // MethodDeclaration ClassDeclaration CompilationUnit | 2856 // MethodDeclaration ClassDeclaration CompilationUnit |
3009 addSource( | 2857 addSource('/testA.dart', ''' |
3010 '/testA.dart', | |
3011 ''' | |
3012 int T1; | 2858 int T1; |
3013 F1() { } | 2859 F1() { } |
3014 typedef D1(); | 2860 typedef D1(); |
3015 class C1 {C1(this.x) { } int x;}'''); | 2861 class C1 {C1(this.x) { } int x;}'''); |
3016 addTestSource(''' | 2862 addTestSource(''' |
3017 import "testA.dart"; | 2863 import "testA.dart"; |
3018 int T2; | 2864 int T2; |
3019 F2() { } | 2865 F2() { } |
3020 typedef D2(); | 2866 typedef D2(); |
3021 class C2 { | 2867 class C2 { |
(...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3198 | 3044 |
3199 test_parameterName_excludeTypes() async { | 3045 test_parameterName_excludeTypes() async { |
3200 addTestSource('m(int ^) {}'); | 3046 addTestSource('m(int ^) {}'); |
3201 await computeSuggestions(); | 3047 await computeSuggestions(); |
3202 assertNotSuggested('int'); | 3048 assertNotSuggested('int'); |
3203 assertNotSuggested('bool'); | 3049 assertNotSuggested('bool'); |
3204 } | 3050 } |
3205 | 3051 |
3206 test_partFile_TypeName() async { | 3052 test_partFile_TypeName() async { |
3207 // SimpleIdentifier TypeName ConstructorName | 3053 // SimpleIdentifier TypeName ConstructorName |
3208 addSource( | 3054 addSource('/testB.dart', ''' |
3209 '/testB.dart', | |
3210 ''' | |
3211 lib B; | 3055 lib B; |
3212 int T1; | 3056 int T1; |
3213 F1() { } | 3057 F1() { } |
3214 class X {X.c(); X._d(); z() {}}'''); | 3058 class X {X.c(); X._d(); z() {}}'''); |
3215 addSource( | 3059 addSource('/testA.dart', ''' |
3216 '/testA.dart', | |
3217 ''' | |
3218 library libA; | 3060 library libA; |
3219 import "testB.dart"; | 3061 import "testB.dart"; |
3220 part "$testFile"; | 3062 part "$testFile"; |
3221 class A { } | 3063 class A { } |
3222 var m;'''); | 3064 var m;'''); |
3223 addTestSource(''' | 3065 addTestSource(''' |
3224 part of libA; | 3066 part of libA; |
3225 class B { factory B.bar(int x) => null; } | 3067 class B { factory B.bar(int x) => null; } |
3226 main() {new ^}'''); | 3068 main() {new ^}'''); |
3227 await computeSuggestions(); | 3069 await computeSuggestions(); |
3228 expect(replacementOffset, completionOffset); | 3070 expect(replacementOffset, completionOffset); |
3229 expect(replacementLength, 0); | 3071 expect(replacementLength, 0); |
3230 assertNotSuggested('B.bar'); | 3072 assertNotSuggested('B.bar'); |
3231 assertNotSuggested('Object'); | 3073 assertNotSuggested('Object'); |
3232 assertNotSuggested('X.c'); | 3074 assertNotSuggested('X.c'); |
3233 assertNotSuggested('X._d'); | 3075 assertNotSuggested('X._d'); |
3234 assertNotSuggested('A'); | 3076 assertNotSuggested('A'); |
3235 assertNotSuggested('F1'); | 3077 assertNotSuggested('F1'); |
3236 assertNotSuggested('T1'); | 3078 assertNotSuggested('T1'); |
3237 assertNotSuggested('_d'); | 3079 assertNotSuggested('_d'); |
3238 assertNotSuggested('z'); | 3080 assertNotSuggested('z'); |
3239 assertNotSuggested('m'); | 3081 assertNotSuggested('m'); |
3240 } | 3082 } |
3241 | 3083 |
3242 test_partFile_TypeName2() async { | 3084 test_partFile_TypeName2() async { |
3243 // SimpleIdentifier TypeName ConstructorName | 3085 // SimpleIdentifier TypeName ConstructorName |
3244 addSource( | 3086 addSource('/testB.dart', ''' |
3245 '/testB.dart', | |
3246 ''' | |
3247 lib B; | 3087 lib B; |
3248 int T1; | 3088 int T1; |
3249 F1() { } | 3089 F1() { } |
3250 class X {X.c(); X._d(); z() {}}'''); | 3090 class X {X.c(); X._d(); z() {}}'''); |
3251 addSource( | 3091 addSource('/testA.dart', ''' |
3252 '/testA.dart', | |
3253 ''' | |
3254 part of libA; | 3092 part of libA; |
3255 class B { }'''); | 3093 class B { }'''); |
3256 addTestSource(''' | 3094 addTestSource(''' |
3257 library libA; | 3095 library libA; |
3258 import "testB.dart"; | 3096 import "testB.dart"; |
3259 part "/testA.dart"; | 3097 part "/testA.dart"; |
3260 class A { A({String boo: 'hoo'}) { } } | 3098 class A { A({String boo: 'hoo'}) { } } |
3261 main() {new ^} | 3099 main() {new ^} |
3262 var m;'''); | 3100 var m;'''); |
3263 await computeSuggestions(); | 3101 await computeSuggestions(); |
3264 expect(replacementOffset, completionOffset); | 3102 expect(replacementOffset, completionOffset); |
3265 expect(replacementLength, 0); | 3103 expect(replacementLength, 0); |
3266 assertNotSuggested('A'); | 3104 assertNotSuggested('A'); |
3267 assertNotSuggested('Object'); | 3105 assertNotSuggested('Object'); |
3268 assertNotSuggested('X.c'); | 3106 assertNotSuggested('X.c'); |
3269 assertNotSuggested('X._d'); | 3107 assertNotSuggested('X._d'); |
3270 assertNotSuggested('B'); | 3108 assertNotSuggested('B'); |
3271 assertNotSuggested('F1'); | 3109 assertNotSuggested('F1'); |
3272 assertNotSuggested('T1'); | 3110 assertNotSuggested('T1'); |
3273 assertNotSuggested('_d'); | 3111 assertNotSuggested('_d'); |
3274 assertNotSuggested('z'); | 3112 assertNotSuggested('z'); |
3275 assertNotSuggested('m'); | 3113 assertNotSuggested('m'); |
3276 } | 3114 } |
3277 | 3115 |
3278 test_PrefixedIdentifier_class_const() async { | 3116 test_PrefixedIdentifier_class_const() async { |
3279 // SimpleIdentifier PrefixedIdentifier ExpressionStatement Block | 3117 // SimpleIdentifier PrefixedIdentifier ExpressionStatement Block |
3280 addSource( | 3118 addSource('/testB.dart', ''' |
3281 '/testB.dart', | |
3282 ''' | |
3283 lib B; | 3119 lib B; |
3284 class I { | 3120 class I { |
3285 static const scI = 'boo'; | 3121 static const scI = 'boo'; |
3286 X get f => new A(); | 3122 X get f => new A(); |
3287 get _g => new A();} | 3123 get _g => new A();} |
3288 class B implements I { | 3124 class B implements I { |
3289 static const int scB = 12; | 3125 static const int scB = 12; |
3290 var b; X _c; | 3126 var b; X _c; |
3291 X get d => new A();get _e => new A(); | 3127 X get d => new A();get _e => new A(); |
3292 set s1(I x) {} set _s2(I x) {} | 3128 set s1(I x) {} set _s2(I x) {} |
(...skipping 25 matching lines...) Expand all Loading... |
3318 assertNotSuggested('a'); | 3154 assertNotSuggested('a'); |
3319 assertNotSuggested('A'); | 3155 assertNotSuggested('A'); |
3320 assertNotSuggested('X'); | 3156 assertNotSuggested('X'); |
3321 assertNotSuggested('w'); | 3157 assertNotSuggested('w'); |
3322 assertNotSuggested('Object'); | 3158 assertNotSuggested('Object'); |
3323 assertNotSuggested('=='); | 3159 assertNotSuggested('=='); |
3324 } | 3160 } |
3325 | 3161 |
3326 test_PrefixedIdentifier_class_imported() async { | 3162 test_PrefixedIdentifier_class_imported() async { |
3327 // SimpleIdentifier PrefixedIdentifier ExpressionStatement | 3163 // SimpleIdentifier PrefixedIdentifier ExpressionStatement |
3328 addSource( | 3164 addSource('/testB.dart', ''' |
3329 '/testB.dart', | |
3330 ''' | |
3331 lib B; | 3165 lib B; |
3332 class I {X get f => new A();get _g => new A();} | 3166 class I {X get f => new A();get _g => new A();} |
3333 class A implements I { | 3167 class A implements I { |
3334 static const int sc = 12; | 3168 static const int sc = 12; |
3335 @deprecated var b; X _c; | 3169 @deprecated var b; X _c; |
3336 X get d => new A();get _e => new A(); | 3170 X get d => new A();get _e => new A(); |
3337 set s1(I x) {} set _s2(I x) {} | 3171 set s1(I x) {} set _s2(I x) {} |
3338 m(X x) {} I _n(X x) {}} | 3172 m(X x) {} I _n(X x) {}} |
3339 class X{}'''); | 3173 class X{}'''); |
3340 addTestSource(''' | 3174 addTestSource(''' |
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3396 | 3230 |
3397 test_PrefixedIdentifier_getter() async { | 3231 test_PrefixedIdentifier_getter() async { |
3398 // SimpleIdentifier PrefixedIdentifier ExpressionStatement | 3232 // SimpleIdentifier PrefixedIdentifier ExpressionStatement |
3399 addTestSource('String get g => "one"; f() {g.^}'); | 3233 addTestSource('String get g => "one"; f() {g.^}'); |
3400 await computeSuggestions(); | 3234 await computeSuggestions(); |
3401 assertSuggestGetter('length', 'int'); | 3235 assertSuggestGetter('length', 'int'); |
3402 } | 3236 } |
3403 | 3237 |
3404 test_PrefixedIdentifier_library() async { | 3238 test_PrefixedIdentifier_library() async { |
3405 // SimpleIdentifier PrefixedIdentifier ExpressionStatement | 3239 // SimpleIdentifier PrefixedIdentifier ExpressionStatement |
3406 addSource( | 3240 addSource('/testB.dart', ''' |
3407 '/testB.dart', | |
3408 ''' | |
3409 lib B; | 3241 lib B; |
3410 var T1; | 3242 var T1; |
3411 class X { } | 3243 class X { } |
3412 class Y { }'''); | 3244 class Y { }'''); |
3413 addTestSource(''' | 3245 addTestSource(''' |
3414 import "testB.dart" as b; | 3246 import "testB.dart" as b; |
3415 var T2; | 3247 var T2; |
3416 class A { } | 3248 class A { } |
3417 main() {b.^}'''); | 3249 main() {b.^}'''); |
3418 await computeSuggestions(); | 3250 await computeSuggestions(); |
3419 expect(replacementOffset, completionOffset); | 3251 expect(replacementOffset, completionOffset); |
3420 expect(replacementLength, 0); | 3252 expect(replacementLength, 0); |
3421 // Suggested by LibraryMemberContributor | 3253 // Suggested by LibraryMemberContributor |
3422 assertNotSuggested('X'); | 3254 assertNotSuggested('X'); |
3423 assertNotSuggested('Y'); | 3255 assertNotSuggested('Y'); |
3424 assertNotSuggested('T1'); | 3256 assertNotSuggested('T1'); |
3425 assertNotSuggested('T2'); | 3257 assertNotSuggested('T2'); |
3426 assertNotSuggested('Object'); | 3258 assertNotSuggested('Object'); |
3427 assertNotSuggested('b'); | 3259 assertNotSuggested('b'); |
3428 assertNotSuggested('A'); | 3260 assertNotSuggested('A'); |
3429 assertNotSuggested('=='); | 3261 assertNotSuggested('=='); |
3430 } | 3262 } |
3431 | 3263 |
3432 test_PrefixedIdentifier_library_typesOnly() async { | 3264 test_PrefixedIdentifier_library_typesOnly() async { |
3433 // SimpleIdentifier PrefixedIdentifier TypeName | 3265 // SimpleIdentifier PrefixedIdentifier TypeName |
3434 addSource( | 3266 addSource('/testB.dart', ''' |
3435 '/testB.dart', | |
3436 ''' | |
3437 lib B; | 3267 lib B; |
3438 var T1; | 3268 var T1; |
3439 class X { } | 3269 class X { } |
3440 class Y { }'''); | 3270 class Y { }'''); |
3441 addTestSource(''' | 3271 addTestSource(''' |
3442 import "testB.dart" as b; | 3272 import "testB.dart" as b; |
3443 var T2; | 3273 var T2; |
3444 class A { } | 3274 class A { } |
3445 foo(b.^ f) {}'''); | 3275 foo(b.^ f) {}'''); |
3446 await computeSuggestions(); | 3276 await computeSuggestions(); |
3447 expect(replacementOffset, completionOffset); | 3277 expect(replacementOffset, completionOffset); |
3448 expect(replacementLength, 0); | 3278 expect(replacementLength, 0); |
3449 // Suggested by LibraryMemberContributor | 3279 // Suggested by LibraryMemberContributor |
3450 assertNotSuggested('X'); | 3280 assertNotSuggested('X'); |
3451 assertNotSuggested('Y'); | 3281 assertNotSuggested('Y'); |
3452 assertNotSuggested('T1'); | 3282 assertNotSuggested('T1'); |
3453 assertNotSuggested('T2'); | 3283 assertNotSuggested('T2'); |
3454 assertNotSuggested('Object'); | 3284 assertNotSuggested('Object'); |
3455 assertNotSuggested('b'); | 3285 assertNotSuggested('b'); |
3456 assertNotSuggested('A'); | 3286 assertNotSuggested('A'); |
3457 assertNotSuggested('=='); | 3287 assertNotSuggested('=='); |
3458 } | 3288 } |
3459 | 3289 |
3460 test_PrefixedIdentifier_library_typesOnly2() async { | 3290 test_PrefixedIdentifier_library_typesOnly2() async { |
3461 // SimpleIdentifier PrefixedIdentifier TypeName | 3291 // SimpleIdentifier PrefixedIdentifier TypeName |
3462 addSource( | 3292 addSource('/testB.dart', ''' |
3463 '/testB.dart', | |
3464 ''' | |
3465 lib B; | 3293 lib B; |
3466 var T1; | 3294 var T1; |
3467 class X { } | 3295 class X { } |
3468 class Y { }'''); | 3296 class Y { }'''); |
3469 addTestSource(''' | 3297 addTestSource(''' |
3470 import "testB.dart" as b; | 3298 import "testB.dart" as b; |
3471 var T2; | 3299 var T2; |
3472 class A { } | 3300 class A { } |
3473 foo(b.^) {}'''); | 3301 foo(b.^) {}'''); |
3474 await computeSuggestions(); | 3302 await computeSuggestions(); |
3475 expect(replacementOffset, completionOffset); | 3303 expect(replacementOffset, completionOffset); |
3476 expect(replacementLength, 0); | 3304 expect(replacementLength, 0); |
3477 // Suggested by LibraryMemberContributor | 3305 // Suggested by LibraryMemberContributor |
3478 assertNotSuggested('X'); | 3306 assertNotSuggested('X'); |
3479 assertNotSuggested('Y'); | 3307 assertNotSuggested('Y'); |
3480 assertNotSuggested('T1'); | 3308 assertNotSuggested('T1'); |
3481 assertNotSuggested('T2'); | 3309 assertNotSuggested('T2'); |
3482 assertNotSuggested('Object'); | 3310 assertNotSuggested('Object'); |
3483 assertNotSuggested('b'); | 3311 assertNotSuggested('b'); |
3484 assertNotSuggested('A'); | 3312 assertNotSuggested('A'); |
3485 assertNotSuggested('=='); | 3313 assertNotSuggested('=='); |
3486 } | 3314 } |
3487 | 3315 |
3488 test_PrefixedIdentifier_parameter() async { | 3316 test_PrefixedIdentifier_parameter() async { |
3489 // SimpleIdentifier PrefixedIdentifier ExpressionStatement | 3317 // SimpleIdentifier PrefixedIdentifier ExpressionStatement |
3490 addSource( | 3318 addSource('/testB.dart', ''' |
3491 '/testB.dart', | |
3492 ''' | |
3493 lib B; | 3319 lib B; |
3494 class _W {M y; var _z;} | 3320 class _W {M y; var _z;} |
3495 class X extends _W {} | 3321 class X extends _W {} |
3496 class M{}'''); | 3322 class M{}'''); |
3497 addTestSource(''' | 3323 addTestSource(''' |
3498 import "testB.dart"; | 3324 import "testB.dart"; |
3499 foo(X x) {x.^}'''); | 3325 foo(X x) {x.^}'''); |
3500 await computeSuggestions(); | 3326 await computeSuggestions(); |
3501 expect(replacementOffset, completionOffset); | 3327 expect(replacementOffset, completionOffset); |
3502 expect(replacementLength, 0); | 3328 expect(replacementLength, 0); |
3503 assertSuggestField('y', 'M'); | 3329 assertSuggestField('y', 'M'); |
3504 assertNotSuggested('_z'); | 3330 assertNotSuggested('_z'); |
3505 assertNotSuggested('=='); | 3331 assertNotSuggested('=='); |
3506 } | 3332 } |
3507 | 3333 |
3508 test_PrefixedIdentifier_prefix() async { | 3334 test_PrefixedIdentifier_prefix() async { |
3509 // SimpleIdentifier PrefixedIdentifier ExpressionStatement | 3335 // SimpleIdentifier PrefixedIdentifier ExpressionStatement |
3510 addSource( | 3336 addSource('/testA.dart', ''' |
3511 '/testA.dart', | |
3512 ''' | |
3513 class A {static int bar = 10;} | 3337 class A {static int bar = 10;} |
3514 _B() {}'''); | 3338 _B() {}'''); |
3515 addTestSource(''' | 3339 addTestSource(''' |
3516 import "testA.dart"; | 3340 import "testA.dart"; |
3517 class X {foo(){A^.bar}}'''); | 3341 class X {foo(){A^.bar}}'''); |
3518 await computeSuggestions(); | 3342 await computeSuggestions(); |
3519 expect(replacementOffset, completionOffset - 1); | 3343 expect(replacementOffset, completionOffset - 1); |
3520 expect(replacementLength, 1); | 3344 expect(replacementLength, 1); |
3521 assertNotSuggested('A'); | 3345 assertNotSuggested('A'); |
3522 assertNotSuggested('X'); | 3346 assertNotSuggested('X'); |
(...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4071 test_TopLevelVariableDeclaration_untyped_name() async { | 3895 test_TopLevelVariableDeclaration_untyped_name() async { |
4072 // SimpleIdentifier VariableDeclaration VariableDeclarationList | 3896 // SimpleIdentifier VariableDeclaration VariableDeclarationList |
4073 // TopLevelVariableDeclaration | 3897 // TopLevelVariableDeclaration |
4074 addTestSource('class A {} var ^'); | 3898 addTestSource('class A {} var ^'); |
4075 await computeSuggestions(); | 3899 await computeSuggestions(); |
4076 assertNoSuggestions(); | 3900 assertNoSuggestions(); |
4077 } | 3901 } |
4078 | 3902 |
4079 test_TypeArgumentList() async { | 3903 test_TypeArgumentList() async { |
4080 // SimpleIdentifier BinaryExpression ExpressionStatement | 3904 // SimpleIdentifier BinaryExpression ExpressionStatement |
4081 addSource( | 3905 addSource('/testA.dart', ''' |
4082 '/testA.dart', | |
4083 ''' | |
4084 class C1 {int x;} | 3906 class C1 {int x;} |
4085 F1() => 0; | 3907 F1() => 0; |
4086 typedef String T1(int blat);'''); | 3908 typedef String T1(int blat);'''); |
4087 addTestSource(''' | 3909 addTestSource(''' |
4088 import "testA.dart";' | 3910 import "testA.dart";' |
4089 class C2 {int x;} | 3911 class C2 {int x;} |
4090 F2() => 0; | 3912 F2() => 0; |
4091 typedef int T2(int blat); | 3913 typedef int T2(int blat); |
4092 class C<E> {} | 3914 class C<E> {} |
4093 main() { C<^> c; }'''); | 3915 main() { C<^> c; }'''); |
4094 await computeSuggestions(); | 3916 await computeSuggestions(); |
4095 expect(replacementOffset, completionOffset); | 3917 expect(replacementOffset, completionOffset); |
4096 expect(replacementLength, 0); | 3918 expect(replacementLength, 0); |
4097 assertNotSuggested('Object'); | 3919 assertNotSuggested('Object'); |
4098 assertNotSuggested('C1'); | 3920 assertNotSuggested('C1'); |
4099 assertNotSuggested('T1'); | 3921 assertNotSuggested('T1'); |
4100 assertNotSuggested('C2'); | 3922 assertNotSuggested('C2'); |
4101 assertNotSuggested('T2'); | 3923 assertNotSuggested('T2'); |
4102 assertNotSuggested('F1'); | 3924 assertNotSuggested('F1'); |
4103 assertNotSuggested('F2'); | 3925 assertNotSuggested('F2'); |
4104 } | 3926 } |
4105 | 3927 |
4106 test_TypeArgumentList2() async { | 3928 test_TypeArgumentList2() async { |
4107 // TypeName TypeArgumentList TypeName | 3929 // TypeName TypeArgumentList TypeName |
4108 addSource( | 3930 addSource('/testA.dart', ''' |
4109 '/testA.dart', | |
4110 ''' | |
4111 class C1 {int x;} | 3931 class C1 {int x;} |
4112 F1() => 0; | 3932 F1() => 0; |
4113 typedef String T1(int blat);'''); | 3933 typedef String T1(int blat);'''); |
4114 addTestSource(''' | 3934 addTestSource(''' |
4115 import "testA.dart";' | 3935 import "testA.dart";' |
4116 class C2 {int x;} | 3936 class C2 {int x;} |
4117 F2() => 0; | 3937 F2() => 0; |
4118 typedef int T2(int blat); | 3938 typedef int T2(int blat); |
4119 class C<E> {} | 3939 class C<E> {} |
4120 main() { C<C^> c; }'''); | 3940 main() { C<C^> c; }'''); |
4121 await computeSuggestions(); | 3941 await computeSuggestions(); |
4122 expect(replacementOffset, completionOffset - 1); | 3942 expect(replacementOffset, completionOffset - 1); |
4123 expect(replacementLength, 1); | 3943 expect(replacementLength, 1); |
4124 assertNotSuggested('C1'); | 3944 assertNotSuggested('C1'); |
4125 assertNotSuggested('C2'); | 3945 assertNotSuggested('C2'); |
4126 } | 3946 } |
4127 | 3947 |
4128 test_VariableDeclaration_name() async { | 3948 test_VariableDeclaration_name() async { |
4129 // SimpleIdentifier VariableDeclaration VariableDeclarationList | 3949 // SimpleIdentifier VariableDeclaration VariableDeclarationList |
4130 // VariableDeclarationStatement Block | 3950 // VariableDeclarationStatement Block |
4131 addSource( | 3951 addSource('/testB.dart', ''' |
4132 '/testB.dart', | |
4133 ''' | |
4134 lib B; | 3952 lib B; |
4135 foo() { } | 3953 foo() { } |
4136 class _B { } | 3954 class _B { } |
4137 class X {X.c(); X._d(); z() {}}'''); | 3955 class X {X.c(); X._d(); z() {}}'''); |
4138 addTestSource(''' | 3956 addTestSource(''' |
4139 import "testB.dart"; | 3957 import "testB.dart"; |
4140 class Y {Y.c(); Y._d(); z() {}} | 3958 class Y {Y.c(); Y._d(); z() {}} |
4141 main() {var ^}'''); | 3959 main() {var ^}'''); |
4142 await computeSuggestions(); | 3960 await computeSuggestions(); |
4143 assertNoSuggestions(); | 3961 assertNoSuggestions(); |
4144 } | 3962 } |
4145 | 3963 |
4146 test_VariableDeclarationList_final() async { | 3964 test_VariableDeclarationList_final() async { |
4147 // VariableDeclarationList VariableDeclarationStatement Block | 3965 // VariableDeclarationList VariableDeclarationStatement Block |
4148 addTestSource('main() {final ^} class C { }'); | 3966 addTestSource('main() {final ^} class C { }'); |
4149 await computeSuggestions(); | 3967 await computeSuggestions(); |
4150 assertNotSuggested('Object'); | 3968 assertNotSuggested('Object'); |
4151 assertNotSuggested('C'); | 3969 assertNotSuggested('C'); |
4152 assertNotSuggested('=='); | 3970 assertNotSuggested('=='); |
4153 } | 3971 } |
4154 | 3972 |
4155 test_VariableDeclarationStatement_RHS() async { | 3973 test_VariableDeclarationStatement_RHS() async { |
4156 // SimpleIdentifier VariableDeclaration VariableDeclarationList | 3974 // SimpleIdentifier VariableDeclaration VariableDeclarationList |
4157 // VariableDeclarationStatement | 3975 // VariableDeclarationStatement |
4158 addSource( | 3976 addSource('/testB.dart', ''' |
4159 '/testB.dart', | |
4160 ''' | |
4161 lib B; | 3977 lib B; |
4162 foo() { } | 3978 foo() { } |
4163 class _B { } | 3979 class _B { } |
4164 class X {X.c(); X._d(); z() {}}'''); | 3980 class X {X.c(); X._d(); z() {}}'''); |
4165 addTestSource(''' | 3981 addTestSource(''' |
4166 import "testB.dart"; | 3982 import "testB.dart"; |
4167 class Y {Y.c(); Y._d(); z() {}} | 3983 class Y {Y.c(); Y._d(); z() {}} |
4168 class C {bar(){var f; {var x;} var e = ^}}'''); | 3984 class C {bar(){var f; {var x;} var e = ^}}'''); |
4169 await computeSuggestions(); | 3985 await computeSuggestions(); |
4170 expect(replacementOffset, completionOffset); | 3986 expect(replacementOffset, completionOffset); |
4171 expect(replacementLength, 0); | 3987 expect(replacementLength, 0); |
4172 assertNotSuggested('X'); | 3988 assertNotSuggested('X'); |
4173 assertNotSuggested('_B'); | 3989 assertNotSuggested('_B'); |
4174 assertNotSuggested('Y'); | 3990 assertNotSuggested('Y'); |
4175 assertNotSuggested('C'); | 3991 assertNotSuggested('C'); |
4176 assertNotSuggested('f'); | 3992 assertNotSuggested('f'); |
4177 assertNotSuggested('x'); | 3993 assertNotSuggested('x'); |
4178 assertNotSuggested('e'); | 3994 assertNotSuggested('e'); |
4179 } | 3995 } |
4180 | 3996 |
4181 test_VariableDeclarationStatement_RHS_missing_semicolon() async { | 3997 test_VariableDeclarationStatement_RHS_missing_semicolon() async { |
4182 // VariableDeclaration VariableDeclarationList | 3998 // VariableDeclaration VariableDeclarationList |
4183 // VariableDeclarationStatement | 3999 // VariableDeclarationStatement |
4184 addSource( | 4000 addSource('/testB.dart', ''' |
4185 '/testB.dart', | |
4186 ''' | |
4187 lib B; | 4001 lib B; |
4188 foo1() { } | 4002 foo1() { } |
4189 void bar1() { } | 4003 void bar1() { } |
4190 class _B { } | 4004 class _B { } |
4191 class X {X.c(); X._d(); z() {}}'''); | 4005 class X {X.c(); X._d(); z() {}}'''); |
4192 addTestSource(''' | 4006 addTestSource(''' |
4193 import "testB.dart"; | 4007 import "testB.dart"; |
4194 foo2() { } | 4008 foo2() { } |
4195 void bar2() { } | 4009 void bar2() { } |
4196 class Y {Y.c(); Y._d(); z() {}} | 4010 class Y {Y.c(); Y._d(); z() {}} |
4197 class C {bar(){var f; {var x;} var e = ^ var g}}'''); | 4011 class C {bar(){var f; {var x;} var e = ^ var g}}'''); |
4198 await computeSuggestions(); | 4012 await computeSuggestions(); |
4199 expect(replacementOffset, completionOffset); | 4013 expect(replacementOffset, completionOffset); |
4200 expect(replacementLength, 0); | 4014 expect(replacementLength, 0); |
4201 assertNotSuggested('X'); | 4015 assertNotSuggested('X'); |
4202 assertNotSuggested('foo1'); | 4016 assertNotSuggested('foo1'); |
4203 assertNotSuggested('bar1'); | 4017 assertNotSuggested('bar1'); |
4204 assertNotSuggested('foo2'); | 4018 assertNotSuggested('foo2'); |
4205 assertNotSuggested('bar2'); | 4019 assertNotSuggested('bar2'); |
4206 assertNotSuggested('_B'); | 4020 assertNotSuggested('_B'); |
4207 assertNotSuggested('Y'); | 4021 assertNotSuggested('Y'); |
4208 assertNotSuggested('C'); | 4022 assertNotSuggested('C'); |
4209 assertNotSuggested('f'); | 4023 assertNotSuggested('f'); |
4210 assertNotSuggested('x'); | 4024 assertNotSuggested('x'); |
4211 assertNotSuggested('e'); | 4025 assertNotSuggested('e'); |
4212 } | 4026 } |
4213 } | 4027 } |
OLD | NEW |