Rename assertTypeName() to assertNamedType().

Change-Id: I959da4662efccdb1d89fbf13eb23220439e6dd34
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213980
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
Konstantin Shcheglov 2021-09-21 15:00:22 +00:00 committed by commit-bot@chromium.org
parent 5c719b3bd3
commit 0c893bfd7f
10 changed files with 160 additions and 160 deletions

View file

@ -2463,11 +2463,11 @@ var b = new C<num, String>.named(4, 'five');
assertType(creation, 'C<int, double>');
var typeName = creation.constructorName.type;
assertTypeName(typeName, cElement, 'C<int, double>');
assertNamedType(typeName, cElement, 'C<int, double>');
var typeArguments = typeName.typeArguments!.arguments;
assertTypeName(typeArguments[0] as TypeName, intElement, 'int');
assertTypeName(typeArguments[1] as TypeName, doubleElement, 'double');
assertNamedType(typeArguments[0] as TypeName, intElement, 'int');
assertNamedType(typeArguments[1] as TypeName, doubleElement, 'double');
expect(creation.constructorName.name, isNull);
@ -2482,11 +2482,11 @@ var b = new C<num, String>.named(4, 'five');
assertType(creation, 'C<num, String>');
var typeName = creation.constructorName.type;
assertTypeName(typeName, cElement, 'C<num, String>');
assertNamedType(typeName, cElement, 'C<num, String>');
var typeArguments = typeName.typeArguments!.arguments;
assertTypeName(typeArguments[0] as TypeName, numElement, 'num');
assertTypeName(typeArguments[1] as TypeName, stringElement, 'String');
assertNamedType(typeArguments[0] as TypeName, numElement, 'num');
assertNamedType(typeArguments[1] as TypeName, stringElement, 'String');
var constructorName = creation.constructorName.name;
assertMember(
@ -2587,7 +2587,7 @@ const int b = a as int;
assertElement(aRef, findElement.topGet('a'));
assertType(aRef, 'num');
assertTypeName(findNode.typeName('int;'), intElement, 'int');
assertNamedType(findNode.typeName('int;'), intElement, 'int');
}
test_invalid_const_constructor_initializer_field_multiple() async {
@ -2907,13 +2907,13 @@ main() {
await resolveTestFile();
expect(result.errors, isNotEmpty);
assertTypeName(
assertNamedType(
findNode.typeName('a.Future'),
futureElement,
'Future<int>',
expectedPrefix: findElement.import('dart:async').prefix,
);
assertTypeName(findNode.typeName('int>'), intElement, 'int');
assertNamedType(findNode.typeName('int>'), intElement, 'int');
}
test_invalid_fieldInitializer_field() async {
@ -5622,7 +5622,7 @@ const b = C.named(); // ref
assertElement(creation, c.unnamedConstructor);
assertType(creation, 'C');
assertTypeName(creation.constructorName.type, c, 'C');
assertNamedType(creation.constructorName.type, c, 'C');
}
{
@ -5631,7 +5631,7 @@ const b = C.named(); // ref
assertElement(creation, namedConstructor);
assertType(creation, 'C');
assertTypeName(creation.constructorName.type, c, 'C');
assertNamedType(creation.constructorName.type, c, 'C');
assertElement(creation.constructorName.name, namedConstructor);
}
}
@ -5658,7 +5658,7 @@ const b = p.C.named(); // ref
assertElement(creation, c.unnamedConstructor);
assertType(creation, 'C');
assertTypeName(creation.constructorName.type, c, 'C',
assertNamedType(creation.constructorName.type, c, 'C',
expectedPrefix: import.prefix);
}
@ -5668,7 +5668,7 @@ const b = p.C.named(); // ref
assertElement(creation, namedConstructor);
assertType(creation, 'C');
assertTypeName(creation.constructorName.type, c, 'C',
assertNamedType(creation.constructorName.type, c, 'C',
expectedPrefix: import.prefix);
assertElement(creation.constructorName.name, namedConstructor);
}
@ -5692,8 +5692,8 @@ const b = C<String>.named(); // ref
assertMember(creation, c.unnamedConstructor!, {'T': 'int'});
assertType(creation, 'C<int>');
assertTypeName(creation.constructorName.type, c, 'C<int>');
assertTypeName(findNode.typeName('int>'), intElement, 'int');
assertNamedType(creation.constructorName.type, c, 'C<int>');
assertNamedType(findNode.typeName('int>'), intElement, 'int');
}
{
@ -5702,8 +5702,8 @@ const b = C<String>.named(); // ref
assertMember(creation, namedConstructor, {'T': 'String'});
assertType(creation, 'C<String>');
assertTypeName(creation.constructorName.type, c, 'C<String>');
assertTypeName(findNode.typeName('String>'), stringElement, 'String');
assertNamedType(creation.constructorName.type, c, 'C<String>');
assertNamedType(findNode.typeName('String>'), stringElement, 'String');
assertMember(
creation.constructorName.name, namedConstructor, {'T': 'String'});
@ -5718,10 +5718,10 @@ class A extends Object with Map<int> {}
expect(result.errors, isNotEmpty);
var mapRef = findNode.typeName('Map<');
assertTypeName(mapRef, mapElement, 'Map<dynamic, dynamic>');
assertNamedType(mapRef, mapElement, 'Map<dynamic, dynamic>');
var intRef = findNode.typeName('int>');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
}
test_outline_invalid_mixin_arguments_tooMany() async {
@ -5732,13 +5732,13 @@ class A extends Object with List<int, double> {}
expect(result.errors, isNotEmpty);
var listRef = findNode.typeName('List<');
assertTypeName(listRef, listElement, 'List<dynamic>');
assertNamedType(listRef, listElement, 'List<dynamic>');
var intRef = findNode.typeName('int,');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
var doubleRef = findNode.typeName('double>');
assertTypeName(doubleRef, doubleElement, 'double');
assertNamedType(doubleRef, doubleElement, 'double');
}
test_outline_invalid_mixin_typeParameter() async {
@ -5749,13 +5749,13 @@ class A<T> extends Object with T<int, double> {}
expect(result.errors, isNotEmpty);
var tRef = findNode.typeName('T<');
assertTypeName(tRef, findElement.typeParameter('T'), 'T');
assertNamedType(tRef, findElement.typeParameter('T'), 'T');
var intRef = findNode.typeName('int,');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
var doubleRef = findNode.typeName('double>');
assertTypeName(doubleRef, doubleElement, 'double');
assertNamedType(doubleRef, doubleElement, 'double');
}
test_outline_invalid_supertype_arguments_tooFew() async {
@ -5766,10 +5766,10 @@ class A extends Map<int> {}
expect(result.errors, isNotEmpty);
var mapRef = findNode.typeName('Map<');
assertTypeName(mapRef, mapElement, 'Map<dynamic, dynamic>');
assertNamedType(mapRef, mapElement, 'Map<dynamic, dynamic>');
var intRef = findNode.typeName('int>');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
}
test_outline_invalid_supertype_arguments_tooMany() async {
@ -5780,13 +5780,13 @@ class A extends List<int, double> {}
expect(result.errors, isNotEmpty);
var listRef = findNode.typeName('List<');
assertTypeName(listRef, listElement, 'List<dynamic>');
assertNamedType(listRef, listElement, 'List<dynamic>');
var intRef = findNode.typeName('int,');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
var doubleRef = findNode.typeName('double>');
assertTypeName(doubleRef, doubleElement, 'double');
assertNamedType(doubleRef, doubleElement, 'double');
}
test_outline_invalid_supertype_hasArguments() async {
@ -5797,13 +5797,13 @@ class A extends X<int, double> {}
expect(result.errors, isNotEmpty);
var xRef = findNode.typeName('X<');
assertTypeName(xRef, null, 'dynamic');
assertNamedType(xRef, null, 'dynamic');
var intRef = findNode.typeName('int,');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
var doubleRef = findNode.typeName('double>');
assertTypeName(doubleRef, doubleElement, 'double');
assertNamedType(doubleRef, doubleElement, 'double');
}
test_outline_invalid_supertype_noArguments() async {
@ -5814,7 +5814,7 @@ class A extends X {}
expect(result.errors, isNotEmpty);
var xRef = findNode.typeName('X {}');
assertTypeName(xRef, null, 'dynamic');
assertNamedType(xRef, null, 'dynamic');
}
test_outline_invalid_supertype_typeParameter() async {
@ -5825,13 +5825,13 @@ class A<T> extends T<int, double> {}
expect(result.errors, isNotEmpty);
var tRef = findNode.typeName('T<');
assertTypeName(tRef, findElement.typeParameter('T'), 'T');
assertNamedType(tRef, findElement.typeParameter('T'), 'T');
var intRef = findNode.typeName('int,');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
var doubleRef = findNode.typeName('double>');
assertTypeName(doubleRef, doubleElement, 'double');
assertNamedType(doubleRef, doubleElement, 'double');
}
test_outline_invalid_type_arguments_tooFew() async {
@ -5842,10 +5842,10 @@ typedef Map<int> F();
expect(result.errors, isNotEmpty);
var mapRef = findNode.typeName('Map<');
assertTypeName(mapRef, mapElement, 'Map<dynamic, dynamic>');
assertNamedType(mapRef, mapElement, 'Map<dynamic, dynamic>');
var intRef = findNode.typeName('int>');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
}
test_outline_invalid_type_arguments_tooMany() async {
@ -5856,13 +5856,13 @@ typedef List<int, double> F();
expect(result.errors, isNotEmpty);
var listRef = findNode.typeName('List<');
assertTypeName(listRef, listElement, 'List<dynamic>');
assertNamedType(listRef, listElement, 'List<dynamic>');
var intRef = findNode.typeName('int,');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
var doubleRef = findNode.typeName('double>');
assertTypeName(doubleRef, doubleElement, 'double');
assertNamedType(doubleRef, doubleElement, 'double');
}
test_outline_invalid_type_typeParameter() async {
@ -5873,10 +5873,10 @@ typedef T<int> F<T>();
expect(result.errors, isNotEmpty);
var tRef = findNode.typeName('T<');
assertTypeName(tRef, findElement.typeParameter('T'), 'T');
assertNamedType(tRef, findElement.typeParameter('T'), 'T');
var intRef = findNode.typeName('int>');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
}
test_outline_type_genericFunction() async {
@ -5887,13 +5887,13 @@ int Function(double) g() => (double g) => 0;
expect(result.errors, isEmpty);
var intRef = findNode.typeName('int Function');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
var functionRef = findNode.genericFunctionType('Function(double)');
assertType(functionRef, 'int Function(double)');
var doubleRef = findNode.typeName('double) g');
assertTypeName(doubleRef, doubleElement, 'double');
assertNamedType(doubleRef, doubleElement, 'double');
}
test_outline_type_topLevelVar_named() async {
@ -5905,13 +5905,13 @@ List<double> b = [];
expect(result.errors, isEmpty);
var intRef = findNode.typeName('int a');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
var listRef = findNode.typeName('List<double> b');
assertTypeName(listRef, listElement, 'List<double>');
assertNamedType(listRef, listElement, 'List<double>');
var doubleRef = findNode.typeName('double> b');
assertTypeName(doubleRef, doubleElement, 'double');
assertNamedType(doubleRef, doubleElement, 'double');
}
test_outline_type_topLevelVar_named_prefixed() async {
@ -5923,10 +5923,10 @@ my.Future<int> a;
ImportElement myImport = result.libraryElement.imports[0];
var intRef = findNode.typeName('int> a');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
var futureRef = findNode.typeName('my.Future<int> a');
assertTypeName(futureRef, futureElement, 'Future<int>',
assertNamedType(futureRef, futureElement, 'Future<int>',
expectedPrefix: myImport.prefix);
}
@ -6911,10 +6911,10 @@ class B extends A<int> {}
await resolveTestFile();
var aRef = findNode.typeName('A<int>');
assertTypeName(aRef, findElement.class_('A'), 'A<int>');
assertNamedType(aRef, findElement.class_('A'), 'A<int>');
var intRef = findNode.typeName('int>');
assertTypeName(intRef, intElement, 'int');
assertNamedType(intRef, intElement, 'int');
}
test_top_class_full() async {

View file

@ -35,9 +35,9 @@ class X = A with B implements C;
var x = findElement.class_('X');
assertTypeName(findNode.typeName('A with'), findElement.class_('A'), 'A');
assertTypeName(findNode.typeName('B impl'), findElement.class_('B'), 'B');
assertTypeName(findNode.typeName('C;'), findElement.class_('C'), 'C');
assertNamedType(findNode.typeName('A with'), findElement.class_('A'), 'A');
assertNamedType(findNode.typeName('B impl'), findElement.class_('B'), 'B');
assertNamedType(findNode.typeName('C;'), findElement.class_('C'), 'C');
assertType(x.supertype, 'A');
assertElementTypes(x.mixins, ['B']);

View file

@ -380,7 +380,7 @@ class A extends E {}
assertType(a.supertype, 'Object');
var eRef = findNode.typeName('E {}');
assertTypeName(eRef, findElement.enum_('E'), 'E');
assertNamedType(eRef, findElement.enum_('E'), 'E');
}
test_error_extendsNonClass_mixin() async {
@ -395,7 +395,7 @@ class A extends M {} // ref
assertType(a.supertype, 'Object');
var mRef = findNode.typeName('M {} // ref');
assertTypeName(mRef, findElement.mixin('M'), 'M');
assertNamedType(mRef, findElement.mixin('M'), 'M');
}
test_error_extendsNonClass_variable() async {

View file

@ -64,7 +64,7 @@ void f() {
expectedConstructorMember: true,
expectedSubstitution: {'T': 'int'},
);
assertTypeName(findNode.typeName('int>'), intElement, 'int');
assertNamedType(findNode.typeName('int>'), intElement, 'int');
}
test_class_generic_unnamed_inferTypeArguments() async {
@ -107,7 +107,7 @@ void f() {
expectedConstructorMember: true,
expectedSubstitution: {'T': 'int'},
);
assertTypeName(findNode.typeName('int>'), intElement, 'int');
assertNamedType(findNode.typeName('int>'), intElement, 'int');
}
test_class_notGeneric() async {

View file

@ -943,7 +943,7 @@ main() {
'foo<int>();',
expectedTypeArguments: ['int'],
);
assertTypeName(findNode.typeName('int>'), intElement, 'int');
assertNamedType(findNode.typeName('int>'), intElement, 'int');
}
test_error_undefinedMethod_hasTarget_class_typeParameter() async {
@ -1296,7 +1296,7 @@ main() {
findElement.topFunction('foo'),
'void Function()',
);
assertTypeName(findNode.typeName('int>'), intElement, 'int');
assertNamedType(findNode.typeName('int>'), intElement, 'int');
}
test_error_wrongNumberOfTypeArgumentsMethod_21() async {
@ -1315,7 +1315,7 @@ main() {
'Map<dynamic, dynamic> Function()',
expectedTypeArguments: ['dynamic', 'dynamic'],
);
assertTypeName(findNode.typeName('int>'), intElement, 'int');
assertNamedType(findNode.typeName('int>'), intElement, 'int');
}
test_hasReceiver_class_staticGetter() async {

View file

@ -94,7 +94,7 @@ class A extends Object with M {} // A
assertElementTypes(aElement.mixins, ['M']);
var mRef = findNode.typeName('M {} // A');
assertTypeName(mRef, mElement, 'M');
assertNamedType(mRef, mElement, 'M');
}
test_classTypeAlias_with() async {
@ -109,7 +109,7 @@ class A = Object with M;
assertElementTypes(aElement.mixins, ['M']);
var mRef = findNode.typeName('M;');
assertTypeName(mRef, mElement, 'M');
assertNamedType(mRef, mElement, 'M');
}
test_commentReference() async {
@ -309,7 +309,7 @@ mixin M implements math.Random {}
assertElementTypes(element.interfaces, ['Random']);
var typeRef = findNode.typeName('Random {}');
assertTypeName(typeRef, randomElement, 'Random',
assertNamedType(typeRef, randomElement, 'Random',
expectedPrefix: mathImport.prefix);
}
@ -324,7 +324,7 @@ mixin M implements int {}
assertElementTypes(element.interfaces, ['int']);
var typeRef = findNode.typeName('int {}');
assertTypeName(typeRef, intElement, 'int');
assertNamedType(typeRef, intElement, 'int');
}
test_error_implementsClause_nonClass_void() async {
@ -339,7 +339,7 @@ mixin M implements void {}
assertElementTypes(element.interfaces, []);
var typeRef = findNode.typeName('void {}');
assertTypeName(typeRef, null, 'void');
assertNamedType(typeRef, null, 'void');
}
test_error_memberWithClassName_getter() async {
@ -832,7 +832,7 @@ mixin M on math.Random {}
assertElementTypes(element.superclassConstraints, ['Random']);
var typeRef = findNode.typeName('Random {}');
assertTypeName(typeRef, randomElement, 'Random',
assertNamedType(typeRef, randomElement, 'Random',
expectedPrefix: mathImport.prefix);
}
@ -848,7 +848,7 @@ mixin M on int {}
assertElementTypes(element.superclassConstraints, ['int']);
var typeRef = findNode.typeName('int {}');
assertTypeName(typeRef, intElement, 'int');
assertNamedType(typeRef, intElement, 'int');
}
test_error_onClause_nonInterface_dynamic() async {
@ -863,7 +863,7 @@ mixin M on dynamic {}
assertElementTypes(element.superclassConstraints, ['Object']);
var typeRef = findNode.typeName('dynamic {}');
assertTypeName(typeRef, dynamicElement, 'dynamic');
assertNamedType(typeRef, dynamicElement, 'dynamic');
}
test_error_onClause_nonInterface_enum() async {
@ -879,7 +879,7 @@ mixin M on E {}
assertElementTypes(element.superclassConstraints, ['Object']);
var typeRef = findNode.typeName('E {}');
assertTypeName(typeRef, findElement.enum_('E'), 'E');
assertNamedType(typeRef, findElement.enum_('E'), 'E');
}
test_error_onClause_nonInterface_void() async {
@ -895,7 +895,7 @@ mixin M on void {}
assertElementTypes(element.superclassConstraints, ['Object']);
var typeRef = findNode.typeName('void {}');
assertTypeName(typeRef, null, 'void');
assertNamedType(typeRef, null, 'void');
}
test_error_onClause_OK_mixin() async {
@ -956,7 +956,7 @@ mixin M<T> {
var fNode = findNode.variableDeclaration('f;');
assertElement(fNode.name, fElement);
assertTypeName(findNode.typeName('T f'), tElement, 'T');
assertNamedType(findNode.typeName('T f'), tElement, 'T');
var accessors = element.accessors;
expect(accessors, hasLength(2));
@ -976,10 +976,10 @@ mixin M implements A, B {} // M
assertElementTypes(element.interfaces, ['A', 'B']);
var aRef = findNode.typeName('A, ');
assertTypeName(aRef, findElement.class_('A'), 'A');
assertNamedType(aRef, findElement.class_('A'), 'A');
var bRef = findNode.typeName('B {} // M');
assertTypeName(bRef, findElement.class_('B'), 'B');
assertNamedType(bRef, findElement.class_('B'), 'B');
}
test_invalid_unresolved_before_mixin() async {
@ -1064,10 +1064,10 @@ mixin M on A, B {} // M
assertElementTypes(element.superclassConstraints, ['A', 'B']);
var aRef = findNode.typeName('A, ');
assertTypeName(aRef, findElement.class_('A'), 'A');
assertNamedType(aRef, findElement.class_('A'), 'A');
var bRef = findNode.typeName('B {} // M');
assertTypeName(bRef, findElement.class_('B'), 'B');
assertNamedType(bRef, findElement.class_('B'), 'B');
}
test_recursiveInterfaceInheritance_implements() async {

View file

@ -183,7 +183,7 @@ mixin ResolutionTest implements ResourceProviderMixin {
var typeName = node.constructorName.type;
expectedTypeNameElement ??= expectedClassElement;
assertTypeName(typeName, expectedTypeNameElement, null,
assertNamedType(typeName, expectedTypeNameElement, null,
expectedPrefix: expectedPrefix);
}
@ -463,7 +463,7 @@ mixin ResolutionTest implements ResourceProviderMixin {
var typeName = creation.constructorName.type;
expectedTypeNameElement ??= expectedClassElement;
assertTypeName(typeName, expectedTypeNameElement, expectedType,
assertNamedType(typeName, expectedTypeNameElement, expectedType,
expectedPrefix: expectedPrefix);
}
@ -572,6 +572,29 @@ mixin ResolutionTest implements ResourceProviderMixin {
assertTypeNull(ref);
}
void assertNamedType(
NamedType node, Element? expectedElement, String? expectedType,
{Element? expectedPrefix}) {
assertType(node, expectedType);
if (expectedPrefix == null) {
var name = node.name as SimpleIdentifier;
assertElement(name, expectedElement);
// TODO(scheglov) Should this be null?
// assertType(name, expectedType);
} else {
var name = node.name as PrefixedIdentifier;
assertImportPrefix(name.prefix, expectedPrefix);
assertElement(name.identifier, expectedElement);
// TODO(scheglov) This should be null, but it is not.
// ResolverVisitor sets the tpe for `Bar` in `new foo.Bar()`. This is
// probably wrong. It is fine for the TypeName `foo.Bar` to have a type,
// and for `foo.Bar()` to have a type. But not a name of a type? No.
// expect(name.identifier.staticType, isNull);
}
}
void assertNamespaceDirectiveSelected(
NamespaceDirective directive, {
required String expectedRelativeUri,
@ -805,33 +828,10 @@ mixin ResolutionTest implements ResourceProviderMixin {
TypeLiteral node, Element? expectedElement, String expectedType,
{Element? expectedPrefix}) {
assertType(node, 'Type');
assertTypeName(node.typeName, expectedElement, expectedType,
assertNamedType(node.typeName, expectedElement, expectedType,
expectedPrefix: expectedPrefix);
}
void assertTypeName(
TypeName node, Element? expectedElement, String? expectedType,
{Element? expectedPrefix}) {
assertType(node, expectedType);
if (expectedPrefix == null) {
var name = node.name as SimpleIdentifier;
assertElement(name, expectedElement);
// TODO(scheglov) Should this be null?
// assertType(name, expectedType);
} else {
var name = node.name as PrefixedIdentifier;
assertImportPrefix(name.prefix, expectedPrefix);
assertElement(name.identifier, expectedElement);
// TODO(scheglov) This should be null, but it is not.
// ResolverVisitor sets the tpe for `Bar` in `new foo.Bar()`. This is
// probably wrong. It is fine for the TypeName `foo.Bar` to have a type,
// and for `foo.Bar()` to have a type. But not a name of a type? No.
// expect(name.identifier.staticType, isNull);
}
}
void assertTypeNull(Expression node) {
expect(node.staticType, isNull);
}

View file

@ -35,7 +35,7 @@ import 'a.dart';
f(A a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('A a'),
import_a.class_('A'),
'A*',
@ -54,7 +54,7 @@ import 'a.dart';
f(A a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('A a'),
import_a.class_('A'),
'A<num*>*',
@ -73,7 +73,7 @@ import 'a.dart';
f(A a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('A a'),
import_a.class_('A'),
'A<dynamic>*',
@ -92,7 +92,7 @@ import 'a.dart';
f(A<int> a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('A<int> a'),
import_a.class_('A'),
'A<int*>*',
@ -114,7 +114,7 @@ f(F a) {}
var element = import_a.typeAlias('F');
var typeName = findNode.typeName('F a');
assertTypeName(typeName, element, 'int* Function(bool*)*');
assertNamedType(typeName, element, 'int* Function(bool*)*');
assertTypeAlias(
typeName.typeOrThrow,
@ -138,7 +138,7 @@ f(F a) {}
var element = import_a.typeAlias('F');
var typeName = findNode.typeName('F a');
assertTypeName(typeName, element, 'dynamic Function(bool*)*');
assertNamedType(typeName, element, 'dynamic Function(bool*)*');
assertTypeAlias(
typeName.typeOrThrow,
@ -162,7 +162,7 @@ f(F a) {}
var element = import_a.typeAlias('F');
var typeName = findNode.typeName('F a');
assertTypeName(typeName, element, 'num* Function(bool*)*');
assertNamedType(typeName, element, 'num* Function(bool*)*');
assertTypeAlias(
typeName.typeOrThrow,
@ -186,7 +186,7 @@ f(F<int> a) {}
var element = import_a.typeAlias('F');
var typeName = findNode.typeName('F<int> a');
assertTypeName(typeName, element, 'int* Function(bool*)*');
assertNamedType(typeName, element, 'int* Function(bool*)*');
assertTypeAlias(
typeName.typeOrThrow,
@ -209,7 +209,7 @@ f(A a) {}
error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
]);
assertTypeName(
assertNamedType(
findNode.typeName('A a'),
import_a.class_('A'),
'A',
@ -230,7 +230,7 @@ f(A a) {}
error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
]);
assertTypeName(
assertNamedType(
findNode.typeName('A a'),
import_a.class_('A'),
'A<num*>',
@ -251,7 +251,7 @@ f(A a) {}
error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
]);
assertTypeName(
assertNamedType(
findNode.typeName('A a'),
import_a.class_('A'),
'A<dynamic>',
@ -272,7 +272,7 @@ f(A<int> a) {}
error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
]);
assertTypeName(
assertNamedType(
findNode.typeName('A<int> a'),
import_a.class_('A'),
'A<int>',
@ -293,7 +293,7 @@ f(F a) {}
error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
]);
assertTypeName(
assertNamedType(
findNode.typeName('F a'),
import_a.typeAlias('F'),
'int* Function()',
@ -314,7 +314,7 @@ f(F a) {}
error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
]);
assertTypeName(
assertNamedType(
findNode.typeName('F a'),
import_a.typeAlias('F'),
'num* Function()',
@ -335,7 +335,7 @@ f(F a) {}
error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
]);
assertTypeName(
assertNamedType(
findNode.typeName('F a'),
import_a.typeAlias('F'),
'dynamic Function()',
@ -356,7 +356,7 @@ f(F<int> a) {}
error(HintCode.IMPORT_OF_LEGACY_LIBRARY_INTO_NULL_SAFE, 7, 8),
]);
assertTypeName(
assertNamedType(
findNode.typeName('F<int> a'),
import_a.typeAlias('F'),
'int* Function()',
@ -374,7 +374,7 @@ void f() {
}
''');
assertTypeName(
assertNamedType(
findNode.typeName('X<int>()'),
findElement.typeAlias('X'),
'A<int>',
@ -392,7 +392,7 @@ void f() {
}
''');
assertTypeName(
assertNamedType(
findNode.typeName('X()'),
findElement.typeAlias('X'),
'A<int>',
@ -410,7 +410,7 @@ void f() {
}
''');
assertTypeName(
assertNamedType(
findNode.typeName('X<int>()'),
findElement.typeAlias('X'),
'A<int>',
@ -423,13 +423,13 @@ typedef X<T> = Map<int, T>;
void f(X<String> a, X<String?> b) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('X<String>'),
findElement.typeAlias('X'),
'Map<int, String>',
);
assertTypeName(
assertNamedType(
findNode.typeName('X<String?>'),
findElement.typeAlias('X'),
'Map<int, String?>',
@ -446,7 +446,7 @@ import 'a.dart';
void f(X<String> a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('X<String>'),
findElement.importFind('package:test/a.dart').typeAlias('X'),
'Map<int*, String*>*',
@ -459,13 +459,13 @@ typedef X<T> = List<T?>;
void f(X<int> a, X<int?> b) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('X<int>'),
findElement.typeAlias('X'),
'List<int?>',
);
assertTypeName(
assertNamedType(
findNode.typeName('X<int?>'),
findElement.typeAlias('X'),
'List<int?>',
@ -482,7 +482,7 @@ import 'a.dart';
void f(X<int> a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('X<int>'),
findElement.importFind('package:test/a.dart').typeAlias('X'),
'List<int*>*',
@ -495,13 +495,13 @@ typedef X = Never;
void f(X a, X? b) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('X a'),
findElement.typeAlias('X'),
'Never',
);
assertTypeName(
assertNamedType(
findNode.typeName('X? b'),
findElement.typeAlias('X'),
'Never?',
@ -518,7 +518,7 @@ import 'a.dart';
void f(X a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('X a'),
findElement.importFind('package:test/a.dart').typeAlias('X'),
'Null*',
@ -531,13 +531,13 @@ typedef X = Never?;
void f(X a, X? b) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('X a'),
findElement.typeAlias('X'),
'Never?',
);
assertTypeName(
assertNamedType(
findNode.typeName('X? b'),
findElement.typeAlias('X'),
'Never?',
@ -550,7 +550,7 @@ typedef X<T> = T?;
void f(X<int> a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('X<int>'),
findElement.typeAlias('X'),
'int?',
@ -563,7 +563,7 @@ typedef X<T> = Map<int, T>;
X<String> f() => {};
''');
assertTypeName(
assertNamedType(
findNode.typeName('X<String>'),
findElement.typeAlias('X'),
'Map<int, String>',
@ -576,7 +576,7 @@ typedef Nothing = void;
Nothing f() {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('Nothing f()'),
findElement.typeAlias('Nothing'),
'void',
@ -592,7 +592,7 @@ class A {}
f(A a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('A a'),
findElement.class_('A'),
typeStr('A', 'A*'),
@ -606,7 +606,7 @@ class A<T extends num> {}
f(A a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('A a'),
findElement.class_('A'),
typeStr('A<num>', 'A<num*>*'),
@ -620,7 +620,7 @@ class A<T> {}
f(A a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('A a'),
findElement.class_('A'),
typeStr('A<dynamic>', 'A<dynamic>*'),
@ -634,7 +634,7 @@ class A<T> {}
f(A<int> a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('A<int> a'),
findElement.class_('A'),
typeStr('A<int>', 'A<int*>*'),
@ -648,7 +648,7 @@ import 'dart:core';
dynamic a;
''');
assertTypeName(
assertNamedType(
findNode.typeName('dynamic a;'),
dynamicElement,
'dynamic',
@ -662,7 +662,7 @@ import 'dart:core' as mycore;
mycore.dynamic a;
''');
assertTypeName(
assertNamedType(
findNode.typeName('mycore.dynamic a;'),
dynamicElement,
'dynamic',
@ -679,7 +679,7 @@ dynamic a;
error(CompileTimeErrorCode.UNDEFINED_CLASS, 31, 7),
]);
assertTypeName(
assertNamedType(
findNode.typeName('dynamic a;'),
null,
'dynamic',
@ -691,7 +691,7 @@ dynamic a;
dynamic a;
''');
assertTypeName(
assertNamedType(
findNode.typeName('dynamic a;'),
dynamicElement,
'dynamic',
@ -705,7 +705,7 @@ typedef F = int Function();
f(F a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('F a'),
findElement.typeAlias('F'),
typeStr('int Function()', 'int* Function()*'),
@ -719,7 +719,7 @@ typedef F<T extends num> = T Function();
f(F a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('F a'),
findElement.typeAlias('F'),
typeStr('num Function()', 'num* Function()*'),
@ -733,7 +733,7 @@ typedef F<T> = T Function();
f(F a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('F a'),
findElement.typeAlias('F'),
typeStr('dynamic Function()', 'dynamic Function()*'),
@ -747,7 +747,7 @@ typedef F<T> = T Function();
f(F<int> a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('F<int> a'),
findElement.typeAlias('F'),
typeStr('int Function()', 'int* Function()*'),
@ -765,7 +765,7 @@ main() {
error(CompileTimeErrorCode.NEW_WITH_NON_TYPE, 49, 1),
]);
assertTypeName(
assertNamedType(
findNode.typeName('A();'),
null,
'dynamic',
@ -782,7 +782,7 @@ main() {
}
''');
assertTypeName(
assertNamedType(
findNode.typeName('A();'),
findElement.class_('A'),
typeStr('A', 'A*'),
@ -798,7 +798,7 @@ main() {
error(CompileTimeErrorCode.NEW_WITH_NON_TYPE, 15, 1),
]);
assertTypeName(
assertNamedType(
findNode.typeName('A();'),
null,
'dynamic',
@ -814,7 +814,7 @@ void f() {
error(CompileTimeErrorCode.NEW_WITH_NON_TYPE, 17, 10),
]);
assertTypeName(
assertNamedType(
findNode.typeName('int.double'),
null,
'dynamic',
@ -831,7 +831,7 @@ void f() {
error(CompileTimeErrorCode.NOT_A_TYPE, 18, 10),
]);
assertTypeName(
assertNamedType(
findNode.typeName('int.double'),
null,
'dynamic',
@ -844,7 +844,7 @@ void f() {
f(Never a) {}
''');
assertTypeName(
assertNamedType(
findNode.typeName('Never a'),
neverElement,
typeStr('Never', 'Null*'),

View file

@ -24,8 +24,8 @@ class B implements A, A {} // ref
]);
var A = findElement.class_('A');
assertTypeName(findNode.typeName('A, A {} // ref'), A, 'A');
assertTypeName(findNode.typeName('A {} // ref'), A, 'A');
assertNamedType(findNode.typeName('A, A {} // ref'), A, 'A');
assertNamedType(findNode.typeName('A {} // ref'), A, 'A');
}
test_class_implements_2times_viaTypeAlias() async {
@ -37,13 +37,13 @@ class C implements A, B {} // ref
error(CompileTimeErrorCode.IMPLEMENTS_REPEATED, 48, 1),
]);
assertTypeName(
assertNamedType(
findNode.typeName('A, B {} // ref'),
findElement.class_('A'),
'A',
);
assertTypeName(
assertNamedType(
findNode.typeName('B {} // ref'),
findElement.typeAlias('B'),
'A',

View file

@ -27,6 +27,6 @@ void<int> f() {}
''', [
error(ParserErrorCode.VOID_WITH_TYPE_ARGUMENTS, 4, 1),
]);
assertTypeName(findNode.typeName('int>'), intElement, 'int');
assertNamedType(findNode.typeName('int>'), intElement, 'int');
}
}