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

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

Issue 684183002: Refactor CompletionSuggestionKind (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: merge Created 6 years, 1 month 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 | Annotate | Revision Log
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/src/protocol.dart' as protocol show Element, 9 import 'package:analysis_server/src/protocol.dart' as protocol show Element,
10 ElementKind; 10 ElementKind;
11 import 'package:analysis_server/src/protocol.dart' hide Element; 11 import 'package:analysis_server/src/protocol.dart' hide Element, ElementKind;
12 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart'; 12 import 'package:analysis_server/src/services/completion/dart_completion_manager. dart';
13 import 'package:analysis_server/src/services/completion/imported_computer.dart'; 13 import 'package:analysis_server/src/services/completion/imported_computer.dart';
14 import 'package:analysis_server/src/services/completion/invocation_computer.dart '; 14 import 'package:analysis_server/src/services/completion/invocation_computer.dart ';
15 import 'package:analysis_server/src/services/completion/local_computer.dart'; 15 import 'package:analysis_server/src/services/completion/local_computer.dart';
16 import 'package:analysis_server/src/services/index/index.dart'; 16 import 'package:analysis_server/src/services/index/index.dart';
17 import 'package:analysis_server/src/services/index/local_memory_index.dart'; 17 import 'package:analysis_server/src/services/index/local_memory_index.dart';
18 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ; 18 import 'package:analysis_server/src/services/search/search_engine_internal.dart' ;
19 import 'package:analyzer/src/generated/ast.dart'; 19 import 'package:analyzer/src/generated/ast.dart';
20 import 'package:analyzer/src/generated/element.dart'; 20 import 'package:analyzer/src/generated/element.dart';
21 import 'package:analyzer/src/generated/engine.dart'; 21 import 'package:analyzer/src/generated/engine.dart';
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
65 CompletionSuggestion suggestion = request.suggestions.firstWhere( 65 CompletionSuggestion suggestion = request.suggestions.firstWhere(
66 (cs) => cs.completion == completion, 66 (cs) => cs.completion == completion,
67 orElse: () => null); 67 orElse: () => null);
68 if (suggestion != null) { 68 if (suggestion != null) {
69 _failedCompletion( 69 _failedCompletion(
70 'did not expect completion: $completion\n $suggestion'); 70 'did not expect completion: $completion\n $suggestion');
71 } 71 }
72 return null; 72 return null;
73 } 73 }
74 74
75 CompletionSuggestion assertSuggest(CompletionSuggestionKind kind, 75 CompletionSuggestion assertSuggest(String completion,
76 String completion, [CompletionRelevance relevance = CompletionRelevance.DE FAULT, 76 {CompletionSuggestionKind csKind: CompletionSuggestionKind.INVOCATION,
77 bool isDeprecated = false, bool isPotential = false]) { 77 CompletionRelevance relevance: CompletionRelevance.DEFAULT,
78 protocol.ElementKind elemKind: null, bool isDeprecated: false, bool isPote ntial:
79 false}) {
78 CompletionSuggestion cs; 80 CompletionSuggestion cs;
79 request.suggestions.forEach((s) { 81 request.suggestions.forEach((s) {
80 if (s.completion == completion && s.kind == kind) { 82 if (s.completion == completion && s.kind == csKind) {
81 if (cs == null) { 83 protocol.Element element = s.element;
82 cs = s; 84 if (elemKind == null || (element != null && elemKind == element.kind)) {
83 } else { 85 if (cs == null) {
84 _failedCompletion( 86 cs = s;
85 'expected exactly one $completion', 87 } else {
86 request.suggestions.where((s) => s.completion == completion)); 88 _failedCompletion(
89 'expected exactly one $completion',
90 request.suggestions.where((s) => s.completion == completion));
91 }
87 } 92 }
88 } 93 }
89 }); 94 });
90 if (cs == null) { 95 if (cs == null) {
91 _failedCompletion('expected $completion $kind', request.suggestions); 96 _failedCompletion('expected $completion $csKind', request.suggestions);
92 } 97 }
93 expect(cs.kind, equals(kind)); 98 expect(cs.kind, equals(csKind));
94 expect(cs.relevance, equals(relevance)); 99 expect(cs.relevance, equals(relevance));
95 expect(cs.selectionOffset, equals(completion.length)); 100 expect(cs.selectionOffset, equals(completion.length));
96 expect(cs.selectionLength, equals(0)); 101 expect(cs.selectionLength, equals(0));
97 expect(cs.isDeprecated, equals(isDeprecated)); 102 expect(cs.isDeprecated, equals(isDeprecated));
98 expect(cs.isPotential, equals(isPotential)); 103 expect(cs.isPotential, equals(isPotential));
99 return cs; 104 return cs;
100 } 105 }
101 106
102 CompletionSuggestion assertSuggestClass(String name, 107 CompletionSuggestion assertSuggestClass(String name,
103 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { 108 [CompletionRelevance relevance = CompletionRelevance.DEFAULT,
109 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
104 CompletionSuggestion cs = 110 CompletionSuggestion cs =
105 assertSuggest(CompletionSuggestionKind.CLASS, name, relevance); 111 assertSuggest(name, csKind: kind, relevance: relevance);
106 protocol.Element element = cs.element; 112 protocol.Element element = cs.element;
107 expect(element, isNotNull); 113 expect(element, isNotNull);
108 expect(element.kind, equals(protocol.ElementKind.CLASS)); 114 expect(element.kind, equals(protocol.ElementKind.CLASS));
109 expect(element.name, equals(name)); 115 expect(element.name, equals(name));
110 expect(element.parameters, isNull); 116 expect(element.parameters, isNull);
111 expect(element.returnType, isNull); 117 expect(element.returnType, isNull);
112 return cs; 118 return cs;
113 } 119 }
114 120
115 CompletionSuggestion assertSuggestClassTypeAlias(String name, 121 CompletionSuggestion assertSuggestClassTypeAlias(String name,
116 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { 122 [CompletionRelevance relevance = CompletionRelevance.DEFAULT,
123 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
117 CompletionSuggestion cs = 124 CompletionSuggestion cs =
118 assertSuggest(CompletionSuggestionKind.CLASS_ALIAS, name, relevance); 125 assertSuggest(name, csKind: kind, relevance: relevance);
119 protocol.Element element = cs.element; 126 protocol.Element element = cs.element;
120 expect(element, isNotNull); 127 expect(element, isNotNull);
121 expect(element.kind, equals(protocol.ElementKind.CLASS_TYPE_ALIAS)); 128 expect(element.kind, equals(protocol.ElementKind.CLASS_TYPE_ALIAS));
122 expect(element.name, equals(name)); 129 expect(element.name, equals(name));
123 expect(element.parameters, isNull); 130 expect(element.parameters, isNull);
124 expect(element.returnType, isNull); 131 expect(element.returnType, isNull);
125 return cs; 132 return cs;
126 } 133 }
127 134
128 CompletionSuggestion assertSuggestFunction(String name, String returnType, 135 CompletionSuggestion assertSuggestFunction(String name, String returnType,
129 bool isDeprecated, [CompletionRelevance relevance = 136 bool isDeprecated, [CompletionRelevance relevance = CompletionRelevance.DE FAULT,
130 CompletionRelevance.DEFAULT]) { 137 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
131 CompletionSuggestion cs = assertSuggest( 138 CompletionSuggestion cs = assertSuggest(
132 CompletionSuggestionKind.FUNCTION,
133 name, 139 name,
134 relevance, 140 csKind: kind,
135 isDeprecated); 141 relevance: relevance,
142 isDeprecated: isDeprecated);
136 expect(cs.returnType, equals(returnType)); 143 expect(cs.returnType, equals(returnType));
137 protocol.Element element = cs.element; 144 protocol.Element element = cs.element;
138 expect(element, isNotNull); 145 expect(element, isNotNull);
139 expect(element.kind, equals(protocol.ElementKind.FUNCTION)); 146 expect(element.kind, equals(protocol.ElementKind.FUNCTION));
140 expect(element.name, equals(name)); 147 expect(element.name, equals(name));
141 expect(element.isDeprecated, equals(isDeprecated)); 148 expect(element.isDeprecated, equals(isDeprecated));
142 String param = element.parameters; 149 String param = element.parameters;
143 expect(param, isNotNull); 150 expect(param, isNotNull);
144 expect(param[0], equals('(')); 151 expect(param[0], equals('('));
145 expect(param[param.length - 1], equals(')')); 152 expect(param[param.length - 1], equals(')'));
146 expect( 153 expect(
147 element.returnType, 154 element.returnType,
148 equals(returnType != null ? returnType : 'dynamic')); 155 equals(returnType != null ? returnType : 'dynamic'));
149 return cs; 156 return cs;
150 } 157 }
151 158
152 CompletionSuggestion assertSuggestFunctionTypeAlias(String name, 159 CompletionSuggestion assertSuggestFunctionTypeAlias(String name,
153 String returnType, bool isDeprecated, [CompletionRelevance relevance = 160 String returnType, bool isDeprecated, [CompletionRelevance relevance =
154 CompletionRelevance.DEFAULT]) { 161 CompletionRelevance.DEFAULT, CompletionSuggestionKind kind =
162 CompletionSuggestionKind.INVOCATION]) {
155 CompletionSuggestion cs = assertSuggest( 163 CompletionSuggestion cs = assertSuggest(
156 CompletionSuggestionKind.FUNCTION_TYPE_ALIAS,
157 name, 164 name,
158 relevance, 165 csKind: kind,
159 isDeprecated); 166 relevance: relevance,
167 isDeprecated: isDeprecated);
160 expect(cs.returnType, equals(returnType)); 168 expect(cs.returnType, equals(returnType));
161 protocol.Element element = cs.element; 169 protocol.Element element = cs.element;
162 expect(element, isNotNull); 170 expect(element, isNotNull);
163 expect(element.kind, equals(protocol.ElementKind.FUNCTION_TYPE_ALIAS)); 171 expect(element.kind, equals(protocol.ElementKind.FUNCTION_TYPE_ALIAS));
164 expect(element.name, equals(name)); 172 expect(element.name, equals(name));
165 expect(element.isDeprecated, equals(isDeprecated)); 173 expect(element.isDeprecated, equals(isDeprecated));
166 // TODO (danrubel) Determine why params are null 174 // TODO (danrubel) Determine why params are null
167 // String param = element.parameters; 175 // String param = element.parameters;
168 // expect(param, isNotNull); 176 // expect(param, isNotNull);
169 // expect(param[0], equals('(')); 177 // expect(param[0], equals('('));
170 // expect(param[param.length - 1], equals(')')); 178 // expect(param[param.length - 1], equals(')'));
171 // TODO (danrubel) Determine why return type is null 179 // TODO (danrubel) Determine why return type is null
172 // expect( 180 // expect(
173 // element.returnType, 181 // element.returnType,
174 // equals(returnType != null ? returnType : 'dynamic')); 182 // equals(returnType != null ? returnType : 'dynamic'));
175 return cs; 183 return cs;
176 } 184 }
177 185
178 CompletionSuggestion assertSuggestGetter(String name, String returnType, 186 CompletionSuggestion assertSuggestGetter(String name, String returnType,
179 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { 187 [CompletionRelevance relevance = CompletionRelevance.DEFAULT,
180 CompletionSuggestion cs = 188 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
181 assertSuggest(CompletionSuggestionKind.GETTER, name, relevance); 189 CompletionSuggestion cs = assertSuggest(
190 name,
191 csKind: kind,
192 relevance: relevance,
193 elemKind: protocol.ElementKind.GETTER);
182 expect(cs.returnType, equals(returnType)); 194 expect(cs.returnType, equals(returnType));
183 protocol.Element element = cs.element; 195 protocol.Element element = cs.element;
184 expect(element, isNotNull); 196 expect(element, isNotNull);
185 expect(element.kind, equals(protocol.ElementKind.GETTER)); 197 expect(element.kind, equals(protocol.ElementKind.GETTER));
186 expect(element.name, equals(name)); 198 expect(element.name, equals(name));
187 //TODO (danrubel) getter should have parameters 199 //TODO (danrubel) getter should have parameters
188 // but not used in code completion 200 // but not used in code completion
189 //expect(element.parameters, '()'); 201 //expect(element.parameters, '()');
190 expect( 202 expect(
191 element.returnType, 203 element.returnType,
192 equals(returnType != null ? returnType : 'dynamic')); 204 equals(returnType != null ? returnType : 'dynamic'));
193 return cs; 205 return cs;
194 } 206 }
195 207
196 CompletionSuggestion assertSuggestLibraryPrefix(String prefix, 208 CompletionSuggestion assertSuggestLibraryPrefix(String prefix,
197 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { 209 [CompletionRelevance relevance = CompletionRelevance.DEFAULT,
210 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
198 // Library prefix should only be suggested by ImportedComputer 211 // Library prefix should only be suggested by ImportedComputer
199 if (computer is ImportedComputer) { 212 if (computer is ImportedComputer) {
200 CompletionSuggestion cs = 213 CompletionSuggestion cs =
201 assertSuggest(CompletionSuggestionKind.LIBRARY_PREFIX, prefix, relevan ce); 214 assertSuggest(prefix, csKind: kind, relevance: relevance);
202 protocol.Element element = cs.element; 215 protocol.Element element = cs.element;
203 expect(element, isNotNull); 216 expect(element, isNotNull);
204 expect(element.kind, equals(protocol.ElementKind.LIBRARY)); 217 expect(element.kind, equals(protocol.ElementKind.LIBRARY));
205 expect(element.parameters, isNull); 218 expect(element.parameters, isNull);
206 expect(element.returnType, isNull); 219 expect(element.returnType, isNull);
207 return cs; 220 return cs;
208 } else { 221 } else {
209 return assertNotSuggested(prefix); 222 return assertNotSuggested(prefix);
210 } 223 }
211 } 224 }
212 225
213 CompletionSuggestion assertSuggestLocalVariable(String name, 226 CompletionSuggestion assertSuggestLocalVariable(String name,
214 String returnType, [CompletionRelevance relevance = 227 String returnType, [CompletionRelevance relevance = CompletionRelevance.DE FAULT,
215 CompletionRelevance.DEFAULT]) { 228 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
216 // Local variables should only be suggested by LocalComputer 229 // Local variables should only be suggested by LocalComputer
217 if (computer is LocalComputer) { 230 if (computer is LocalComputer) {
218 CompletionSuggestion cs = 231 CompletionSuggestion cs =
219 assertSuggest(CompletionSuggestionKind.LOCAL_VARIABLE, name, relevance ); 232 assertSuggest(name, csKind: kind, relevance: relevance);
220 expect(cs.returnType, equals(returnType)); 233 expect(cs.returnType, equals(returnType));
221 protocol.Element element = cs.element; 234 protocol.Element element = cs.element;
222 expect(element, isNotNull); 235 expect(element, isNotNull);
223 expect(element.kind, equals(protocol.ElementKind.LOCAL_VARIABLE)); 236 expect(element.kind, equals(protocol.ElementKind.LOCAL_VARIABLE));
224 expect(element.name, equals(name)); 237 expect(element.name, equals(name));
225 expect(element.parameters, isNull); 238 expect(element.parameters, isNull);
226 expect( 239 expect(
227 element.returnType, 240 element.returnType,
228 equals(returnType != null ? returnType : 'dynamic')); 241 equals(returnType != null ? returnType : 'dynamic'));
229 return cs; 242 return cs;
230 } else { 243 } else {
231 return assertNotSuggested(name); 244 return assertNotSuggested(name);
232 } 245 }
233 } 246 }
234 247
235 CompletionSuggestion assertSuggestMethod(String name, String declaringType, 248 CompletionSuggestion assertSuggestMethod(String name, String declaringType,
236 String returnType, [CompletionRelevance relevance = 249 String returnType, [CompletionRelevance relevance = CompletionRelevance.DE FAULT,
237 CompletionRelevance.DEFAULT]) { 250 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
238 CompletionSuggestion cs = 251 CompletionSuggestion cs =
239 assertSuggest(CompletionSuggestionKind.METHOD, name, relevance); 252 assertSuggest(name, csKind: kind, relevance: relevance);
240 expect(cs.declaringType, equals(declaringType)); 253 expect(cs.declaringType, equals(declaringType));
241 expect(cs.returnType, equals(returnType)); 254 expect(cs.returnType, equals(returnType));
242 protocol.Element element = cs.element; 255 protocol.Element element = cs.element;
243 expect(element, isNotNull); 256 expect(element, isNotNull);
244 expect(element.kind, equals(protocol.ElementKind.METHOD)); 257 expect(element.kind, equals(protocol.ElementKind.METHOD));
245 expect(element.name, equals(name)); 258 expect(element.name, equals(name));
246 String param = element.parameters; 259 String param = element.parameters;
247 expect(param, isNotNull); 260 expect(param, isNotNull);
248 expect(param[0], equals('(')); 261 expect(param[0], equals('('));
249 expect(param[param.length - 1], equals(')')); 262 expect(param[param.length - 1], equals(')'));
250 expect( 263 expect(
251 element.returnType, 264 element.returnType,
252 equals(returnType != null ? returnType : 'dynamic')); 265 equals(returnType != null ? returnType : 'dynamic'));
253 return cs; 266 return cs;
254 } 267 }
255 268
256 CompletionSuggestion assertSuggestNamedConstructor(String name, 269 CompletionSuggestion assertSuggestNamedConstructor(String name,
257 String returnType, [CompletionRelevance relevance = 270 String returnType, [CompletionRelevance relevance = CompletionRelevance.DE FAULT,
258 CompletionRelevance.DEFAULT]) { 271 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
259 if (computer is InvocationComputer) { 272 if (computer is InvocationComputer) {
260 CompletionSuggestion cs = 273 CompletionSuggestion cs =
261 assertSuggest(CompletionSuggestionKind.CONSTRUCTOR, name, relevance); 274 assertSuggest(name, csKind: kind, relevance: relevance);
262 protocol.Element element = cs.element; 275 protocol.Element element = cs.element;
263 expect(element, isNotNull); 276 expect(element, isNotNull);
264 expect(element.kind, equals(protocol.ElementKind.CONSTRUCTOR)); 277 expect(element.kind, equals(protocol.ElementKind.CONSTRUCTOR));
265 expect(element.name, equals(name)); 278 expect(element.name, equals(name));
266 String param = element.parameters; 279 String param = element.parameters;
267 expect(param, isNotNull); 280 expect(param, isNotNull);
268 expect(param[0], equals('(')); 281 expect(param[0], equals('('));
269 expect(param[param.length - 1], equals(')')); 282 expect(param[param.length - 1], equals(')'));
270 expect(element.returnType, equals(returnType)); 283 expect(element.returnType, equals(returnType));
271 return cs; 284 return cs;
272 } else { 285 } else {
273 return assertNotSuggested(name); 286 return assertNotSuggested(name);
274 } 287 }
275 } 288 }
276 289
277 CompletionSuggestion assertSuggestParameter(String name, String returnType, 290 CompletionSuggestion assertSuggestParameter(String name, String returnType,
278 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { 291 [CompletionRelevance relevance = CompletionRelevance.DEFAULT,
292 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
279 // Parameters should only be suggested by LocalComputer 293 // Parameters should only be suggested by LocalComputer
280 if (computer is LocalComputer) { 294 if (computer is LocalComputer) {
281 CompletionSuggestion cs = 295 CompletionSuggestion cs =
282 assertSuggest(CompletionSuggestionKind.PARAMETER, name, relevance); 296 assertSuggest(name, csKind: kind, relevance: relevance);
283 expect(cs.returnType, equals(returnType)); 297 expect(cs.returnType, equals(returnType));
284 protocol.Element element = cs.element; 298 protocol.Element element = cs.element;
285 expect(element, isNotNull); 299 expect(element, isNotNull);
286 expect(element.kind, equals(protocol.ElementKind.PARAMETER)); 300 expect(element.kind, equals(protocol.ElementKind.PARAMETER));
287 expect(element.name, equals(name)); 301 expect(element.name, equals(name));
288 expect(element.parameters, isNull); 302 expect(element.parameters, isNull);
289 expect( 303 expect(
290 element.returnType, 304 element.returnType,
291 equals(returnType != null ? returnType : 'dynamic')); 305 equals(returnType != null ? returnType : 'dynamic'));
292 return cs; 306 return cs;
293 } else { 307 } else {
294 return assertNotSuggested(name); 308 return assertNotSuggested(name);
295 } 309 }
296 } 310 }
297 311
298 CompletionSuggestion assertSuggestSetter(String name, 312 CompletionSuggestion assertSuggestSetter(String name,
299 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { 313 [CompletionRelevance relevance = CompletionRelevance.DEFAULT,
300 CompletionSuggestion cs = 314 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
301 assertSuggest(CompletionSuggestionKind.SETTER, name, relevance); 315 CompletionSuggestion cs = assertSuggest(
316 name,
317 csKind: kind,
318 relevance: relevance,
319 elemKind: protocol.ElementKind.SETTER);
302 protocol.Element element = cs.element; 320 protocol.Element element = cs.element;
303 expect(element, isNotNull); 321 expect(element, isNotNull);
304 expect(element.kind, equals(protocol.ElementKind.SETTER)); 322 expect(element.kind, equals(protocol.ElementKind.SETTER));
305 expect(element.name, equals(name)); 323 expect(element.name, equals(name));
306 // TODO (danrubel) assert setter param 324 // TODO (danrubel) assert setter param
307 //expect(element.parameters, isNull); 325 //expect(element.parameters, isNull);
308 expect(element.returnType, isNull); 326 expect(element.returnType, isNull);
309 return cs; 327 return cs;
310 } 328 }
311 329
312 CompletionSuggestion assertSuggestTopLevelVar(String name, String returnType, 330 CompletionSuggestion assertSuggestTopLevelVar(String name, String returnType,
313 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { 331 [CompletionRelevance relevance = CompletionRelevance.DEFAULT,
332 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
314 CompletionSuggestion cs = 333 CompletionSuggestion cs =
315 assertSuggest(CompletionSuggestionKind.TOP_LEVEL_VARIABLE, name, relevan ce); 334 assertSuggest(name, csKind: kind, relevance: relevance);
316 expect(cs.returnType, equals(returnType)); 335 expect(cs.returnType, equals(returnType));
317 protocol.Element element = cs.element; 336 protocol.Element element = cs.element;
318 expect(element, isNotNull); 337 expect(element, isNotNull);
319 expect(element.kind, equals(protocol.ElementKind.TOP_LEVEL_VARIABLE)); 338 expect(element.kind, equals(protocol.ElementKind.TOP_LEVEL_VARIABLE));
320 expect(element.name, equals(name)); 339 expect(element.name, equals(name));
321 expect(element.parameters, isNull); 340 expect(element.parameters, isNull);
322 //TODO (danrubel) return type level variable 'type' but not as 'returnType' 341 //TODO (danrubel) return type level variable 'type' but not as 'returnType'
323 // expect( 342 // expect(
324 // element.returnType, 343 // element.returnType,
325 // equals(returnType != null ? returnType : 'dynamic')); 344 // equals(returnType != null ? returnType : 'dynamic'));
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 String declaringType, String returnType, [CompletionRelevance relevance = 459 String declaringType, String returnType, [CompletionRelevance relevance =
441 CompletionRelevance.DEFAULT]) { 460 CompletionRelevance.DEFAULT]) {
442 if (computer is LocalComputer) { 461 if (computer is LocalComputer) {
443 return assertSuggestMethod(name, declaringType, returnType, relevance); 462 return assertSuggestMethod(name, declaringType, returnType, relevance);
444 } else { 463 } else {
445 return assertNotSuggested(name); 464 return assertNotSuggested(name);
446 } 465 }
447 } 466 }
448 467
449 CompletionSuggestion assertSuggestImportedClass(String name, 468 CompletionSuggestion assertSuggestImportedClass(String name,
450 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { 469 [CompletionRelevance relevance = CompletionRelevance.DEFAULT,
470 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
451 if (computer is ImportedComputer) { 471 if (computer is ImportedComputer) {
452 return assertSuggestClass(name, relevance); 472 return assertSuggestClass(name, relevance, kind);
453 } else { 473 } else {
454 return assertNotSuggested(name); 474 return assertNotSuggested(name);
455 } 475 }
456 } 476 }
457 477
458 CompletionSuggestion assertSuggestImportedFunction(String name, 478 CompletionSuggestion assertSuggestImportedFunction(String name,
459 String returnType, [bool isDeprecated = false, CompletionRelevance relevan ce = 479 String returnType, [bool isDeprecated = false, CompletionRelevance relevan ce =
460 CompletionRelevance.DEFAULT]) { 480 CompletionRelevance.DEFAULT, CompletionSuggestionKind kind =
481 CompletionSuggestionKind.INVOCATION]) {
461 if (computer is ImportedComputer) { 482 if (computer is ImportedComputer) {
462 return assertSuggestFunction(name, returnType, isDeprecated, relevance); 483 return assertSuggestFunction(
484 name,
485 returnType,
486 isDeprecated,
487 relevance,
488 kind);
463 } else { 489 } else {
464 return assertNotSuggested(name); 490 return assertNotSuggested(name);
465 } 491 }
466 } 492 }
467 493
468 CompletionSuggestion assertSuggestImportedFunctionTypeAlias(String name, 494 CompletionSuggestion assertSuggestImportedFunctionTypeAlias(String name,
469 String returnType, [bool isDeprecated = false, CompletionRelevance relevan ce = 495 String returnType, [bool isDeprecated = false, CompletionRelevance relevan ce =
470 CompletionRelevance.DEFAULT]) { 496 CompletionRelevance.DEFAULT, CompletionSuggestionKind kind =
497 CompletionSuggestionKind.INVOCATION]) {
471 if (computer is ImportedComputer) { 498 if (computer is ImportedComputer) {
472 return assertSuggestFunctionTypeAlias( 499 return assertSuggestFunctionTypeAlias(
473 name, 500 name,
474 returnType, 501 returnType,
475 isDeprecated, 502 isDeprecated,
476 relevance); 503 relevance,
504 kind);
477 } else { 505 } else {
478 return assertNotSuggested(name); 506 return assertNotSuggested(name);
479 } 507 }
480 } 508 }
481 509
482 CompletionSuggestion assertSuggestImportedGetter(String name, 510 CompletionSuggestion assertSuggestImportedGetter(String name,
483 String returnType, [CompletionRelevance relevance = 511 String returnType, [CompletionRelevance relevance =
484 CompletionRelevance.DEFAULT]) { 512 CompletionRelevance.DEFAULT]) {
485 if (computer is ImportedComputer) { 513 if (computer is ImportedComputer) {
486 return assertSuggestGetter(name, returnType, relevance); 514 return assertSuggestGetter(name, returnType, relevance);
487 } else { 515 } else {
488 return assertNotSuggested(name); 516 return assertNotSuggested(name);
489 } 517 }
490 } 518 }
491 519
492 CompletionSuggestion assertSuggestImportedMethod(String name, 520 CompletionSuggestion assertSuggestImportedMethod(String name,
493 String declaringType, String returnType, [CompletionRelevance relevance = 521 String declaringType, String returnType, [CompletionRelevance relevance =
494 CompletionRelevance.DEFAULT]) { 522 CompletionRelevance.DEFAULT]) {
495 if (computer is ImportedComputer) { 523 if (computer is ImportedComputer) {
496 return assertSuggestMethod(name, declaringType, returnType, relevance); 524 return assertSuggestMethod(name, declaringType, returnType, relevance);
497 } else { 525 } else {
498 return assertNotSuggested(name); 526 return assertNotSuggested(name);
499 } 527 }
500 } 528 }
501 529
502 CompletionSuggestion assertSuggestImportedTopLevelVar(String name, 530 CompletionSuggestion assertSuggestImportedTopLevelVar(String name,
503 String returnType, [CompletionRelevance relevance = 531 String returnType, [CompletionRelevance relevance = CompletionRelevance.DE FAULT,
504 CompletionRelevance.DEFAULT]) { 532 CompletionSuggestionKind kind = CompletionSuggestionKind.INVOCATION]) {
505 if (computer is ImportedComputer) { 533 if (computer is ImportedComputer) {
506 return assertSuggestTopLevelVar(name, returnType, relevance); 534 return assertSuggestTopLevelVar(name, returnType, relevance, kind);
507 } else { 535 } else {
508 return assertNotSuggested(name); 536 return assertNotSuggested(name);
509 } 537 }
510 } 538 }
511 539
512 CompletionSuggestion assertSuggestInvocationClass(String name, 540 CompletionSuggestion assertSuggestInvocationClass(String name,
513 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) { 541 [CompletionRelevance relevance = CompletionRelevance.DEFAULT]) {
514 if (computer is InvocationComputer) { 542 if (computer is InvocationComputer) {
515 return assertSuggestClass(name, relevance); 543 return assertSuggestClass(name, relevance);
516 } else { 544 } else {
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
973 class PB { }'''); 1001 class PB { }''');
974 addSource('/testCD.dart', ''' 1002 addSource('/testCD.dart', '''
975 class C { } 1003 class C { }
976 class D { }'''); 1004 class D { }''');
977 addTestSource(''' 1005 addTestSource('''
978 import "/testAB.dart" hide ^; 1006 import "/testAB.dart" hide ^;
979 import "/testCD.dart"; 1007 import "/testCD.dart";
980 class X {}'''); 1008 class X {}''');
981 computeFast(); 1009 computeFast();
982 return computeFull(true).then((_) { 1010 return computeFull(true).then((_) {
983 assertSuggestImportedClass('A'); 1011 assertSuggestImportedClass(
984 assertSuggestImportedClass('B'); 1012 'A',
985 assertSuggestImportedClass('PB'); 1013 CompletionRelevance.DEFAULT,
986 assertSuggestImportedTopLevelVar('T1', null); 1014 CompletionSuggestionKind.IDENTIFIER);
987 assertSuggestImportedFunction('F1', 'PB'); 1015 assertSuggestImportedClass(
1016 'B',
1017 CompletionRelevance.DEFAULT,
1018 CompletionSuggestionKind.IDENTIFIER);
1019 assertSuggestImportedClass(
1020 'PB',
1021 CompletionRelevance.DEFAULT,
1022 CompletionSuggestionKind.IDENTIFIER);
1023 assertSuggestImportedTopLevelVar(
1024 'T1',
1025 null,
1026 CompletionRelevance.DEFAULT,
1027 CompletionSuggestionKind.IDENTIFIER);
1028 assertSuggestImportedFunction(
1029 'F1',
1030 'PB',
1031 false,
1032 CompletionRelevance.DEFAULT,
1033 CompletionSuggestionKind.IDENTIFIER);
988 assertNotSuggested('C'); 1034 assertNotSuggested('C');
989 assertNotSuggested('D'); 1035 assertNotSuggested('D');
990 assertNotSuggested('X'); 1036 assertNotSuggested('X');
991 assertNotSuggested('Object'); 1037 assertNotSuggested('Object');
992 }); 1038 });
993 } 1039 }
994 1040
995 test_Combinator_show() { 1041 test_Combinator_show() {
996 // SimpleIdentifier HideCombinator ImportDirective 1042 // SimpleIdentifier HideCombinator ImportDirective
997 addSource('/testAB.dart', ''' 1043 addSource('/testAB.dart', '''
(...skipping 10 matching lines...) Expand all
1008 class PB { }'''); 1054 class PB { }''');
1009 addSource('/testCD.dart', ''' 1055 addSource('/testCD.dart', '''
1010 class C { } 1056 class C { }
1011 class D { }'''); 1057 class D { }''');
1012 addTestSource(''' 1058 addTestSource('''
1013 import "/testAB.dart" show ^; 1059 import "/testAB.dart" show ^;
1014 import "/testCD.dart"; 1060 import "/testCD.dart";
1015 class X {}'''); 1061 class X {}''');
1016 computeFast(); 1062 computeFast();
1017 return computeFull(true).then((_) { 1063 return computeFull(true).then((_) {
1018 assertSuggestImportedClass('A'); 1064 assertSuggestImportedClass(
1019 assertSuggestImportedClass('B'); 1065 'A',
1020 assertSuggestImportedClass('PB'); 1066 CompletionRelevance.DEFAULT,
1021 assertSuggestImportedTopLevelVar('T1', null); 1067 CompletionSuggestionKind.IDENTIFIER);
1022 assertSuggestImportedFunction('F1', 'PB'); 1068 assertSuggestImportedClass(
1023 assertSuggestImportedClass('Clz'); 1069 'B',
1024 assertSuggestImportedFunctionTypeAlias('F2', null); 1070 CompletionRelevance.DEFAULT,
1071 CompletionSuggestionKind.IDENTIFIER);
1072 assertSuggestImportedClass(
1073 'PB',
1074 CompletionRelevance.DEFAULT,
1075 CompletionSuggestionKind.IDENTIFIER);
1076 assertSuggestImportedTopLevelVar(
1077 'T1',
1078 null,
1079 CompletionRelevance.DEFAULT,
1080 CompletionSuggestionKind.IDENTIFIER);
1081 assertSuggestImportedFunction(
1082 'F1',
1083 'PB',
1084 false,
1085 CompletionRelevance.DEFAULT,
1086 CompletionSuggestionKind.IDENTIFIER);
1087 assertSuggestImportedClass(
1088 'Clz',
1089 CompletionRelevance.DEFAULT,
1090 CompletionSuggestionKind.IDENTIFIER);
1091 assertSuggestImportedFunctionTypeAlias(
1092 'F2',
1093 null,
1094 false,
1095 CompletionRelevance.DEFAULT,
1096 CompletionSuggestionKind.IDENTIFIER);
1025 assertNotSuggested('C'); 1097 assertNotSuggested('C');
1026 assertNotSuggested('D'); 1098 assertNotSuggested('D');
1027 assertNotSuggested('X'); 1099 assertNotSuggested('X');
1028 assertNotSuggested('Object'); 1100 assertNotSuggested('Object');
1029 }); 1101 });
1030 } 1102 }
1031 1103
1032 test_ConstructorName_importedClass() { 1104 test_ConstructorName_importedClass() {
1033 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName 1105 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName
1034 // InstanceCreationExpression 1106 // InstanceCreationExpression
(...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after
1795 assertNotSuggested('bar2'); 1867 assertNotSuggested('bar2');
1796 assertNotSuggested('_B'); 1868 assertNotSuggested('_B');
1797 assertSuggestLocalClass('Y'); 1869 assertSuggestLocalClass('Y');
1798 assertSuggestLocalClass('C'); 1870 assertSuggestLocalClass('C');
1799 assertSuggestLocalVariable('f', null); 1871 assertSuggestLocalVariable('f', null);
1800 assertNotSuggested('x'); 1872 assertNotSuggested('x');
1801 assertNotSuggested('e'); 1873 assertNotSuggested('e');
1802 }); 1874 });
1803 } 1875 }
1804 } 1876 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698