| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 import 'dart:async'; | 5 import 'dart:async'; |
| 6 | 6 |
| 7 import 'package:analyzer/dart/ast/ast.dart'; | 7 import 'package:analyzer/dart/ast/ast.dart'; |
| 8 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; | 8 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; |
| 9 import 'package:analyzer/dart/element/element.dart'; | 9 import 'package:analyzer/dart/element/element.dart'; |
| 10 import 'package:analyzer/src/dart/analysis/driver.dart'; | 10 import 'package:analyzer/src/dart/analysis/driver.dart'; |
| 11 import 'package:analyzer/src/dart/analysis/search.dart'; | 11 import 'package:analyzer/src/dart/analysis/search.dart'; |
| 12 import 'package:analyzer/src/dart/ast/utilities.dart'; | 12 import 'package:analyzer/src/dart/ast/utilities.dart'; |
| 13 import 'package:analyzer/src/dart/element/member.dart'; | 13 import 'package:analyzer/src/dart/element/member.dart'; |
| 14 import 'package:test/test.dart'; | 14 import 'package:test/test.dart'; |
| 15 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 15 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 16 | 16 |
| 17 import '../../../utils.dart'; |
| 17 import 'base.dart'; | 18 import 'base.dart'; |
| 18 | 19 |
| 19 main() { | 20 main() { |
| 20 defineReflectiveSuite(() { | 21 defineReflectiveSuite(() { |
| 21 defineReflectiveTests(SearchTest); | 22 defineReflectiveTests(SearchTest); |
| 22 }); | 23 }); |
| 23 } | 24 } |
| 24 | 25 |
| 25 class ExpectedResult { | 26 class ExpectedResult { |
| 26 final Element enclosingElement; | 27 final Element enclosingElement; |
| (...skipping 538 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 565 main() { | 566 main() { |
| 566 label: | 567 label: |
| 567 while (true) { | 568 while (true) { |
| 568 if (true) { | 569 if (true) { |
| 569 break label; // 1 | 570 break label; // 1 |
| 570 } | 571 } |
| 571 break label; // 2 | 572 break label; // 2 |
| 572 } | 573 } |
| 573 } | 574 } |
| 574 '''); | 575 '''); |
| 575 Element element = _findElement('label'); | 576 Element element = findElementsByName(testUnit, 'label').single; |
| 576 Element main = _findElement('main'); | 577 Element main = _findElement('main'); |
| 577 var expected = [ | 578 var expected = [ |
| 578 _expectId(main, SearchResultKind.REFERENCE, 'label; // 1'), | 579 _expectId(main, SearchResultKind.REFERENCE, 'label; // 1'), |
| 579 _expectId(main, SearchResultKind.REFERENCE, 'label; // 2') | 580 _expectId(main, SearchResultKind.REFERENCE, 'label; // 2') |
| 580 ]; | 581 ]; |
| 581 await _verifyReferences(element, expected); | 582 await _verifyReferences(element, expected); |
| 582 } | 583 } |
| 583 | 584 |
| 584 test_searchReferences_LibraryElement() async { | 585 test_searchReferences_LibraryElement() async { |
| 585 var codeA = 'part of lib; // A'; | 586 var codeA = 'part of lib; // A'; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 606 test_searchReferences_LocalVariableElement() async { | 607 test_searchReferences_LocalVariableElement() async { |
| 607 await _resolveTestUnit(r''' | 608 await _resolveTestUnit(r''' |
| 608 main() { | 609 main() { |
| 609 var v; | 610 var v; |
| 610 v = 1; | 611 v = 1; |
| 611 v += 2; | 612 v += 2; |
| 612 print(v); | 613 print(v); |
| 613 v(); | 614 v(); |
| 614 } | 615 } |
| 615 '''); | 616 '''); |
| 616 Element element = _findElementAtString('v;'); | 617 Element element = findElementsByName(testUnit, 'v').single; |
| 617 Element main = _findElement('main'); | 618 Element main = _findElement('main'); |
| 618 var expected = [ | 619 var expected = [ |
| 619 _expectId(main, SearchResultKind.WRITE, 'v = 1;'), | 620 _expectId(main, SearchResultKind.WRITE, 'v = 1;'), |
| 620 _expectId(main, SearchResultKind.READ_WRITE, 'v += 2;'), | 621 _expectId(main, SearchResultKind.READ_WRITE, 'v += 2;'), |
| 621 _expectId(main, SearchResultKind.READ, 'v);'), | 622 _expectId(main, SearchResultKind.READ, 'v);'), |
| 622 _expectId(main, SearchResultKind.INVOCATION, 'v();') | 623 _expectId(main, SearchResultKind.INVOCATION, 'v();') |
| 623 ]; | 624 ]; |
| 624 await _verifyReferences(element, expected); | 625 await _verifyReferences(element, expected); |
| 625 } | 626 } |
| 626 | 627 |
| 627 test_searchReferences_localVariableElement_inForEachLoop() async { | 628 test_searchReferences_localVariableElement_inForEachLoop() async { |
| 628 await _resolveTestUnit(''' | 629 await _resolveTestUnit(''' |
| 629 main() { | 630 main() { |
| 630 for (var v in []) { | 631 for (var v in []) { |
| 631 v = 1; | 632 v = 1; |
| 632 v += 2; | 633 v += 2; |
| 633 print(v); | 634 print(v); |
| 634 v(); | 635 v(); |
| 635 } | 636 } |
| 636 } | 637 } |
| 637 '''); | 638 '''); |
| 638 Element element = _findElementAtString('v in []'); | 639 Element element = findElementsByName(testUnit, 'v').single; |
| 639 Element main = _findElement('main'); | 640 Element main = _findElement('main'); |
| 640 var expected = [ | 641 var expected = [ |
| 641 _expectId(main, SearchResultKind.WRITE, 'v = 1;'), | 642 _expectId(main, SearchResultKind.WRITE, 'v = 1;'), |
| 642 _expectId(main, SearchResultKind.READ_WRITE, 'v += 2;'), | 643 _expectId(main, SearchResultKind.READ_WRITE, 'v += 2;'), |
| 643 _expectId(main, SearchResultKind.READ, 'v);'), | 644 _expectId(main, SearchResultKind.READ, 'v);'), |
| 644 _expectId(main, SearchResultKind.INVOCATION, 'v();') | 645 _expectId(main, SearchResultKind.INVOCATION, 'v();') |
| 645 ]; | 646 ]; |
| 646 await _verifyReferences(element, expected); | 647 await _verifyReferences(element, expected); |
| 647 } | 648 } |
| 648 | 649 |
| (...skipping 615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1264 List<SearchResult> results = await driver.search.references(element); | 1265 List<SearchResult> results = await driver.search.references(element); |
| 1265 _assertResults(results, expectedMatches); | 1266 _assertResults(results, expectedMatches); |
| 1266 expect(results, hasLength(expectedMatches.length)); | 1267 expect(results, hasLength(expectedMatches.length)); |
| 1267 } | 1268 } |
| 1268 | 1269 |
| 1269 static void _assertResults( | 1270 static void _assertResults( |
| 1270 List<SearchResult> matches, List<ExpectedResult> expectedMatches) { | 1271 List<SearchResult> matches, List<ExpectedResult> expectedMatches) { |
| 1271 expect(matches, unorderedEquals(expectedMatches)); | 1272 expect(matches, unorderedEquals(expectedMatches)); |
| 1272 } | 1273 } |
| 1273 } | 1274 } |
| OLD | NEW |