OLD | NEW |
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/src/protocol.dart' as protocol show Element, | 9 import 'package:analysis_server/src/protocol.dart' as protocol show Element, |
10 ElementKind; | 10 ElementKind; |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 assertSuggest(CompletionSuggestionKind.CLASS, name, relevance); | 105 assertSuggest(CompletionSuggestionKind.CLASS, name, relevance); |
106 protocol.Element element = cs.element; | 106 protocol.Element element = cs.element; |
107 expect(element, isNotNull); | 107 expect(element, isNotNull); |
108 expect(element.kind, equals(protocol.ElementKind.CLASS)); | 108 expect(element.kind, equals(protocol.ElementKind.CLASS)); |
109 expect(element.name, equals(name)); | 109 expect(element.name, equals(name)); |
110 expect(element.parameters, isNull); | 110 expect(element.parameters, isNull); |
111 expect(element.returnType, isNull); | 111 expect(element.returnType, isNull); |
112 return cs; | 112 return cs; |
113 } | 113 } |
114 | 114 |
| 115 CompletionSuggestion assertSuggestClassTypeAlias(String name, |
| 116 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 117 CompletionSuggestion cs = |
| 118 assertSuggest(CompletionSuggestionKind.CLASS_ALIAS, name, relevance); |
| 119 protocol.Element element = cs.element; |
| 120 expect(element, isNotNull); |
| 121 expect(element.kind, equals(protocol.ElementKind.CLASS_TYPE_ALIAS)); |
| 122 expect(element.name, equals(name)); |
| 123 expect(element.parameters, isNull); |
| 124 expect(element.returnType, isNull); |
| 125 return cs; |
| 126 } |
| 127 |
115 CompletionSuggestion assertSuggestFunction(String name, String returnType, | 128 CompletionSuggestion assertSuggestFunction(String name, String returnType, |
116 bool isDeprecated, [CompletionRelevance relevance = | 129 bool isDeprecated, [CompletionRelevance relevance = |
117 CompletionRelevance.DEFAULT]) { | 130 CompletionRelevance.DEFAULT]) { |
118 CompletionSuggestion cs = assertSuggest( | 131 CompletionSuggestion cs = assertSuggest( |
119 CompletionSuggestionKind.FUNCTION, | 132 CompletionSuggestionKind.FUNCTION, |
120 name, | 133 name, |
121 relevance, | 134 relevance, |
122 isDeprecated); | 135 isDeprecated); |
123 expect(cs.returnType, equals(returnType)); | 136 expect(cs.returnType, equals(returnType)); |
124 protocol.Element element = cs.element; | 137 protocol.Element element = cs.element; |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
546 | 559 |
547 CompletionSuggestion assertSuggestLocalClass(String name, | 560 CompletionSuggestion assertSuggestLocalClass(String name, |
548 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { | 561 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
549 if (computer is LocalComputer) { | 562 if (computer is LocalComputer) { |
550 return assertSuggestClass(name, relevance); | 563 return assertSuggestClass(name, relevance); |
551 } else { | 564 } else { |
552 return assertNotSuggested(name); | 565 return assertNotSuggested(name); |
553 } | 566 } |
554 } | 567 } |
555 | 568 |
| 569 CompletionSuggestion assertSuggestLocalClassTypeAlias(String name, |
| 570 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { |
| 571 if (computer is LocalComputer) { |
| 572 return assertSuggestClassTypeAlias(name, relevance); |
| 573 } else { |
| 574 return assertNotSuggested(name); |
| 575 } |
| 576 } |
| 577 |
556 CompletionSuggestion assertSuggestLocalFunction(String name, | 578 CompletionSuggestion assertSuggestLocalFunction(String name, |
557 String returnType, [bool isDeprecated = false, CompletionRelevance relevan
ce = | 579 String returnType, [bool isDeprecated = false, CompletionRelevance relevan
ce = |
558 CompletionRelevance.DEFAULT]) { | 580 CompletionRelevance.DEFAULT]) { |
559 if (computer is LocalComputer) { | 581 if (computer is LocalComputer) { |
560 return assertSuggestFunction(name, returnType, isDeprecated, relevance); | 582 return assertSuggestFunction(name, returnType, isDeprecated, relevance); |
561 } else { | 583 } else { |
562 return assertNotSuggested(name); | 584 return assertNotSuggested(name); |
563 } | 585 } |
564 } | 586 } |
565 | 587 |
(...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
975 addSource('/testAB.dart', ''' | 997 addSource('/testAB.dart', ''' |
976 library libAB; | 998 library libAB; |
977 part '/partAB.dart'; | 999 part '/partAB.dart'; |
978 class A { } | 1000 class A { } |
979 class B { }'''); | 1001 class B { }'''); |
980 addSource('/partAB.dart', ''' | 1002 addSource('/partAB.dart', ''' |
981 part of libAB; | 1003 part of libAB; |
982 var T1; | 1004 var T1; |
983 PB F1() => new PB(); | 1005 PB F1() => new PB(); |
984 typedef PB2 F2(int blat); | 1006 typedef PB2 F2(int blat); |
| 1007 class Clz = Object with Object; |
985 class PB { }'''); | 1008 class PB { }'''); |
986 addSource('/testCD.dart', ''' | 1009 addSource('/testCD.dart', ''' |
987 class C { } | 1010 class C { } |
988 class D { }'''); | 1011 class D { }'''); |
989 addTestSource(''' | 1012 addTestSource(''' |
990 import "/testAB.dart" show ^; | 1013 import "/testAB.dart" show ^; |
991 import "/testCD.dart"; | 1014 import "/testCD.dart"; |
992 class X {}'''); | 1015 class X {}'''); |
993 computeFast(); | 1016 computeFast(); |
994 return computeFull(true).then((_) { | 1017 return computeFull(true).then((_) { |
995 assertSuggestImportedClass('A'); | 1018 assertSuggestImportedClass('A'); |
996 assertSuggestImportedClass('B'); | 1019 assertSuggestImportedClass('B'); |
997 assertSuggestImportedClass('PB'); | 1020 assertSuggestImportedClass('PB'); |
998 assertSuggestImportedTopLevelVar('T1', null); | 1021 assertSuggestImportedTopLevelVar('T1', null); |
999 assertSuggestImportedFunction('F1', 'PB'); | 1022 assertSuggestImportedFunction('F1', 'PB'); |
| 1023 assertSuggestImportedClass('Clz'); |
1000 assertSuggestImportedFunctionTypeAlias('F2', null); | 1024 assertSuggestImportedFunctionTypeAlias('F2', null); |
1001 assertNotSuggested('C'); | 1025 assertNotSuggested('C'); |
1002 assertNotSuggested('D'); | 1026 assertNotSuggested('D'); |
1003 assertNotSuggested('X'); | 1027 assertNotSuggested('X'); |
1004 assertNotSuggested('Object'); | 1028 assertNotSuggested('Object'); |
1005 }); | 1029 }); |
1006 } | 1030 } |
1007 | 1031 |
1008 test_ConstructorName_importedClass() { | 1032 test_ConstructorName_importedClass() { |
1009 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName | 1033 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1049 | 1073 |
1050 test_ExpressionStatement_identifier() { | 1074 test_ExpressionStatement_identifier() { |
1051 // SimpleIdentifier ExpressionStatement Block | 1075 // SimpleIdentifier ExpressionStatement Block |
1052 addSource('/testA.dart', ''' | 1076 addSource('/testA.dart', ''' |
1053 _B F1() { } | 1077 _B F1() { } |
1054 class A {int x;} | 1078 class A {int x;} |
1055 class _B { }'''); | 1079 class _B { }'''); |
1056 addTestSource(''' | 1080 addTestSource(''' |
1057 import "/testA.dart"; | 1081 import "/testA.dart"; |
1058 typedef int F2(int blat); | 1082 typedef int F2(int blat); |
| 1083 class Clz = Object with Object; |
1059 class C {foo(){O^} void bar() {}}'''); | 1084 class C {foo(){O^} void bar() {}}'''); |
1060 computeFast(); | 1085 computeFast(); |
1061 return computeFull(true).then((_) { | 1086 return computeFull(true).then((_) { |
1062 assertSuggestImportedClass('A'); | 1087 assertSuggestImportedClass('A'); |
1063 assertSuggestImportedFunction('F1', '_B', false); | 1088 assertSuggestImportedFunction('F1', '_B', false); |
1064 assertSuggestLocalClass('C'); | 1089 assertSuggestLocalClass('C'); |
1065 assertSuggestLocalMethod('foo', 'C', null); | 1090 assertSuggestLocalMethod('foo', 'C', null); |
1066 assertSuggestLocalMethod('bar', 'C', 'void'); | 1091 assertSuggestLocalMethod('bar', 'C', 'void'); |
1067 assertSuggestLocalFunctionTypeAlias('F2', 'int'); | 1092 assertSuggestLocalFunctionTypeAlias('F2', 'int'); |
| 1093 assertSuggestLocalClassTypeAlias('Clz'); |
1068 assertSuggestLocalClass('C'); | 1094 assertSuggestLocalClass('C'); |
1069 assertNotSuggested('x'); | 1095 assertNotSuggested('x'); |
1070 assertNotSuggested('_B'); | 1096 assertNotSuggested('_B'); |
1071 }); | 1097 }); |
1072 } | 1098 } |
1073 | 1099 |
1074 test_ExpressionStatement_name() { | 1100 test_ExpressionStatement_name() { |
1075 // ExpressionStatement Block BlockFunctionBody MethodDeclaration | 1101 // ExpressionStatement Block BlockFunctionBody MethodDeclaration |
1076 addSource('/testA.dart', ''' | 1102 addSource('/testA.dart', ''' |
1077 B T1; | 1103 B T1; |
(...skipping 691 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1769 assertNotSuggested('bar2'); | 1795 assertNotSuggested('bar2'); |
1770 assertNotSuggested('_B'); | 1796 assertNotSuggested('_B'); |
1771 assertSuggestLocalClass('Y'); | 1797 assertSuggestLocalClass('Y'); |
1772 assertSuggestLocalClass('C'); | 1798 assertSuggestLocalClass('C'); |
1773 assertSuggestLocalVariable('f', null); | 1799 assertSuggestLocalVariable('f', null); |
1774 assertNotSuggested('x'); | 1800 assertNotSuggested('x'); |
1775 assertNotSuggested('e'); | 1801 assertNotSuggested('e'); |
1776 }); | 1802 }); |
1777 } | 1803 } |
1778 } | 1804 } |
OLD | NEW |