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

Side by Side Diff: pkg/analyzer/test/src/dart/analysis/search_test.dart

Issue 2973093002: Stop depending on LabelElement(s) to be reported in visitChildren(). (Closed)
Patch Set: Created 3 years, 5 months 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
OLDNEW
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
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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698