Test search with constructor tear-offs.
Change-Id: I9f5e2c8a8f6da737f8a3c81abf964d7e93493895
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212520
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/test/src/dart/analysis/search_test.dart b/pkg/analyzer/test/src/dart/analysis/search_test.dart
index dab758b..774cbf2 100644
--- a/pkg/analyzer/test/src/dart/analysis/search_test.dart
+++ b/pkg/analyzer/test/src/dart/analysis/search_test.dart
@@ -342,29 +342,80 @@
await _verifyReferences(element, expected);
}
- test_searchReferences_ConstructorElement_default() async {
+ test_searchReferences_ConstructorElement_named() async {
+ await resolveTestCode('''
+class A {
+ A.named() {}
+}
+
+void main() {
+ A.named();
+ A.named;
+}
+''');
+ var element = findElement.constructor('named');
+ var main = findElement.function('main');
+ var expected = [
+ _expectIdQ(main, SearchResultKind.REFERENCE, '.named();',
+ length: '.named'.length),
+ _expectIdQ(main, SearchResultKind.REFERENCE, '.named;',
+ length: '.named'.length),
+ ];
+ await _verifyReferences(element, expected);
+ }
+
+ test_searchReferences_ConstructorElement_named_viaTypeAlias() async {
+ await resolveTestCode('''
+class A<T> {
+ A.named();
+}
+
+typedef B = A<int>;
+
+void f() {
+ B.named(); // ref
+ B.named;
+}
+''');
+
+ var element = findElement.constructor('named');
+ var f = findElement.topFunction('f');
+ await _verifyReferences(element, [
+ _expectIdQ(f, SearchResultKind.REFERENCE, '.named(); // ref',
+ length: '.named'.length),
+ _expectIdQ(f, SearchResultKind.REFERENCE, '.named;',
+ length: '.named'.length),
+ ]);
+ }
+
+ test_searchReferences_ConstructorElement_unnamed() async {
await resolveTestCode('''
class A {
A() {}
}
-main() {
- new A();
+
+void main() {
+ A();
+ A.new;
}
''');
var element = findElement.unnamedConstructor('A');
var main = findElement.function('main');
var expected = [
- _expectIdQ(main, SearchResultKind.REFERENCE, '();', length: 0)
+ _expectIdQ(main, SearchResultKind.REFERENCE, '();', length: 0),
+ _expectIdQ(main, SearchResultKind.REFERENCE, '.new;',
+ length: '.new'.length),
];
await _verifyReferences(element, expected);
}
- test_searchReferences_ConstructorElement_default_otherFile() async {
+ test_searchReferences_ConstructorElement_unnamed_otherFile() async {
String other = convertPath('$testPackageLibPath/other.dart');
String otherCode = '''
import 'test.dart';
-main() {
- new A(); // in other
+
+void f() {
+ A(); // in other
}
''';
newFile(other, content: otherCode);
@@ -388,57 +439,21 @@
await _verifyReferences(element, expected);
}
- test_searchReferences_ConstructorElement_named() async {
+ test_searchReferences_ConstructorElement_unnamed_synthetic() async {
await resolveTestCode('''
-class A {
- A.named() {}
-}
-main() {
- new A.named();
-}
-''');
- var element = findElement.constructor('named');
- var main = findElement.function('main');
- var expected = [
- _expectIdQ(main, SearchResultKind.REFERENCE, '.named();',
- length: '.named'.length)
- ];
- await _verifyReferences(element, expected);
- }
+class A {}
- test_searchReferences_ConstructorElement_named_viaTypeAlias() async {
- await resolveTestCode('''
-class A<T> {
- A.named();
-}
-
-typedef B = A<int>;
-
-void f() {
- B.named(); // ref
-}
-''');
-
- var element = findElement.constructor('named');
- var f = findElement.topFunction('f');
- await _verifyReferences(element, [
- _expectIdQ(f, SearchResultKind.REFERENCE, '.named(); // ref',
- length: '.named'.length),
- ]);
- }
-
- test_searchReferences_ConstructorElement_synthetic() async {
- await resolveTestCode('''
-class A {
-}
-main() {
- new A();
+void main() {
+ A();
+ A.new;
}
''');
var element = findElement.unnamedConstructor('A');
var main = findElement.function('main');
var expected = [
- _expectIdQ(main, SearchResultKind.REFERENCE, '();', length: 0)
+ _expectIdQ(main, SearchResultKind.REFERENCE, '();', length: 0),
+ _expectIdQ(main, SearchResultKind.REFERENCE, '.new;',
+ length: '.new'.length),
];
await _verifyReferences(element, expected);
}