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.search.element_references; | 5 library test.search.element_references; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 | 8 |
9 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 9 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
10 import 'package:analysis_server/src/services/index/index.dart'; | 10 import 'package:analysis_server/src/services/index/index.dart'; |
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
146 } | 146 } |
147 main(A a) { | 147 main(A a) { |
148 a.fff = 20; | 148 a.fff = 20; |
149 a.fff += 30; | 149 a.fff += 30; |
150 print(a.fff); // in main() | 150 print(a.fff); // in main() |
151 a.fff(); // in main() | 151 a.fff(); // in main() |
152 } | 152 } |
153 '''); | 153 '''); |
154 await findElementReferences('fff; // declaration', false); | 154 await findElementReferences('fff; // declaration', false); |
155 expect(searchElement.kind, ElementKind.FIELD); | 155 expect(searchElement.kind, ElementKind.FIELD); |
156 expect(results, hasLength(11)); | 156 expect(results, hasLength(10)); |
157 assertHasResult(SearchResultKind.DECLARATION, 'fff; // declaration'); | |
158 assertHasResult(SearchResultKind.WRITE, 'fff); // in constructor'); | 157 assertHasResult(SearchResultKind.WRITE, 'fff); // in constructor'); |
159 assertHasResult(SearchResultKind.WRITE, 'fff = 1;'); | 158 assertHasResult(SearchResultKind.WRITE, 'fff = 1;'); |
160 // m() | 159 // m() |
161 assertHasResult(SearchResultKind.WRITE, 'fff = 2;'); | 160 assertHasResult(SearchResultKind.WRITE, 'fff = 2;'); |
162 assertHasResult(SearchResultKind.WRITE, 'fff += 3;'); | 161 assertHasResult(SearchResultKind.WRITE, 'fff += 3;'); |
163 assertHasResult(SearchResultKind.READ, 'fff); // in m()'); | 162 assertHasResult(SearchResultKind.READ, 'fff); // in m()'); |
164 assertHasResult(SearchResultKind.INVOCATION, 'fff(); // in m()'); | 163 assertHasResult(SearchResultKind.INVOCATION, 'fff(); // in m()'); |
165 // main() | 164 // main() |
166 assertHasResult(SearchResultKind.WRITE, 'fff = 20;'); | 165 assertHasResult(SearchResultKind.WRITE, 'fff = 20;'); |
167 assertHasResult(SearchResultKind.WRITE, 'fff += 30;'); | 166 assertHasResult(SearchResultKind.WRITE, 'fff += 30;'); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 var fff; // declaration | 208 var fff; // declaration |
210 A(this.fff); // in constructor | 209 A(this.fff); // in constructor |
211 m() { | 210 m() { |
212 fff = 2; | 211 fff = 2; |
213 print(fff); // in m() | 212 print(fff); // in m() |
214 } | 213 } |
215 } | 214 } |
216 '''); | 215 '''); |
217 await findElementReferences('fff); // in constructor', false); | 216 await findElementReferences('fff); // in constructor', false); |
218 expect(searchElement.kind, ElementKind.FIELD); | 217 expect(searchElement.kind, ElementKind.FIELD); |
219 expect(results, hasLength(4)); | 218 expect(results, hasLength(3)); |
220 assertHasResult(SearchResultKind.DECLARATION, 'fff; // declaration'); | |
221 assertHasResult(SearchResultKind.WRITE, 'fff); // in constructor'); | 219 assertHasResult(SearchResultKind.WRITE, 'fff); // in constructor'); |
222 assertHasResult(SearchResultKind.WRITE, 'fff = 2;'); | 220 assertHasResult(SearchResultKind.WRITE, 'fff = 2;'); |
223 assertHasResult(SearchResultKind.READ, 'fff); // in m()'); | 221 assertHasResult(SearchResultKind.READ, 'fff); // in m()'); |
224 } | 222 } |
225 | 223 |
226 test_function() async { | 224 test_function() async { |
227 addTestFile(''' | 225 addTestFile(''' |
228 fff(p) {} | 226 fff(p) {} |
229 main() { | 227 main() { |
230 fff(1); | 228 fff(1); |
(...skipping 19 matching lines...) Expand all Loading... |
250 int fff; // in C | 248 int fff; // in C |
251 } | 249 } |
252 main(A a, B b, C c) { | 250 main(A a, B b, C c) { |
253 a.fff = 10; | 251 a.fff = 10; |
254 b.fff = 20; | 252 b.fff = 20; |
255 c.fff = 30; | 253 c.fff = 30; |
256 } | 254 } |
257 '''); | 255 '''); |
258 await findElementReferences('fff; // in B', false); | 256 await findElementReferences('fff; // in B', false); |
259 expect(searchElement.kind, ElementKind.FIELD); | 257 expect(searchElement.kind, ElementKind.FIELD); |
260 assertHasResult(SearchResultKind.DECLARATION, 'fff; // in A'); | |
261 assertHasResult(SearchResultKind.DECLARATION, 'fff; // in B'); | |
262 assertHasResult(SearchResultKind.DECLARATION, 'fff; // in C'); | |
263 assertHasResult(SearchResultKind.WRITE, 'fff = 10;'); | 258 assertHasResult(SearchResultKind.WRITE, 'fff = 10;'); |
264 assertHasResult(SearchResultKind.WRITE, 'fff = 20;'); | 259 assertHasResult(SearchResultKind.WRITE, 'fff = 20;'); |
265 assertHasResult(SearchResultKind.WRITE, 'fff = 30;'); | 260 assertHasResult(SearchResultKind.WRITE, 'fff = 30;'); |
266 } | 261 } |
267 | 262 |
268 test_hierarchy_method() async { | 263 test_hierarchy_method() async { |
269 addTestFile(''' | 264 addTestFile(''' |
270 class A { | 265 class A { |
271 mmm(_) {} // in A | 266 mmm(_) {} // in A |
272 } | 267 } |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
319 for (int i = 0; i < 10; i++) { | 314 for (int i = 0; i < 10; i++) { |
320 if (i == 2) { | 315 if (i == 2) { |
321 continue myLabel; // continue | 316 continue myLabel; // continue |
322 } | 317 } |
323 break myLabel; // break | 318 break myLabel; // break |
324 } | 319 } |
325 } | 320 } |
326 '''); | 321 '''); |
327 await findElementReferences('myLabel; // break', false); | 322 await findElementReferences('myLabel; // break', false); |
328 expect(searchElement.kind, ElementKind.LABEL); | 323 expect(searchElement.kind, ElementKind.LABEL); |
329 expect(results, hasLength(3)); | 324 expect(results, hasLength(2)); |
330 assertHasResult(SearchResultKind.DECLARATION, 'myLabel:'); | |
331 assertHasResult(SearchResultKind.REFERENCE, 'myLabel; // continue'); | 325 assertHasResult(SearchResultKind.REFERENCE, 'myLabel; // continue'); |
332 assertHasResult(SearchResultKind.REFERENCE, 'myLabel; // break'); | 326 assertHasResult(SearchResultKind.REFERENCE, 'myLabel; // break'); |
333 } | 327 } |
334 | 328 |
335 test_localVariable() async { | 329 test_localVariable() async { |
336 addTestFile(''' | 330 addTestFile(''' |
337 main() { | 331 main() { |
338 var vvv = 1; | 332 var vvv = 1; |
339 print(vvv); | 333 print(vvv); |
340 vvv += 3; | 334 vvv += 3; |
341 vvv = 2; | 335 vvv = 2; |
342 vvv(); | 336 vvv(); |
343 } | 337 } |
344 '''); | 338 '''); |
345 await findElementReferences('vvv = 1', false); | 339 await findElementReferences('vvv = 1', false); |
346 expect(searchElement.kind, ElementKind.LOCAL_VARIABLE); | 340 expect(searchElement.kind, ElementKind.LOCAL_VARIABLE); |
347 expect(results, hasLength(5)); | 341 expect(results, hasLength(4)); |
348 assertHasResult(SearchResultKind.DECLARATION, 'vvv = 1'); | |
349 assertHasResult(SearchResultKind.READ, 'vvv);'); | 342 assertHasResult(SearchResultKind.READ, 'vvv);'); |
350 assertHasResult(SearchResultKind.READ_WRITE, 'vvv += 3'); | 343 assertHasResult(SearchResultKind.READ_WRITE, 'vvv += 3'); |
351 assertHasResult(SearchResultKind.WRITE, 'vvv = 2'); | 344 assertHasResult(SearchResultKind.WRITE, 'vvv = 2'); |
352 assertHasResult(SearchResultKind.INVOCATION, 'vvv();'); | 345 assertHasResult(SearchResultKind.INVOCATION, 'vvv();'); |
353 } | 346 } |
354 | 347 |
355 test_method() async { | 348 test_method() async { |
356 addTestFile(''' | 349 addTestFile(''' |
357 class A { | 350 class A { |
358 mmm(p) {} | 351 mmm(p) {} |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
419 addTestFile(''' | 412 addTestFile(''' |
420 main(ppp) { | 413 main(ppp) { |
421 print(ppp); | 414 print(ppp); |
422 ppp += 3; | 415 ppp += 3; |
423 ppp = 2; | 416 ppp = 2; |
424 ppp(); | 417 ppp(); |
425 } | 418 } |
426 '''); | 419 '''); |
427 await findElementReferences('ppp) {', false); | 420 await findElementReferences('ppp) {', false); |
428 expect(searchElement.kind, ElementKind.PARAMETER); | 421 expect(searchElement.kind, ElementKind.PARAMETER); |
429 expect(results, hasLength(5)); | 422 expect(results, hasLength(4)); |
430 assertHasResult(SearchResultKind.DECLARATION, 'ppp) {'); | |
431 assertHasResult(SearchResultKind.READ, 'ppp);'); | 423 assertHasResult(SearchResultKind.READ, 'ppp);'); |
432 assertHasResult(SearchResultKind.READ_WRITE, 'ppp += 3'); | 424 assertHasResult(SearchResultKind.READ_WRITE, 'ppp += 3'); |
433 assertHasResult(SearchResultKind.WRITE, 'ppp = 2'); | 425 assertHasResult(SearchResultKind.WRITE, 'ppp = 2'); |
434 assertHasResult(SearchResultKind.INVOCATION, 'ppp();'); | 426 assertHasResult(SearchResultKind.INVOCATION, 'ppp();'); |
435 } | 427 } |
436 | 428 |
437 test_path_inConstructor_named() async { | 429 test_path_inConstructor_named() async { |
438 addTestFile(''' | 430 addTestFile(''' |
439 library my_lib; | 431 library my_lib; |
440 class A {} | 432 class A {} |
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 import 'dart:async' as ppp; | 579 import 'dart:async' as ppp; |
588 main() { | 580 main() { |
589 ppp.Future a; | 581 ppp.Future a; |
590 ppp.Stream b; | 582 ppp.Stream b; |
591 } | 583 } |
592 '''); | 584 '''); |
593 await findElementReferences("ppp;", false); | 585 await findElementReferences("ppp;", false); |
594 expect(searchElement.kind, ElementKind.PREFIX); | 586 expect(searchElement.kind, ElementKind.PREFIX); |
595 expect(searchElement.name, 'ppp'); | 587 expect(searchElement.name, 'ppp'); |
596 expect(searchElement.location.startLine, 1); | 588 expect(searchElement.location.startLine, 1); |
597 expect(results, hasLength(3)); | 589 expect(results, hasLength(2)); |
598 assertHasResult(SearchResultKind.DECLARATION, 'ppp;'); | |
599 assertHasResult(SearchResultKind.REFERENCE, 'ppp.Future'); | 590 assertHasResult(SearchResultKind.REFERENCE, 'ppp.Future'); |
600 assertHasResult(SearchResultKind.REFERENCE, 'ppp.Stream'); | 591 assertHasResult(SearchResultKind.REFERENCE, 'ppp.Stream'); |
601 } | 592 } |
602 | 593 |
603 test_topLevelVariable_explicit() async { | 594 test_topLevelVariable_explicit() async { |
604 addTestFile(''' | 595 addTestFile(''' |
605 var vvv = 1; | 596 var vvv = 1; |
606 main() { | 597 main() { |
607 print(vvv); | 598 print(vvv); |
608 vvv += 3; | 599 vvv += 3; |
609 vvv = 2; | 600 vvv = 2; |
610 vvv(); | 601 vvv(); |
611 } | 602 } |
612 '''); | 603 '''); |
613 await findElementReferences('vvv = 1', false); | 604 await findElementReferences('vvv = 1', false); |
614 expect(searchElement.kind, ElementKind.TOP_LEVEL_VARIABLE); | 605 expect(searchElement.kind, ElementKind.TOP_LEVEL_VARIABLE); |
615 expect(results, hasLength(5)); | 606 expect(results, hasLength(4)); |
616 assertHasResult(SearchResultKind.DECLARATION, 'vvv = 1;'); | |
617 assertHasResult(SearchResultKind.READ, 'vvv);'); | 607 assertHasResult(SearchResultKind.READ, 'vvv);'); |
618 assertHasResult(SearchResultKind.WRITE, 'vvv += 3'); | 608 assertHasResult(SearchResultKind.WRITE, 'vvv += 3'); |
619 assertHasResult(SearchResultKind.WRITE, 'vvv = 2'); | 609 assertHasResult(SearchResultKind.WRITE, 'vvv = 2'); |
620 assertHasResult(SearchResultKind.INVOCATION, 'vvv();'); | 610 assertHasResult(SearchResultKind.INVOCATION, 'vvv();'); |
621 } | 611 } |
622 | 612 |
623 test_topLevelVariable_implicit() async { | 613 test_topLevelVariable_implicit() async { |
624 addTestFile(''' | 614 addTestFile(''' |
625 get vvv => null; | 615 get vvv => null; |
626 set vvv(x) {} | 616 set vvv(x) {} |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
698 print(vvv); | 688 print(vvv); |
699 } | 689 } |
700 '''); | 690 '''); |
701 Request request = new SearchFindElementReferencesParams(testFile, 0, false) | 691 Request request = new SearchFindElementReferencesParams(testFile, 0, false) |
702 .toRequest('0'); | 692 .toRequest('0'); |
703 Response response = await waitResponse(request); | 693 Response response = await waitResponse(request); |
704 expect(response.error, isNotNull); | 694 expect(response.error, isNotNull); |
705 expect(response.error.code, RequestErrorCode.NO_INDEX_GENERATED); | 695 expect(response.error.code, RequestErrorCode.NO_INDEX_GENERATED); |
706 } | 696 } |
707 } | 697 } |
OLD | NEW |