| Index: pkg/analysis_server/test/services/completion/invocation_computer_test.dart
|
| diff --git a/pkg/analysis_server/test/services/completion/invocation_computer_test.dart b/pkg/analysis_server/test/services/completion/invocation_computer_test.dart
|
| index 6afda09d3c4e26932b533dcf05d397098197f5d7..0eb91a53e9c67f8eac3022986155b0b1885b4bbf 100644
|
| --- a/pkg/analysis_server/test/services/completion/invocation_computer_test.dart
|
| +++ b/pkg/analysis_server/test/services/completion/invocation_computer_test.dart
|
| @@ -5,10 +5,11 @@
|
| library test.services.completion.invocation;
|
|
|
|
|
| +import 'package:analysis_server/src/protocol.dart';
|
| import 'package:analysis_server/src/services/completion/invocation_computer.dart';
|
| -import '../../reflective_tests.dart';
|
| import 'package:unittest/unittest.dart';
|
|
|
| +import '../../reflective_tests.dart';
|
| import 'completion_test_util.dart';
|
|
|
| main() {
|
| @@ -25,45 +26,52 @@ class InvocationComputerTest extends AbstractCompletionTest {
|
| computer = new InvocationComputer();
|
| }
|
|
|
| - test_field() {
|
| - addTestSource('class A {var b; X _c;} class X{} main() {A a; a.^}');
|
| + test_PrefixedIdentifier_field() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addTestSource('''
|
| + class A {var b; X _c;}
|
| + class X{}
|
| + main() {A a; a.^}''');
|
| return computeFull().then((_) {
|
| assertSuggestGetter('b', null);
|
| assertSuggestGetter('_c', 'X');
|
| });
|
| }
|
|
|
| - test_field_imported() {
|
| - addSource('/testB.dart', 'lib B; class X {M y; var _z;} class M{}');
|
| - addTestSource('import "/testB.dart"; main() {X x; x.^}');
|
| - return computeFull().then((_) {
|
| - assertSuggestGetter('y', 'M');
|
| - assertNotSuggested('_z');
|
| - });
|
| - }
|
| -
|
| - test_field_superclass() {
|
| - addTestSource(
|
| - 'class A {X b; var _c;} class X{} class B extends A {} main() {B b; b.^}');
|
| + test_PrefixedIdentifier_field_imported() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addSource('/testB.dart', '''
|
| + lib B;
|
| + class X{}
|
| + class A {var b; X _c;}''');
|
| + addTestSource('''
|
| + import "/testB.dart";
|
| + main() {A a; a.^}''');
|
| return computeFull().then((_) {
|
| - assertSuggestGetter('b', 'X');
|
| - assertSuggestGetter('_c', null);
|
| + assertSuggestGetter('b', null);
|
| + assertNotSuggested('_c');
|
| });
|
| }
|
|
|
| - test_getter() {
|
| - addTestSource(
|
| - 'class A {X get b => new A();get _c => new A();} class X{} main() {A a; a.^}');
|
| + // TODO (danrubel) implement
|
| + test_PrefixedIdentifier_getter() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addTestSource('''
|
| + class A {X get b => new A();get _c => new A();}
|
| + class X{}
|
| + main() {A a; a.^}''');
|
| return computeFull().then((_) {
|
| assertSuggestGetter('b', 'X');
|
| assertSuggestGetter('_c', null);
|
| });
|
| }
|
|
|
| - test_getter_imported() {
|
| - addSource(
|
| - '/testB.dart',
|
| - 'lib B; class S{} class X {S get y => new X(); X get _z => new X();}');
|
| + test_PrefixedIdentifier_getter_imported() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addSource('/testB.dart', '''
|
| + lib B;
|
| + class S{}
|
| + class X {S get y => new X(); X get _z => new X();}''');
|
| addTestSource('import "/testB.dart"; main() {X x; x.^}');
|
| return computeFull().then((_) {
|
| assertSuggestGetter('y', 'S');
|
| @@ -71,34 +79,51 @@ class InvocationComputerTest extends AbstractCompletionTest {
|
| });
|
| }
|
|
|
| - test_getter_interface() {
|
| - addTestSource('''class A {S get b => new A();A get _c => new A();}
|
| - class B implements A {S get b => new A();} class S{}
|
| - main() {B b; b.^}''');
|
| + test_PrefixedIdentifier_getter_interface() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addTestSource('''
|
| + class A {S get b => new A();A get _c => new A();}
|
| + class B implements A {S get b => new A();} class S{}
|
| + main() {B b; b.^}''');
|
| return computeFull().then((_) {
|
| assertSuggestGetter('b', 'S');
|
| assertSuggestGetter('_c', 'A');
|
| });
|
| }
|
|
|
| - test_library_prefix() {
|
| - addSource('/testB.dart', 'lib B; class X { }');
|
| - addTestSource('import "/testB.dart" as b; main() {b.^}');
|
| + test_PrefixedIdentifier_library() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addSource('/testB.dart', '''
|
| + lib B;
|
| + class X { }
|
| + class Y { }''');
|
| + addTestSource('''
|
| + import "/testB.dart" as b;
|
| + main() {b.^}''');
|
| return computeFull().then((_) {
|
| assertSuggestClass('X');
|
| + assertSuggestClass('Y');
|
| });
|
| }
|
|
|
| - test_method() {
|
| - addTestSource('class S{} class A {b(X x) {} S _c(X x) {}} main() {A a; a.^}');
|
| + test_PrefixedIdentifier_method() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addTestSource('''
|
| + class S{}
|
| + class A {b(X x) {} S _c(X x) {}}
|
| + main() {A a; a.^}''');
|
| return computeFull().then((_) {
|
| assertSuggestMethod('b', 'A', null);
|
| assertSuggestMethod('_c', 'A', 'S');
|
| });
|
| }
|
|
|
| - test_method_imported() {
|
| - addSource('/testB.dart', 'lib B; class X {T y(X x) {} _z(X x) {}} class T{}');
|
| + test_PrefixedIdentifier_method_imported() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addSource('/testB.dart', '''
|
| + lib B;
|
| + class X {T y(X x) {} _z(X x) {}}
|
| + class T{}''');
|
| addTestSource('import "/testB.dart"; main() {X x; x.^}');
|
| return computeFull().then((_) {
|
| assertSuggestMethod('y', 'X', 'T');
|
| @@ -106,9 +131,14 @@ class InvocationComputerTest extends AbstractCompletionTest {
|
| });
|
| }
|
|
|
| - test_method_imported_mixin() {
|
| - addSource('/testB.dart', 'lib B; class X {T y(X x) {} _z(X x) {}} class T{}');
|
| - addTestSource('''import "/testB.dart";
|
| + test_PrefixedIdentifier_method_imported_mixin() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addSource('/testB.dart', '''
|
| + lib B;
|
| + class X {T y(X x) {} _z(X x) {}}
|
| + class T{}''');
|
| + addTestSource('''
|
| + import "/testB.dart";
|
| class A extends Object with X {}
|
| main() {A a; a.^}''');
|
| return computeFull().then((_) {
|
| @@ -117,20 +147,60 @@ class InvocationComputerTest extends AbstractCompletionTest {
|
| });
|
| }
|
|
|
| - test_setter() {
|
| - addTestSource('class A {set b(X x) {} set _c(X x) {}} main() {A a; a.^}');
|
| + test_PrefixedIdentifier_parameter() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addSource('/testB.dart', '''
|
| + lib B;
|
| + class _W {M y; var _z;}
|
| + class X extends _W {}
|
| + class M{}''');
|
| + addTestSource('''
|
| + import "/testB.dart";
|
| + foo(X x) {x.^}''');
|
| + return computeFull().then((_) {
|
| + assertSuggestGetter('y', 'M');
|
| + assertNotSuggested('_z');
|
| + });
|
| + }
|
| +
|
| + test_PrefixedIdentifier_setter() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addTestSource('''
|
| + class A {set b(X x) {} set _c(X x) {}}
|
| + main() {A a; a.^}''');
|
| return computeFull().then((_) {
|
| assertSuggestSetter('b');
|
| assertSuggestSetter('_c');
|
| });
|
| }
|
|
|
| - test_setter_imported() {
|
| - addSource('/testB.dart', 'lib B; class X {set y(X x) {} set _z(X x) {}}');
|
| - addTestSource('import "/testB.dart"; main() {X x; x.^}');
|
| + test_PrefixedIdentifier_setter_imported() {
|
| + // SimpleIdentifier PrefixedIdentifier ExpressionStatement
|
| + addSource('/testB.dart', '''
|
| + lib B;
|
| + class X {set y(X x) {} set _z(X x) {}}''');
|
| + addTestSource('''
|
| + import "/testB.dart";
|
| + main() {X x; x.^}''');
|
| return computeFull().then((_) {
|
| assertSuggestSetter('y');
|
| assertNotSuggested('_z');
|
| });
|
| }
|
| +
|
| + xtest_ConstructorName() {
|
| + // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName
|
| + // InstanceCreationExpression
|
| + addSource('/testB.dart', '''
|
| + lib B;
|
| + class X {X.c(); X._d(); z() {}}''');
|
| + addTestSource('''
|
| + import "/testB.dart";
|
| + main() {new X.^}''');
|
| + return computeFull().then((_) {
|
| + assertSuggest(CompletionSuggestionKind.CONSTRUCTOR, 'c');
|
| + assertNotSuggested('_d');
|
| + assertNotSuggested('z');
|
| + });
|
| + }
|
| }
|
|
|