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

Side by Side Diff: pkg/analysis_server/test/services/completion/completion_test_util.dart

Issue 1507633002: extract named constructor suggestions from prefixed element contributor (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: merge Created 5 years 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) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library test.services.completion.util; 5 library test.services.completion.util;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/plugin/protocol/protocol.dart' as protocol 9 import 'package:analysis_server/plugin/protocol/protocol.dart' as protocol
10 show Element, ElementKind; 10 show Element, ElementKind;
(...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 expect(element.name, equals(name)); 349 expect(element.name, equals(name));
350 String param = element.parameters; 350 String param = element.parameters;
351 expect(param, isNotNull); 351 expect(param, isNotNull);
352 expect(param[0], equals('(')); 352 expect(param[0], equals('('));
353 expect(param[param.length - 1], equals(')')); 353 expect(param[param.length - 1], equals(')'));
354 expect(element.returnType, returnType != null ? returnType : 'dynamic'); 354 expect(element.returnType, returnType != null ? returnType : 'dynamic');
355 assertHasParameterInfo(cs); 355 assertHasParameterInfo(cs);
356 return cs; 356 return cs;
357 } 357 }
358 358
359 CompletionSuggestion assertSuggestNamedConstructor(
360 String name, String returnType,
361 [int relevance = DART_RELEVANCE_DEFAULT,
362 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
363 if (contributor is PrefixedElementContributor) {
364 CompletionSuggestion cs =
365 assertSuggest(name, csKind: kind, relevance: relevance);
366 protocol.Element element = cs.element;
367 expect(element, isNotNull);
368 expect(element.kind, equals(protocol.ElementKind.CONSTRUCTOR));
369 expect(element.name, equals(name));
370 String param = element.parameters;
371 expect(param, isNotNull);
372 expect(param[0], equals('('));
373 expect(param[param.length - 1], equals(')'));
374 expect(element.returnType, equals(returnType));
375 assertHasParameterInfo(cs);
376 return cs;
377 } else {
378 return assertNotSuggested(name);
379 }
380 }
381
382 CompletionSuggestion assertSuggestParameter(String name, String returnType, 359 CompletionSuggestion assertSuggestParameter(String name, String returnType,
383 {int relevance: DART_RELEVANCE_PARAMETER}) { 360 {int relevance: DART_RELEVANCE_PARAMETER}) {
384 return assertNotSuggested(name); 361 return assertNotSuggested(name);
385 } 362 }
386 363
387 CompletionSuggestion assertSuggestSetter(String name, 364 CompletionSuggestion assertSuggestSetter(String name,
388 [int relevance = DART_RELEVANCE_DEFAULT, 365 [int relevance = DART_RELEVANCE_DEFAULT,
389 String importUri, 366 String importUri,
390 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) { 367 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
391 CompletionSuggestion cs = assertSuggest(name, 368 CompletionSuggestion cs = assertSuggest(name,
(...skipping 2053 matching lines...) Expand 10 before | Expand all | Expand 10 after
2445 F1() { } 2422 F1() { }
2446 class X {X.c(); X._d(); z() {}}'''); 2423 class X {X.c(); X._d(); z() {}}''');
2447 addTestSource(''' 2424 addTestSource('''
2448 import "/testB.dart"; 2425 import "/testB.dart";
2449 var m; 2426 var m;
2450 main() {new X.^}'''); 2427 main() {new X.^}''');
2451 computeFast(); 2428 computeFast();
2452 return computeFull((bool result) { 2429 return computeFull((bool result) {
2453 expect(request.replacementOffset, completionOffset); 2430 expect(request.replacementOffset, completionOffset);
2454 expect(request.replacementLength, 0); 2431 expect(request.replacementLength, 0);
2455 assertSuggestNamedConstructor('c', 'X'); 2432 // Suggested by NamedConstructorContributor
2433 assertNotSuggested('c');
2456 assertNotSuggested('F1'); 2434 assertNotSuggested('F1');
2457 assertNotSuggested('T1'); 2435 assertNotSuggested('T1');
2458 assertNotSuggested('_d'); 2436 assertNotSuggested('_d');
2459 assertNotSuggested('z'); 2437 assertNotSuggested('z');
2460 assertNotSuggested('m'); 2438 assertNotSuggested('m');
2461 }); 2439 });
2462 } 2440 }
2463 2441
2464 test_ConstructorName_importedFactory() { 2442 test_ConstructorName_importedFactory() {
2465 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName 2443 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName
2466 // InstanceCreationExpression 2444 // InstanceCreationExpression
2467 addSource( 2445 addSource(
2468 '/testB.dart', 2446 '/testB.dart',
2469 ''' 2447 '''
2470 lib B; 2448 lib B;
2471 int T1; 2449 int T1;
2472 F1() { } 2450 F1() { }
2473 class X {factory X.c(); factory X._d(); z() {}}'''); 2451 class X {factory X.c(); factory X._d(); z() {}}''');
2474 addTestSource(''' 2452 addTestSource('''
2475 import "/testB.dart"; 2453 import "/testB.dart";
2476 var m; 2454 var m;
2477 main() {new X.^}'''); 2455 main() {new X.^}''');
2478 computeFast(); 2456 computeFast();
2479 return computeFull((bool result) { 2457 return computeFull((bool result) {
2480 expect(request.replacementOffset, completionOffset); 2458 expect(request.replacementOffset, completionOffset);
2481 expect(request.replacementLength, 0); 2459 expect(request.replacementLength, 0);
2482 assertSuggestNamedConstructor('c', 'X'); 2460 // Suggested by NamedConstructorContributor
2461 assertNotSuggested('c');
2483 assertNotSuggested('F1'); 2462 assertNotSuggested('F1');
2484 assertNotSuggested('T1'); 2463 assertNotSuggested('T1');
2485 assertNotSuggested('_d'); 2464 assertNotSuggested('_d');
2486 assertNotSuggested('z'); 2465 assertNotSuggested('z');
2487 assertNotSuggested('m'); 2466 assertNotSuggested('m');
2488 }); 2467 });
2489 } 2468 }
2490 2469
2491 test_ConstructorName_importedFactory2() { 2470 test_ConstructorName_importedFactory2() {
2492 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName 2471 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName
2493 // InstanceCreationExpression 2472 // InstanceCreationExpression
2494 addTestSource(''' 2473 addTestSource('''
2495 main() {new String.fr^omCharCodes([]);}'''); 2474 main() {new String.fr^omCharCodes([]);}''');
2496 computeFast(); 2475 computeFast();
2497 return computeFull((bool result) { 2476 return computeFull((bool result) {
2498 expect(request.replacementOffset, completionOffset - 2); 2477 expect(request.replacementOffset, completionOffset - 2);
2499 expect(request.replacementLength, 13); 2478 expect(request.replacementLength, 13);
2500 assertSuggestNamedConstructor('fromCharCodes', 'String'); 2479 // Suggested by NamedConstructorContributor
2480 assertNotSuggested('fromCharCodes');
2501 assertNotSuggested('isEmpty'); 2481 assertNotSuggested('isEmpty');
2502 assertNotSuggested('isNotEmpty'); 2482 assertNotSuggested('isNotEmpty');
2503 assertNotSuggested('length'); 2483 assertNotSuggested('length');
2504 assertNotSuggested('Object'); 2484 assertNotSuggested('Object');
2505 assertNotSuggested('String'); 2485 assertNotSuggested('String');
2506 }); 2486 });
2507 } 2487 }
2508 2488
2509 test_ConstructorName_localClass() { 2489 test_ConstructorName_localClass() {
2510 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName 2490 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName
2511 // InstanceCreationExpression 2491 // InstanceCreationExpression
2512 addTestSource(''' 2492 addTestSource('''
2513 int T1; 2493 int T1;
2514 F1() { } 2494 F1() { }
2515 class X {X.c(); X._d(); z() {}} 2495 class X {X.c(); X._d(); z() {}}
2516 main() {new X.^}'''); 2496 main() {new X.^}''');
2517 computeFast(); 2497 computeFast();
2518 return computeFull((bool result) { 2498 return computeFull((bool result) {
2519 expect(request.replacementOffset, completionOffset); 2499 expect(request.replacementOffset, completionOffset);
2520 expect(request.replacementLength, 0); 2500 expect(request.replacementLength, 0);
2521 assertSuggestNamedConstructor('c', 'X'); 2501 // Suggested by NamedConstructorContributor
2522 assertSuggestNamedConstructor('_d', 'X'); 2502 assertNotSuggested('c');
2503 assertNotSuggested('_d');
2523 assertNotSuggested('F1'); 2504 assertNotSuggested('F1');
2524 assertNotSuggested('T1'); 2505 assertNotSuggested('T1');
2525 assertNotSuggested('z'); 2506 assertNotSuggested('z');
2526 assertNotSuggested('m'); 2507 assertNotSuggested('m');
2527 }); 2508 });
2528 } 2509 }
2529 2510
2530 test_ConstructorName_localFactory() { 2511 test_ConstructorName_localFactory() {
2531 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName 2512 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName
2532 // InstanceCreationExpression 2513 // InstanceCreationExpression
2533 addTestSource(''' 2514 addTestSource('''
2534 int T1; 2515 int T1;
2535 F1() { } 2516 F1() { }
2536 class X {factory X.c(); factory X._d(); z() {}} 2517 class X {factory X.c(); factory X._d(); z() {}}
2537 main() {new X.^}'''); 2518 main() {new X.^}''');
2538 computeFast(); 2519 computeFast();
2539 return computeFull((bool result) { 2520 return computeFull((bool result) {
2540 expect(request.replacementOffset, completionOffset); 2521 expect(request.replacementOffset, completionOffset);
2541 expect(request.replacementLength, 0); 2522 expect(request.replacementLength, 0);
2542 assertSuggestNamedConstructor('c', 'X'); 2523 // Suggested by NamedConstructorContributor
2543 assertSuggestNamedConstructor('_d', 'X'); 2524 assertNotSuggested('c');
2525 assertNotSuggested('_d');
2544 assertNotSuggested('F1'); 2526 assertNotSuggested('F1');
2545 assertNotSuggested('T1'); 2527 assertNotSuggested('T1');
2546 assertNotSuggested('z'); 2528 assertNotSuggested('z');
2547 assertNotSuggested('m'); 2529 assertNotSuggested('m');
2548 }); 2530 });
2549 } 2531 }
2550 2532
2551 test_DefaultFormalParameter_named_expression() { 2533 test_DefaultFormalParameter_named_expression() {
2552 // DefaultFormalParameter FormalParameterList MethodDeclaration 2534 // DefaultFormalParameter FormalParameterList MethodDeclaration
2553 addTestSource(''' 2535 addTestSource('''
(...skipping 2159 matching lines...) Expand 10 before | Expand all | Expand 10 after
4713 assertNotSuggested('bar2'); 4695 assertNotSuggested('bar2');
4714 assertNotSuggested('_B'); 4696 assertNotSuggested('_B');
4715 assertSuggestLocalClass('Y'); 4697 assertSuggestLocalClass('Y');
4716 assertSuggestLocalClass('C'); 4698 assertSuggestLocalClass('C');
4717 assertSuggestLocalVariable('f', null); 4699 assertSuggestLocalVariable('f', null);
4718 assertNotSuggested('x'); 4700 assertNotSuggested('x');
4719 assertNotSuggested('e'); 4701 assertNotSuggested('e');
4720 }); 4702 });
4721 } 4703 }
4722 } 4704 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698