Combine test classes in ast_rewrite_test.dart
These two classes have the same FeatureSet, so should be combined.
Change-Id: If03e74d54ca35ed81fe532a7dc1974ecc52b6b25
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/209360
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
diff --git a/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart b/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
index b2bceea..1c5c4b3 100644
--- a/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
+++ b/pkg/analyzer/test/src/dart/resolution/ast_rewrite_test.dart
@@ -14,9 +14,6 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(AstRewriteMethodInvocationTest);
- defineReflectiveTests(
- AstRewriteMethodInvocationWithNonFunctionTypeAliasesTest,
- );
});
}
@@ -99,6 +96,46 @@
_assertArgumentList(invocation.argumentList, ['0']);
}
+ test_targetNull_typeAlias_interfaceType() async {
+ await assertNoErrorsInCode(r'''
+class A<T, U> {
+ A(int _);
+}
+
+typedef X<T, U> = A<T, U>;
+
+void f() {
+ X<int, String>(0);
+}
+''');
+
+ var creation = findNode.instanceCreation('X<int, String>(0);');
+ assertInstanceCreation(
+ creation,
+ findElement.class_('A'),
+ 'A<int, String>',
+ expectedConstructorMember: true,
+ expectedSubstitution: {'T': 'int', 'U': 'String'},
+ expectedTypeNameElement: findElement.typeAlias('X'),
+ );
+ _assertArgumentList(creation.argumentList, ['0']);
+ }
+
+ test_targetNull_typeAlias_Never() async {
+ await assertErrorsInCode(r'''
+typedef X = Never;
+
+void f() {
+ X(0);
+}
+''', [
+ error(CompileTimeErrorCode.INVOCATION_OF_NON_FUNCTION, 33, 1),
+ ]);
+
+ // Not rewritten.
+ findNode.methodInvocation('X(0)');
+ }
+
test_targetPrefixedIdentifier_prefix_class_constructor() async {
newFile('$testPackageLibPath/a.dart', content: r'''
class A<T> {
@@ -192,6 +229,39 @@
_assertArgumentList(invocation.argumentList, ['0']);
}
+ test_targetPrefixedIdentifier_typeAlias_interfaceType_constructor() async {
+ newFile('$testPackageLibPath/a.dart', content: r'''
+class A<T> {
+ A.named(T a);
+}
+
+typedef X<T> = A<T>;
+''');
+
+ await assertNoErrorsInCode(r'''
+import 'a.dart' as prefix;
+
+void f() {
+ prefix.X.named(0);
+}
+''');
+
+ var importFind = findElement.importFind('package:test/a.dart');
+
+ var creation = findNode.instanceCreation('X.named(0);');
+ assertInstanceCreation(
+ creation,
+ importFind.class_('A'),
+ 'A<int>',
+ constructorName: 'named',
+ expectedConstructorMember: true,
+ expectedSubstitution: {'T': 'int'},
+ expectedPrefix: findElement.prefix('prefix'),
+ expectedTypeNameElement: importFind.typeAlias('X'),
+ );
+ _assertArgumentList(creation.argumentList, ['0']);
+ }
+
test_targetSimpleIdentifier_class_constructor() async {
await assertNoErrorsInCode(r'''
class A<T> {
@@ -346,6 +416,32 @@
_assertArgumentList(invocation.argumentList, ['0']);
}
+ test_targetSimpleIdentifier_typeAlias_interfaceType_constructor() async {
+ await assertNoErrorsInCode(r'''
+class A<T> {
+ A.named(T a);
+}
+
+typedef X<T> = A<T>;
+
+void f() {
+ X.named(0);
+}
+''');
+
+ var creation = findNode.instanceCreation('X.named(0);');
+ assertInstanceCreation(
+ creation,
+ findElement.class_('A'),
+ 'A<int>',
+ constructorName: 'named',
+ expectedConstructorMember: true,
+ expectedSubstitution: {'T': 'int'},
+ expectedTypeNameElement: findElement.typeAlias('X'),
+ );
+ _assertArgumentList(creation.argumentList, ['0']);
+ }
+
void _assertArgumentList(
ArgumentList argumentList,
List<String> expectedArguments,
@@ -388,106 +484,3 @@
expect(argumentStrings, expectedArguments);
}
}
-
-@reflectiveTest
-class AstRewriteMethodInvocationWithNonFunctionTypeAliasesTest
- extends PubPackageResolutionTest with AstRewriteMethodInvocationTestCases {
- test_targetNull_typeAlias_interfaceType() async {
- await assertNoErrorsInCode(r'''
-class A<T, U> {
- A(int _);
-}
-
-typedef X<T, U> = A<T, U>;
-
-void f() {
- X<int, String>(0);
-}
-''');
-
- var creation = findNode.instanceCreation('X<int, String>(0);');
- assertInstanceCreation(
- creation,
- findElement.class_('A'),
- 'A<int, String>',
- expectedConstructorMember: true,
- expectedSubstitution: {'T': 'int', 'U': 'String'},
- expectedTypeNameElement: findElement.typeAlias('X'),
- );
- _assertArgumentList(creation.argumentList, ['0']);
- }
-
- test_targetNull_typeAlias_Never() async {
- await assertErrorsInCode(r'''
-typedef X = Never;
-
-void f() {
- X(0);
-}
-''', [
- error(CompileTimeErrorCode.INVOCATION_OF_NON_FUNCTION, 33, 1),
- ]);
-
- // Not rewritten.
- findNode.methodInvocation('X(0)');
- }
-
- test_targetPrefixedIdentifier_typeAlias_interfaceType_constructor() async {
- newFile('$testPackageLibPath/a.dart', content: r'''
-class A<T> {
- A.named(T a);
-}
-
-typedef X<T> = A<T>;
-''');
-
- await assertNoErrorsInCode(r'''
-import 'a.dart' as prefix;
-
-void f() {
- prefix.X.named(0);
-}
-''');
-
- var importFind = findElement.importFind('package:test/a.dart');
-
- var creation = findNode.instanceCreation('X.named(0);');
- assertInstanceCreation(
- creation,
- importFind.class_('A'),
- 'A<int>',
- constructorName: 'named',
- expectedConstructorMember: true,
- expectedSubstitution: {'T': 'int'},
- expectedPrefix: findElement.prefix('prefix'),
- expectedTypeNameElement: importFind.typeAlias('X'),
- );
- _assertArgumentList(creation.argumentList, ['0']);
- }
-
- test_targetSimpleIdentifier_typeAlias_interfaceType_constructor() async {
- await assertNoErrorsInCode(r'''
-class A<T> {
- A.named(T a);
-}
-
-typedef X<T> = A<T>;
-
-void f() {
- X.named(0);
-}
-''');
-
- var creation = findNode.instanceCreation('X.named(0);');
- assertInstanceCreation(
- creation,
- findElement.class_('A'),
- 'A<int>',
- constructorName: 'named',
- expectedConstructorMember: true,
- expectedSubstitution: {'T': 'int'},
- expectedTypeNameElement: findElement.typeAlias('X'),
- );
- _assertArgumentList(creation.argumentList, ['0']);
- }
-}