Rename TypeNameImpl to NamedTypeImpl.
Change-Id: I97a0ffe8ba7271aa51355abb27294b13450cb917 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215946 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:
committed by
commit-bot@chromium.org
parent
85bfe9aca0
commit
0aeaa80a6d
@@ -1644,7 +1644,7 @@ class ClassTypeAliasImpl extends TypeAliasImpl implements ClassTypeAlias {
|
||||
Token? abstractKeyword;
|
||||
|
||||
/// The name of the superclass of the class being declared.
|
||||
TypeNameImpl _superclass;
|
||||
NamedTypeImpl _superclass;
|
||||
|
||||
/// The with clause for this class.
|
||||
WithClauseImpl _withClause;
|
||||
@@ -1711,14 +1711,14 @@ class ClassTypeAliasImpl extends TypeAliasImpl implements ClassTypeAlias {
|
||||
|
||||
@Deprecated('Use superclass2 instead')
|
||||
@override
|
||||
TypeNameImpl get superclass => _superclass;
|
||||
NamedTypeImpl get superclass => _superclass;
|
||||
|
||||
set superclass(NamedType superclass) {
|
||||
_superclass = _becomeParentOf(superclass as TypeNameImpl);
|
||||
_superclass = _becomeParentOf(superclass as NamedTypeImpl);
|
||||
}
|
||||
|
||||
@override
|
||||
TypeNameImpl get superclass2 => _superclass;
|
||||
NamedTypeImpl get superclass2 => _superclass;
|
||||
|
||||
@override
|
||||
TypeParameterListImpl? get typeParameters => _typeParameters;
|
||||
@@ -2594,7 +2594,7 @@ abstract class ConstructorInitializerImpl extends AstNodeImpl
|
||||
/// type ('.' identifier)?
|
||||
class ConstructorNameImpl extends AstNodeImpl implements ConstructorName {
|
||||
/// The name of the type defining the constructor.
|
||||
TypeNameImpl _type;
|
||||
NamedTypeImpl _type;
|
||||
|
||||
/// The token for the period before the constructor name, or `null` if the
|
||||
/// specified constructor is the unnamed constructor.
|
||||
@@ -2644,14 +2644,14 @@ class ConstructorNameImpl extends AstNodeImpl implements ConstructorName {
|
||||
|
||||
@Deprecated('Use type2 instead')
|
||||
@override
|
||||
TypeNameImpl get type => _type;
|
||||
NamedTypeImpl get type => _type;
|
||||
|
||||
set type(NamedType type) {
|
||||
_type = _becomeParentOf(type as TypeNameImpl);
|
||||
_type = _becomeParentOf(type as NamedTypeImpl);
|
||||
}
|
||||
|
||||
@override
|
||||
TypeNameImpl get type2 => _type;
|
||||
NamedTypeImpl get type2 => _type;
|
||||
|
||||
@override
|
||||
E? accept<E>(AstVisitor<E> visitor) => visitor.visitConstructorName(this);
|
||||
@@ -3638,7 +3638,7 @@ class ExtendsClauseImpl extends AstNodeImpl implements ExtendsClause {
|
||||
Token extendsKeyword;
|
||||
|
||||
/// The name of the class that is being extended.
|
||||
TypeNameImpl _superclass;
|
||||
NamedTypeImpl _superclass;
|
||||
|
||||
/// Initialize a newly created extends clause.
|
||||
ExtendsClauseImpl(this.extendsKeyword, this._superclass) {
|
||||
@@ -3658,14 +3658,14 @@ class ExtendsClauseImpl extends AstNodeImpl implements ExtendsClause {
|
||||
|
||||
@Deprecated('Use superclass2 instead')
|
||||
@override
|
||||
TypeNameImpl get superclass => _superclass;
|
||||
NamedTypeImpl get superclass => _superclass;
|
||||
|
||||
set superclass(NamedType name) {
|
||||
_superclass = _becomeParentOf(name as TypeNameImpl);
|
||||
_superclass = _becomeParentOf(name as NamedTypeImpl);
|
||||
}
|
||||
|
||||
@override
|
||||
TypeNameImpl get superclass2 => _superclass;
|
||||
NamedTypeImpl get superclass2 => _superclass;
|
||||
|
||||
@override
|
||||
E? accept<E>(AstVisitor<E> visitor) => visitor.visitExtendsClause(this);
|
||||
@@ -7378,6 +7378,82 @@ class NamedExpressionImpl extends ExpressionImpl implements NamedExpression {
|
||||
}
|
||||
}
|
||||
|
||||
/// The name of a type, which can optionally include type arguments.
|
||||
///
|
||||
/// typeName ::=
|
||||
/// [Identifier] typeArguments? '?'?
|
||||
/// ignore: deprecated_member_use_from_same_package
|
||||
class NamedTypeImpl extends TypeAnnotationImpl implements TypeName {
|
||||
/// The name of the type.
|
||||
IdentifierImpl _name;
|
||||
|
||||
/// The type arguments associated with the type, or `null` if there are no
|
||||
/// type arguments.
|
||||
TypeArgumentListImpl? _typeArguments;
|
||||
|
||||
@override
|
||||
Token? question;
|
||||
|
||||
/// The type being named, or `null` if the AST structure has not been
|
||||
/// resolved, or if this is part of a [ConstructorReference].
|
||||
@override
|
||||
DartType? type;
|
||||
|
||||
/// Initialize a newly created type name. The [typeArguments] can be `null` if
|
||||
/// there are no type arguments.
|
||||
NamedTypeImpl(this._name, this._typeArguments, {this.question}) {
|
||||
_becomeParentOf(_name);
|
||||
_becomeParentOf(_typeArguments);
|
||||
}
|
||||
|
||||
@override
|
||||
Token get beginToken => _name.beginToken;
|
||||
|
||||
@override
|
||||
Iterable<SyntacticEntity> get childEntities => ChildEntities()
|
||||
..add(_name)
|
||||
..add(_typeArguments)
|
||||
..add(question);
|
||||
|
||||
@override
|
||||
Token get endToken => question ?? _typeArguments?.endToken ?? _name.endToken;
|
||||
|
||||
@override
|
||||
bool get isDeferred {
|
||||
Identifier identifier = name;
|
||||
if (identifier is! PrefixedIdentifier) {
|
||||
return false;
|
||||
}
|
||||
return identifier.isDeferred;
|
||||
}
|
||||
|
||||
@override
|
||||
bool get isSynthetic => _name.isSynthetic && _typeArguments == null;
|
||||
|
||||
@override
|
||||
IdentifierImpl get name => _name;
|
||||
|
||||
set name(Identifier identifier) {
|
||||
_name = _becomeParentOf(identifier as IdentifierImpl);
|
||||
}
|
||||
|
||||
@override
|
||||
TypeArgumentListImpl? get typeArguments => _typeArguments;
|
||||
|
||||
set typeArguments(TypeArgumentList? typeArguments) {
|
||||
_typeArguments = _becomeParentOf(typeArguments as TypeArgumentListImpl?);
|
||||
}
|
||||
|
||||
@override
|
||||
E? accept<E>(AstVisitor<E> visitor) => visitor.visitNamedType(this);
|
||||
|
||||
@override
|
||||
void visitChildren(AstVisitor visitor) {
|
||||
_name.accept(visitor);
|
||||
_typeArguments?.accept(visitor);
|
||||
}
|
||||
}
|
||||
|
||||
/// A node that represents a directive that impacts the namespace of a library.
|
||||
///
|
||||
/// directive ::=
|
||||
@@ -10215,7 +10291,7 @@ abstract class TypedLiteralImpl extends LiteralImpl implements TypedLiteral {
|
||||
/// always be the type `Type`). To see the type represented by the type literal
|
||||
/// use `.typeName.type`.
|
||||
class TypeLiteralImpl extends ExpressionImpl implements TypeLiteral {
|
||||
TypeNameImpl _typeName;
|
||||
NamedTypeImpl _typeName;
|
||||
|
||||
TypeLiteralImpl(this._typeName) {
|
||||
_becomeParentOf(_typeName);
|
||||
@@ -10237,13 +10313,13 @@ class TypeLiteralImpl extends ExpressionImpl implements TypeLiteral {
|
||||
: Precedence.postfix;
|
||||
|
||||
@override
|
||||
TypeNameImpl get type => _typeName;
|
||||
NamedTypeImpl get type => _typeName;
|
||||
|
||||
@Deprecated('Use namedType instead')
|
||||
@override
|
||||
TypeNameImpl get typeName => _typeName;
|
||||
NamedTypeImpl get typeName => _typeName;
|
||||
|
||||
set typeName(TypeNameImpl value) {
|
||||
set typeName(NamedTypeImpl value) {
|
||||
_typeName = _becomeParentOf(value);
|
||||
}
|
||||
|
||||
@@ -10256,82 +10332,6 @@ class TypeLiteralImpl extends ExpressionImpl implements TypeLiteral {
|
||||
}
|
||||
}
|
||||
|
||||
/// The name of a type, which can optionally include type arguments.
|
||||
///
|
||||
/// typeName ::=
|
||||
/// [Identifier] typeArguments? '?'?
|
||||
/// ignore: deprecated_member_use_from_same_package
|
||||
class TypeNameImpl extends TypeAnnotationImpl implements TypeName {
|
||||
/// The name of the type.
|
||||
IdentifierImpl _name;
|
||||
|
||||
/// The type arguments associated with the type, or `null` if there are no
|
||||
/// type arguments.
|
||||
TypeArgumentListImpl? _typeArguments;
|
||||
|
||||
@override
|
||||
Token? question;
|
||||
|
||||
/// The type being named, or `null` if the AST structure has not been
|
||||
/// resolved, or if this is part of a [ConstructorReference].
|
||||
@override
|
||||
DartType? type;
|
||||
|
||||
/// Initialize a newly created type name. The [typeArguments] can be `null` if
|
||||
/// there are no type arguments.
|
||||
TypeNameImpl(this._name, this._typeArguments, {this.question}) {
|
||||
_becomeParentOf(_name);
|
||||
_becomeParentOf(_typeArguments);
|
||||
}
|
||||
|
||||
@override
|
||||
Token get beginToken => _name.beginToken;
|
||||
|
||||
@override
|
||||
Iterable<SyntacticEntity> get childEntities => ChildEntities()
|
||||
..add(_name)
|
||||
..add(_typeArguments)
|
||||
..add(question);
|
||||
|
||||
@override
|
||||
Token get endToken => question ?? _typeArguments?.endToken ?? _name.endToken;
|
||||
|
||||
@override
|
||||
bool get isDeferred {
|
||||
Identifier identifier = name;
|
||||
if (identifier is! PrefixedIdentifier) {
|
||||
return false;
|
||||
}
|
||||
return identifier.isDeferred;
|
||||
}
|
||||
|
||||
@override
|
||||
bool get isSynthetic => _name.isSynthetic && _typeArguments == null;
|
||||
|
||||
@override
|
||||
IdentifierImpl get name => _name;
|
||||
|
||||
set name(Identifier identifier) {
|
||||
_name = _becomeParentOf(identifier as IdentifierImpl);
|
||||
}
|
||||
|
||||
@override
|
||||
TypeArgumentListImpl? get typeArguments => _typeArguments;
|
||||
|
||||
set typeArguments(TypeArgumentList? typeArguments) {
|
||||
_typeArguments = _becomeParentOf(typeArguments as TypeArgumentListImpl?);
|
||||
}
|
||||
|
||||
@override
|
||||
E? accept<E>(AstVisitor<E> visitor) => visitor.visitNamedType(this);
|
||||
|
||||
@override
|
||||
void visitChildren(AstVisitor visitor) {
|
||||
_name.accept(visitor);
|
||||
_typeArguments?.accept(visitor);
|
||||
}
|
||||
}
|
||||
|
||||
/// A type parameter.
|
||||
///
|
||||
/// typeParameter ::=
|
||||
|
||||
@@ -197,7 +197,7 @@ class AstFactoryImpl extends AstFactory {
|
||||
typeParameters as TypeParameterListImpl?,
|
||||
equals,
|
||||
abstractKeyword,
|
||||
superclass as TypeNameImpl,
|
||||
superclass as NamedTypeImpl,
|
||||
withClause as WithClauseImpl,
|
||||
implementsClause as ImplementsClauseImpl?,
|
||||
semicolon);
|
||||
@@ -298,7 +298,7 @@ class AstFactoryImpl extends AstFactory {
|
||||
ConstructorNameImpl constructorName(
|
||||
NamedType type, Token? period, SimpleIdentifier? name) =>
|
||||
ConstructorNameImpl(
|
||||
type as TypeNameImpl, period, name as SimpleIdentifierImpl?);
|
||||
type as NamedTypeImpl, period, name as SimpleIdentifierImpl?);
|
||||
|
||||
@override
|
||||
ConstructorReferenceImpl constructorReference(
|
||||
@@ -434,7 +434,7 @@ class AstFactoryImpl extends AstFactory {
|
||||
|
||||
@override
|
||||
ExtendsClauseImpl extendsClause(Token extendsKeyword, NamedType superclass) =>
|
||||
ExtendsClauseImpl(extendsKeyword, superclass as TypeNameImpl);
|
||||
ExtendsClauseImpl(extendsKeyword, superclass as NamedTypeImpl);
|
||||
|
||||
@override
|
||||
ExtensionDeclarationImpl extensionDeclaration(
|
||||
@@ -980,12 +980,12 @@ class AstFactoryImpl extends AstFactory {
|
||||
NamedExpressionImpl(name as LabelImpl, expression as ExpressionImpl);
|
||||
|
||||
@override
|
||||
TypeNameImpl namedType({
|
||||
NamedTypeImpl namedType({
|
||||
required Identifier name,
|
||||
TypeArgumentList? typeArguments,
|
||||
Token? question,
|
||||
}) =>
|
||||
TypeNameImpl(
|
||||
NamedTypeImpl(
|
||||
name as IdentifierImpl, typeArguments as TypeArgumentListImpl?,
|
||||
question: question);
|
||||
|
||||
@@ -1242,13 +1242,13 @@ class AstFactoryImpl extends AstFactory {
|
||||
|
||||
@override
|
||||
TypeLiteralImpl typeLiteral({required NamedType typeName}) =>
|
||||
TypeLiteralImpl(typeName as TypeNameImpl);
|
||||
TypeLiteralImpl(typeName as NamedTypeImpl);
|
||||
|
||||
@Deprecated('Use namedType() instead')
|
||||
@override
|
||||
TypeNameImpl typeName(Identifier name, TypeArgumentList? typeArguments,
|
||||
NamedTypeImpl typeName(Identifier name, TypeArgumentList? typeArguments,
|
||||
{Token? question}) =>
|
||||
TypeNameImpl(
|
||||
NamedTypeImpl(
|
||||
name as IdentifierImpl, typeArguments as TypeArgumentListImpl?,
|
||||
question: question);
|
||||
|
||||
|
||||
@@ -2534,7 +2534,7 @@ class NodeReplacer implements AstVisitor<bool> {
|
||||
}
|
||||
|
||||
@override
|
||||
bool? visitNamedType(covariant TypeNameImpl node) {
|
||||
bool? visitNamedType(covariant NamedTypeImpl node) {
|
||||
if (identical(node.name, _oldNode)) {
|
||||
node.name = _newNode as Identifier;
|
||||
return true;
|
||||
@@ -2864,14 +2864,14 @@ class NodeReplacer implements AstVisitor<bool> {
|
||||
@override
|
||||
bool visitTypeLiteral(covariant TypeLiteralImpl node) {
|
||||
if (identical(node.type, _oldNode)) {
|
||||
node.typeName = _newNode as TypeNameImpl;
|
||||
node.typeName = _newNode as NamedTypeImpl;
|
||||
return true;
|
||||
}
|
||||
return visitNode(node);
|
||||
}
|
||||
|
||||
@override
|
||||
bool visitTypeName(covariant TypeNameImpl node) {
|
||||
bool visitTypeName(covariant NamedTypeImpl node) {
|
||||
throw StateError('Should not be invoked');
|
||||
}
|
||||
|
||||
|
||||
@@ -74,7 +74,7 @@ class NamedTypeResolver {
|
||||
/// given [node] is resolved, all its children must be already resolved.
|
||||
///
|
||||
/// The client must set [nameScope] before calling [resolve].
|
||||
void resolve(TypeNameImpl node) {
|
||||
void resolve(NamedTypeImpl node) {
|
||||
rewriteResult = null;
|
||||
hasErrorReported = false;
|
||||
|
||||
@@ -283,7 +283,7 @@ class NamedTypeResolver {
|
||||
}
|
||||
}
|
||||
|
||||
void _resolveToElement(TypeNameImpl node, Element? element) {
|
||||
void _resolveToElement(NamedTypeImpl node, Element? element) {
|
||||
if (element == null) {
|
||||
node.type = dynamicType;
|
||||
if (!_libraryElement.shouldIgnoreUndefinedIdentifier(node.name)) {
|
||||
@@ -306,7 +306,7 @@ class NamedTypeResolver {
|
||||
/// will be a [PrefixElement]. But when we resolved the `prefix` it turned
|
||||
/// out to be a [ClassElement], so it is probably a `Class.constructor`.
|
||||
void _rewriteToConstructorName(
|
||||
TypeNameImpl node,
|
||||
NamedTypeImpl node,
|
||||
PrefixedIdentifier typeIdentifier,
|
||||
) {
|
||||
var constructorName = node.parent;
|
||||
|
||||
@@ -882,7 +882,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
}
|
||||
|
||||
@override
|
||||
void visitNamedType(covariant TypeNameImpl node) {
|
||||
void visitNamedType(covariant NamedTypeImpl node) {
|
||||
node.typeArguments?.accept(this);
|
||||
|
||||
_typeNameResolver.nameScope = _nameScope;
|
||||
@@ -1256,7 +1256,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
/// The flag [asClass] specifies if the type will be used as a class, so mixin
|
||||
/// declarations are not valid (they declare interfaces and mixins, but not
|
||||
/// classes).
|
||||
void _resolveType(TypeNameImpl namedType, ErrorCode errorCode,
|
||||
void _resolveType(NamedTypeImpl namedType, ErrorCode errorCode,
|
||||
{bool asClass = false}) {
|
||||
_typeNameResolver.classHierarchy_namedType = namedType;
|
||||
visitNamedType(namedType);
|
||||
@@ -1295,7 +1295,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
/// @return an array containing all of the types that were resolved.
|
||||
void _resolveTypes(NodeList<NamedType> namedTypes, ErrorCode errorCode) {
|
||||
for (var namedType in namedTypes) {
|
||||
_resolveType(namedType as TypeNameImpl, errorCode);
|
||||
_resolveType(namedType as NamedTypeImpl, errorCode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1305,7 +1305,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
for (var namedType in clause.mixinTypes2) {
|
||||
_typeNameResolver.withClause_namedType = namedType;
|
||||
_resolveType(
|
||||
namedType as TypeNameImpl,
|
||||
namedType as NamedTypeImpl,
|
||||
CompileTimeErrorCode.MIXIN_OF_NON_CLASS,
|
||||
);
|
||||
_typeNameResolver.withClause_namedType = null;
|
||||
|
||||
@@ -1427,7 +1427,7 @@ class AstTestFactory {
|
||||
///
|
||||
/// <b>Note:</b> This method does not correctly handle class elements that
|
||||
/// have type parameters.
|
||||
static TypeNameImpl typeName(ClassElement element,
|
||||
static NamedTypeImpl typeName(ClassElement element,
|
||||
[List<TypeAnnotation>? arguments]) {
|
||||
var name = identifier3(element.name);
|
||||
name.staticElement = element;
|
||||
@@ -1442,14 +1442,14 @@ class AstTestFactory {
|
||||
return typeName;
|
||||
}
|
||||
|
||||
static TypeNameImpl typeName3(Identifier name,
|
||||
static NamedTypeImpl typeName3(Identifier name,
|
||||
[List<TypeAnnotation>? arguments]) =>
|
||||
astFactory.namedType(
|
||||
name: name,
|
||||
typeArguments: typeArgumentList(arguments),
|
||||
);
|
||||
|
||||
static TypeNameImpl typeName4(String name,
|
||||
static NamedTypeImpl typeName4(String name,
|
||||
[List<TypeAnnotation>? arguments, bool question = false]) =>
|
||||
astFactory.namedType(
|
||||
name: identifier3(name),
|
||||
|
||||
@@ -91,7 +91,7 @@ class DefaultTypesBuilder {
|
||||
var boundNode = element.parameter.bound;
|
||||
if (boundNode is GenericFunctionTypeImpl) {
|
||||
boundNode.type = DynamicTypeImpl.instance;
|
||||
} else if (boundNode is TypeNameImpl) {
|
||||
} else if (boundNode is NamedTypeImpl) {
|
||||
boundNode.type = DynamicTypeImpl.instance;
|
||||
} else {
|
||||
throw UnimplementedError('(${boundNode.runtimeType}) $boundNode');
|
||||
@@ -108,7 +108,7 @@ class DefaultTypesBuilder {
|
||||
for (var parameter in typeParameters) {
|
||||
parameter as TypeParameterImpl;
|
||||
var boundNode = parameter.bound;
|
||||
if (boundNode is TypeNameImpl) {
|
||||
if (boundNode is NamedTypeImpl) {
|
||||
if (typeParametersByName == null) {
|
||||
typeParametersByName = {};
|
||||
for (var parameterNode in typeParameters) {
|
||||
|
||||
@@ -40,7 +40,7 @@ class NamedTypeBuilder extends TypeBuilder {
|
||||
/// The node for which this builder is created, or `null` if the builder
|
||||
/// was detached from its node, e.g. during computing default types for
|
||||
/// type parameters.
|
||||
final TypeNameImpl? node;
|
||||
final NamedTypeImpl? node;
|
||||
|
||||
/// The actual built type, not a [TypeBuilder] anymore.
|
||||
///
|
||||
@@ -55,7 +55,7 @@ class NamedTypeBuilder extends TypeBuilder {
|
||||
factory NamedTypeBuilder.of(
|
||||
Linker linker,
|
||||
TypeSystemImpl typeSystem,
|
||||
TypeNameImpl node,
|
||||
NamedTypeImpl node,
|
||||
Element element,
|
||||
NullabilitySuffix nullabilitySuffix,
|
||||
) {
|
||||
|
||||
@@ -311,7 +311,7 @@ class ReferenceResolver extends ThrowingAstVisitor<void> {
|
||||
}
|
||||
|
||||
@override
|
||||
void visitNamedType(covariant TypeNameImpl node) {
|
||||
void visitNamedType(covariant NamedTypeImpl node) {
|
||||
var typeIdentifier = node.name;
|
||||
|
||||
Element? element;
|
||||
|
||||
@@ -364,7 +364,7 @@ class _MixinInference {
|
||||
if (withClause == null) return;
|
||||
|
||||
for (var mixinNode in withClause.mixinTypes2) {
|
||||
var mixinType = _inferSingle(mixinNode as TypeNameImpl);
|
||||
var mixinType = _inferSingle(mixinNode as NamedTypeImpl);
|
||||
interfacesMerger.addWithSupertypes(mixinType);
|
||||
}
|
||||
}
|
||||
@@ -400,7 +400,7 @@ class _MixinInference {
|
||||
return result;
|
||||
}
|
||||
|
||||
InterfaceType _inferSingle(TypeNameImpl mixinNode) {
|
||||
InterfaceType _inferSingle(NamedTypeImpl mixinNode) {
|
||||
var mixinType = _interfaceType(mixinNode.typeOrThrow);
|
||||
|
||||
if (mixinNode.typeArguments != null) {
|
||||
|
||||
@@ -1231,7 +1231,7 @@ class _FixBuilderPreVisitor extends GeneralizingAstVisitor<void>
|
||||
_makeTypeNameNullable(node, decoratedType);
|
||||
}
|
||||
}
|
||||
(node as TypeNameImpl).type =
|
||||
(node as NamedTypeImpl).type =
|
||||
_fixBuilder._variables!.toFinalType(decoratedType);
|
||||
super.visitNamedType(node);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user