Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Side by Side Diff: pkg/analyzer_plugin/test/utilities/completion/type_member_contributor_test.dart

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

Powered by Google App Engine
This is Rietveld 408576698