| Index: pkg/analyzer/test/src/dart/analysis/search_test.dart
|
| diff --git a/pkg/analyzer/test/src/dart/analysis/search_test.dart b/pkg/analyzer/test/src/dart/analysis/search_test.dart
|
| index 67ade8b5a45359988e1490ae56a7584959dd1810..28ddd9e5b7ab90e8383448866aa421b026d60941 100644
|
| --- a/pkg/analyzer/test/src/dart/analysis/search_test.dart
|
| +++ b/pkg/analyzer/test/src/dart/analysis/search_test.dart
|
| @@ -81,7 +81,24 @@ class ExpectedResult {
|
| class SearchTest extends BaseAnalysisDriverTest {
|
| static const testUri = 'package:test/test.dart';
|
|
|
| - test_searchReferences_Label() async {
|
| + test_searchReferences_FunctionElement_local() async {
|
| + addTestFile('''
|
| +main() {
|
| + test() {}
|
| + test();
|
| + print(test);
|
| +}
|
| +''');
|
| + FunctionElement element = await _findElement('test');
|
| + List<String> main = [testUri, 'main'];
|
| + var expected = [
|
| + _expectId(main, SearchResultKind.INVOCATION, 'test();'),
|
| + _expectId(main, SearchResultKind.REFERENCE, 'test);')
|
| + ];
|
| + await _verifyReferences(element, expected);
|
| + }
|
| +
|
| + test_searchReferences_LabelElement() async {
|
| addTestFile('''
|
| main() {
|
| label:
|
| @@ -93,7 +110,7 @@ label:
|
| }
|
| }
|
| ''');
|
| - Element element = await _findElementAtString('label:');
|
| + Element element = await _findElement('label');
|
| List<String> main = [testUri, 'main'];
|
| var expected = [
|
| _expectId(main, SearchResultKind.REFERENCE, 'label; // 1'),
|
| @@ -102,7 +119,7 @@ label:
|
| await _verifyReferences(element, expected);
|
| }
|
|
|
| - test_searchReferences_localVariable() async {
|
| + test_searchReferences_LocalVariableElement() async {
|
| addTestFile(r'''
|
| main() {
|
| var v;
|
| @@ -112,7 +129,7 @@ main() {
|
| v();
|
| }
|
| ''');
|
| - Element element = await _findElementAtString('v;');
|
| + Element element = await _findElement('v');
|
| List<String> main = [testUri, 'main'];
|
| var expected = [
|
| _expectId(main, SearchResultKind.WRITE, 'v = 1;'),
|
| @@ -123,7 +140,7 @@ main() {
|
| await _verifyReferences(element, expected);
|
| }
|
|
|
| - test_searchReferences_localVariable_inForEachLoop() async {
|
| + test_searchReferences_localVariableElement_inForEachLoop() async {
|
| addTestFile('''
|
| main() {
|
| for (var v in []) {
|
| @@ -145,6 +162,67 @@ main() {
|
| await _verifyReferences(element, expected);
|
| }
|
|
|
| + test_searchReferences_TypeParameterElement_ofClass() async {
|
| + addTestFile('''
|
| +class A<T> {
|
| + foo(T a) {}
|
| + bar(T b) {}
|
| +}
|
| +''');
|
| + TypeParameterElement element = await _findElement('T');
|
| + var expected = [
|
| + _expectId([testUri, 'A', 'foo', 'a'], SearchResultKind.REFERENCE, 'T a'),
|
| + _expectId([testUri, 'A', 'bar', 'b'], SearchResultKind.REFERENCE, 'T b'),
|
| + ];
|
| + await _verifyReferences(element, expected);
|
| + }
|
| +
|
| + test_searchReferences_TypeParameterElement_ofLocalFunction() async {
|
| + addTestFile('''
|
| +main() {
|
| + void foo<T>(T a) {
|
| + void bar(T b) {}
|
| + }
|
| +}
|
| +''');
|
| + TypeParameterElement element = await _findElement('T');
|
| + var expected = [
|
| + _expectId(
|
| + [testUri, 'main', 'foo', 'a'], SearchResultKind.REFERENCE, 'T a'),
|
| + _expectId([testUri, 'main', 'foo', 'bar', 'b'],
|
| + SearchResultKind.REFERENCE, 'T b'),
|
| + ];
|
| + await _verifyReferences(element, expected);
|
| + }
|
| +
|
| + test_searchReferences_TypeParameterElement_ofMethod() async {
|
| + addTestFile('''
|
| +class A {
|
| + foo<T>(T p) {}
|
| +}
|
| +''');
|
| + TypeParameterElement element = await _findElement('T');
|
| + var expected = [
|
| + _expectId([testUri, 'A', 'foo', 'p'], SearchResultKind.REFERENCE, 'T p'),
|
| + ];
|
| + await _verifyReferences(element, expected);
|
| + }
|
| +
|
| + test_searchReferences_TypeParameterElement_ofTopLevelFunction() async {
|
| + addTestFile('''
|
| +foo<T>(T a) {
|
| + bar(T b) {}
|
| +}
|
| +''');
|
| + TypeParameterElement element = await _findElement('T');
|
| + var expected = [
|
| + _expectId([testUri, 'foo', 'a'], SearchResultKind.REFERENCE, 'T a'),
|
| + _expectId(
|
| + [testUri, 'foo', 'bar', 'b'], SearchResultKind.REFERENCE, 'T b'),
|
| + ];
|
| + await _verifyReferences(element, expected);
|
| + }
|
| +
|
| ExpectedResult _expectId(
|
| List<String> enclosingComponents, SearchResultKind kind, String search,
|
| {int length, bool isResolved: true, bool isQualified: false}) {
|
| @@ -156,6 +234,11 @@ main() {
|
| isResolved: isResolved, isQualified: isQualified);
|
| }
|
|
|
| + Future<Element> _findElement(String name) async {
|
| + AnalysisResult result = await driver.getResult(testFile);
|
| + return findChildElement(result.unit.element, name);
|
| + }
|
| +
|
| Future<Element> _findElementAtString(String search) async {
|
| AnalysisResult result = await driver.getResult(testFile);
|
| int offset = findOffset(search);
|
|
|