Skip to content

Commit 2df7d1a

Browse files
pqCommit Queue
authored and
Commit Queue
committed
[wildcards] find reference tests
See: #55681 Change-Id: Ia1f8cc08d7a79fe66fce9ac108543cb2a6aebd34 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381943 Commit-Queue: Phil Quitslund <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent b551690 commit 2df7d1a

File tree

1 file changed

+88
-0
lines changed

1 file changed

+88
-0
lines changed

pkg/analysis_server/test/services/search/search_engine_test.dart

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -577,6 +577,46 @@ class B extends A {
577577
);
578578
}
579579

580+
Future<void> test_searchReferences_parameter_topLevelShadow_wildcard() async {
581+
var code = '''
582+
int _ = 0;
583+
int f(int _) => _;
584+
''';
585+
await resolveTestCode(code);
586+
587+
var parameter = findElement.parameter('_');
588+
var parameterMatches = await searchEngine.searchReferences(parameter);
589+
expect(parameterMatches, isEmpty);
590+
591+
var topLevelVariable = findElement.topVar('_');
592+
var topLevelVariableMatches =
593+
await searchEngine.searchReferences(topLevelVariable);
594+
expect(
595+
topLevelVariableMatches,
596+
unorderedEquals([
597+
predicate((SearchMatch m) {
598+
return m.kind == MatchKind.READ &&
599+
identical(m.element, findElement.topFunction('f')) &&
600+
m.sourceRange.offset == code.indexOf('_;') &&
601+
m.sourceRange.length == '_'.length;
602+
}),
603+
]),
604+
);
605+
}
606+
607+
Future<void> test_searchReferences_parameter_wildcard() async {
608+
var code = '''
609+
f(int _) {}
610+
''';
611+
await resolveTestCode(code);
612+
613+
var element = findElement.parameter('_');
614+
var matches = await searchEngine.searchReferences(element);
615+
616+
// No crashes.
617+
expect(matches, isEmpty);
618+
}
619+
580620
Future<void>
581621
test_searchReferences_topFunction_parameter_optionalNamed_anywhere() async {
582622
var code = '''
@@ -603,6 +643,54 @@ void g() {
603643
);
604644
}
605645

646+
Future<void> test_searchReferences_underscoreField() async {
647+
var code = '''
648+
class A {
649+
final _ = 1;
650+
int a() => _;
651+
}
652+
''';
653+
await resolveTestCode(code);
654+
655+
var element = findElement.field('_');
656+
var matches = await searchEngine.searchReferences(element);
657+
658+
expect(
659+
matches,
660+
unorderedEquals([
661+
predicate((SearchMatch m) {
662+
return m.kind == MatchKind.READ &&
663+
identical(m.element, findElement.method('a')) &&
664+
m.sourceRange.offset == code.indexOf('_;') &&
665+
m.sourceRange.length == '_'.length;
666+
}),
667+
]),
668+
);
669+
}
670+
671+
Future<void> test_searchReferences_underscoreTopLevelVariable() async {
672+
var code = '''
673+
final _ = 1;
674+
int f() => _;
675+
''';
676+
await resolveTestCode(code);
677+
678+
var element = findElement.topVar('_');
679+
var matches = await searchEngine.searchReferences(element);
680+
681+
expect(
682+
matches,
683+
unorderedEquals([
684+
predicate((SearchMatch m) {
685+
return m.kind == MatchKind.READ &&
686+
identical(m.element, findElement.topFunction('f')) &&
687+
m.sourceRange.offset == code.indexOf('_;') &&
688+
m.sourceRange.length == '_'.length;
689+
}),
690+
]),
691+
);
692+
}
693+
606694
Future<void> test_searchTopLevelDeclarations() async {
607695
newFile('$testPackageLibPath/a.dart', '''
608696
class A {}

0 commit comments

Comments
 (0)