diff --git a/pkg/_js_interop_checks/lib/src/transformations/static_interop_mock_validator.dart b/pkg/_js_interop_checks/lib/src/transformations/static_interop_mock_validator.dart index 74df720a360..ba28564d768 100644 --- a/pkg/_js_interop_checks/lib/src/transformations/static_interop_mock_validator.dart +++ b/pkg/_js_interop_checks/lib/src/transformations/static_interop_mock_validator.dart @@ -238,7 +238,7 @@ class StaticInteropMockValidator { for (var extension in ExportChecker.libraryExtensionMap[library]!) { var onType = extension.onType as InterfaceType; staticInteropClassesWithExtensions - .putIfAbsent(onType.className, () => {}) + .putIfAbsent(onType.classReference, () => {}) .add(extension); } } diff --git a/pkg/compiler/lib/src/serialization/member_data.dart b/pkg/compiler/lib/src/serialization/member_data.dart index 1642253342c..fe65c82af46 100644 --- a/pkg/compiler/lib/src/serialization/member_data.dart +++ b/pkg/compiler/lib/src/serialization/member_data.dart @@ -35,8 +35,8 @@ String computeMemberName(ir.Member member) { // This should mostly be empty except when serializing the name of nSM // forwarders (see dartbug.com/33732). String libraryPrefix = member.name.isPrivate && - member.name.libraryName != member.enclosingLibrary.reference - ? '${member.name.libraryName?.canonicalName?.name}:' + member.name.libraryReference != member.enclosingLibrary.reference + ? '${member.name.libraryReference?.canonicalName?.name}:' : ''; String name = member.name.text; if (member is ir.Constructor) { diff --git a/pkg/dart2wasm/lib/js/util.dart b/pkg/dart2wasm/lib/js/util.dart index 3f938cd362f..d54acec2132 100644 --- a/pkg/dart2wasm/lib/js/util.dart +++ b/pkg/dart2wasm/lib/js/util.dart @@ -162,7 +162,7 @@ extension DartTypeExtension on DartType { bool get isStaticInteropType { final type = this; return (type is InterfaceType && - hasStaticInteropAnnotation(type.className.asClass)) || + hasStaticInteropAnnotation(type.classReference.asClass)) || (type is InlineType && hasJSInteropAnnotation(type.inlineClass)); } } diff --git a/pkg/dart2wasm/lib/transformers.dart b/pkg/dart2wasm/lib/transformers.dart index 2634dc76567..4548896da7c 100644 --- a/pkg/dart2wasm/lib/transformers.dart +++ b/pkg/dart2wasm/lib/transformers.dart @@ -650,7 +650,7 @@ class _WasmTransformer extends Transformer { if (isYieldStar) { DartType awaitVarType = const DynamicType(); if (yieldExpressionType is InterfaceType) { - Class cls = yieldExpressionType.className.asClass; + Class cls = yieldExpressionType.classReference.asClass; if (cls == coreTypes.streamClass) { awaitVarType = yieldExpressionType.typeArguments.single; } diff --git a/pkg/front_end/lib/src/fasta/builder/class_builder.dart b/pkg/front_end/lib/src/fasta/builder/class_builder.dart index 54bd8bcb7ac..f97a3eeac1c 100644 --- a/pkg/front_end/lib/src/fasta/builder/class_builder.dart +++ b/pkg/front_end/lib/src/fasta/builder/class_builder.dart @@ -345,13 +345,13 @@ abstract class ClassBuilderImpl extends DeclarationBuilderImpl } else { if (aliasedTypeWithBuiltArgumentsCacheNonNullable != null && nullability == Nullability.nonNullable) { - assert(aliasedTypeWithBuiltArgumentsCacheNonNullable!.className == + assert(aliasedTypeWithBuiltArgumentsCacheNonNullable!.classReference == cls.reference); assert(arguments.isEmpty); return aliasedTypeWithBuiltArgumentsCacheNonNullable!; } else if (aliasedTypeWithBuiltArgumentsCacheNullable != null && nullability == Nullability.nullable) { - assert(aliasedTypeWithBuiltArgumentsCacheNullable!.className == + assert(aliasedTypeWithBuiltArgumentsCacheNullable!.classReference == cls.reference); assert(arguments.isEmpty); return aliasedTypeWithBuiltArgumentsCacheNullable!; diff --git a/pkg/front_end/lib/src/fasta/kernel/hierarchy/hierarchy_builder.dart b/pkg/front_end/lib/src/fasta/kernel/hierarchy/hierarchy_builder.dart index 74ef91271df..0ada782ae7b 100644 --- a/pkg/front_end/lib/src/fasta/kernel/hierarchy/hierarchy_builder.dart +++ b/pkg/front_end/lib/src/fasta/kernel/hierarchy/hierarchy_builder.dart @@ -114,7 +114,7 @@ class ClassHierarchyBuilder @override List? getTypeArgumentsAsInstanceOf( InterfaceType type, Class superclass) { - if (type.className == superclass.reference) return type.typeArguments; + if (type.classReference == superclass.reference) return type.typeArguments; return asSupertypeOf(type, superclass)?.typeArguments; } diff --git a/pkg/front_end/lib/src/fasta/type_inference/inference_visitor_base.dart b/pkg/front_end/lib/src/fasta/type_inference/inference_visitor_base.dart index b216fd84a0e..2999ef12f9a 100644 --- a/pkg/front_end/lib/src/fasta/type_inference/inference_visitor_base.dart +++ b/pkg/front_end/lib/src/fasta/type_inference/inference_visitor_base.dart @@ -393,7 +393,7 @@ abstract class InferenceVisitorBase implements InferenceVisitor { typeContext = type.typeArgument; } return typeContext is InterfaceType && - typeContext.className == coreTypes.doubleClass.reference; + typeContext.classReference == coreTypes.doubleClass.reference; } bool isAssignable(DartType contextType, DartType expressionType) => @@ -3999,7 +3999,7 @@ abstract class InferenceVisitorBase implements InferenceVisitor { } if (contextType is FunctionType) return true; if (contextType is InterfaceType && - contextType.className == + contextType.classReference == typeSchemaEnvironment.functionClass.reference) { if (!typeSchemaEnvironment.isSubtypeOf(expressionType, contextType, SubtypeCheckMode.ignoringNullabilities)) { @@ -4015,7 +4015,7 @@ abstract class InferenceVisitorBase implements InferenceVisitor { } if (contextType is FunctionType) return true; if (contextType is InterfaceType && - contextType.className == + contextType.classReference == typeSchemaEnvironment.functionClass.reference) { return true; } diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_schema_environment.dart b/pkg/front_end/lib/src/fasta/type_inference/type_schema_environment.dart index 8e676b2732f..928976286d6 100644 --- a/pkg/front_end/lib/src/fasta/type_inference/type_schema_environment.dart +++ b/pkg/front_end/lib/src/fasta/type_inference/type_schema_environment.dart @@ -240,7 +240,7 @@ class TypeSchemaEnvironment extends HierarchyBasedTypeEnvironment // other way. DartType bound = parameter.bound; return bound is InterfaceType && - identical(bound.className, coreTypes.objectClass.reference) && + identical(bound.classReference, coreTypes.objectClass.reference) && parameter.defaultType is DynamicType; } diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart index 8b1daff278c..ccd78974b56 100644 --- a/pkg/kernel/lib/ast.dart +++ b/pkg/kernel/lib/ast.dart @@ -11012,7 +11012,7 @@ class Catch extends TreeNode { return true; } if (type is InterfaceType && - type.className.node != null && + type.classReference.node != null && type.classNode.name == 'Object') { Uri uri = type.classNode.enclosingLibrary.importUri; return uri.isScheme('dart') && @@ -11591,7 +11591,7 @@ abstract class Name extends Node { final int hashCode; final String text; - Reference? get libraryName; + Reference? get libraryReference; Library? get library; bool get isPrivate; @@ -11648,14 +11648,14 @@ abstract class Name extends Node { class _PrivateName extends Name { @override - final Reference libraryName; + final Reference libraryReference; @override bool get isPrivate => true; - _PrivateName(String text, Reference libraryName) - : this.libraryName = libraryName, - super._internal(_computeHashCode(text, libraryName), text); + _PrivateName(String text, Reference libraryReference) + : this.libraryReference = libraryReference, + super._internal(_computeHashCode(text, libraryReference), text); @override String toString() => toStringInternal(); @@ -11666,19 +11666,20 @@ class _PrivateName extends Name { library != null ? '$library::$text' : text; @override - Library get library => libraryName.asLibrary; + Library get library => libraryReference.asLibrary; - static int _computeHashCode(String name, Reference libraryName) { - // TODO(cstefantsova): Factor in [libraryName] in a non-deterministic way - // into the result. Note, the previous code here was the following: - // return 131 * name.hashCode + 17 * libraryName.asLibrary._libraryId; + static int _computeHashCode(String name, Reference libraryReference) { + // TODO(cstefantsova): Factor in [libraryReference] in a non-deterministic + // way into the result. Note, the previous code here was the following: + // return 131 * name.hashCode + 17 * + // libraryReference.asLibrary._libraryId; return name.hashCode; } } class _PublicName extends Name { @override - Reference? get libraryName => null; + Reference? get libraryReference => null; @override Library? get library => null; @@ -12102,7 +12103,7 @@ class NullType extends DartType { } class InterfaceType extends DartType { - final Reference className; + final Reference classReference; @override final Nullability declaredNullability; @@ -12117,11 +12118,11 @@ class InterfaceType extends DartType { typeArguments ?? _defaultTypeArguments(classNode)); InterfaceType.byReference( - this.className, this.declaredNullability, this.typeArguments) + this.classReference, this.declaredNullability, this.typeArguments) // ignore: unnecessary_null_comparison : assert(declaredNullability != null); - Class get classNode => className.asClass; + Class get classNode => classReference.asClass; @override Nullability get nullability => declaredNullability; @@ -12160,7 +12161,7 @@ class InterfaceType extends DartType { if (identical(this, other)) return true; if (other is InterfaceType) { if (nullability != other.nullability) return false; - if (className != other.className) return false; + if (classReference != other.classReference) return false; if (typeArguments.length != other.typeArguments.length) return false; for (int i = 0; i < typeArguments.length; ++i) { if (!typeArguments[i].equals(other.typeArguments[i], assumptions)) { @@ -12175,7 +12176,7 @@ class InterfaceType extends DartType { @override int get hashCode { - int hash = 0x3fffffff & className.hashCode; + int hash = 0x3fffffff & classReference.hashCode; for (int i = 0; i < typeArguments.length; ++i) { hash = 0x3fffffff & (hash * 31 + (hash ^ typeArguments[i].hashCode)); } @@ -12189,7 +12190,7 @@ class InterfaceType extends DartType { return declaredNullability == this.declaredNullability ? this : new InterfaceType.byReference( - className, declaredNullability, typeArguments); + classReference, declaredNullability, typeArguments); } @override @@ -12199,7 +12200,7 @@ class InterfaceType extends DartType { @override void toTextInternal(AstPrinter printer) { - printer.writeClassName(className, forType: true); + printer.writeClassName(classReference, forType: true); printer.writeTypeArguments(typeArguments); printer.writeNullability(declaredNullability); } @@ -12643,8 +12644,8 @@ class ExtensionType extends DartType { } static DartType _computeOnType( - Reference extensionName, List typeArguments) { - Extension extensionNode = extensionName.asExtension; + Reference extensionReference, List typeArguments) { + Extension extensionNode = extensionReference.asExtension; if (extensionNode.typeParameters.isEmpty) { return extensionNode.onType; } else { diff --git a/pkg/kernel/lib/binary/ast_from_binary.dart b/pkg/kernel/lib/binary/ast_from_binary.dart index 208ecd98b38..1829f79d05f 100644 --- a/pkg/kernel/lib/binary/ast_from_binary.dart +++ b/pkg/kernel/lib/binary/ast_from_binary.dart @@ -3724,7 +3724,7 @@ class BinaryBuilder { "In serialized form supertypes should have Nullability.legacy if they " "are in a library that is opted out of the NNBD feature. If they are " "in an opted-in library, they should have Nullability.nonNullable."); - return new Supertype.byReference(type.className, type.typeArguments); + return new Supertype.byReference(type.classReference, type.typeArguments); } Supertype? readSupertypeOption() { @@ -4356,7 +4356,7 @@ class BinaryBuilderWithMetadata extends BinaryBuilder implements BinarySource { InterfaceType type = super.readDartType(forSupertype: true) as InterfaceType; return _associateMetadata( - new Supertype.byReference(type.className, type.typeArguments), + new Supertype.byReference(type.classReference, type.typeArguments), nodeOffset); } diff --git a/pkg/kernel/lib/binary/ast_to_binary.dart b/pkg/kernel/lib/binary/ast_to_binary.dart index a3cc68766a9..2e348c7e534 100644 --- a/pkg/kernel/lib/binary/ast_to_binary.dart +++ b/pkg/kernel/lib/binary/ast_to_binary.dart @@ -2451,11 +2451,11 @@ class BinaryPrinter implements Visitor, BinarySink { if (node.typeArguments.isEmpty) { writeByte(Tag.SimpleInterfaceType); writeByte(node.nullability.index); - writeNonNullReference(node.className); + writeNonNullReference(node.classReference); } else { writeByte(Tag.InterfaceType); writeByte(node.nullability.index); - writeNonNullReference(node.className); + writeNonNullReference(node.classReference); writeNodeList(node.typeArguments); } } diff --git a/pkg/kernel/lib/class_hierarchy.dart b/pkg/kernel/lib/class_hierarchy.dart index bb41c653e66..9e47f49530b 100644 --- a/pkg/kernel/lib/class_hierarchy.dart +++ b/pkg/kernel/lib/class_hierarchy.dart @@ -842,7 +842,7 @@ class ClosedWorldClassHierarchy @override List? getTypeArgumentsAsInstanceOf( InterfaceType type, Class superclass) { - if (type.className == superclass.reference) { + if (type.classReference == superclass.reference) { // TODO(johnniwinther): This is necessary because [getClassAsInstanceOf] // returns a [Supertype] whose type arguments are type parameter types // whose nullability is set to the default nullability of the diff --git a/pkg/kernel/lib/src/bounds_checks.dart b/pkg/kernel/lib/src/bounds_checks.dart index 331d0eae854..691cedfc9ae 100644 --- a/pkg/kernel/lib/src/bounds_checks.dart +++ b/pkg/kernel/lib/src/bounds_checks.dart @@ -173,7 +173,7 @@ DartType instantiateToBounds(DartType type, Class objectClass, } } return new InterfaceType.byReference( - type.className, + type.classReference, type.nullability, calculateBounds(type.classNode.typeParameters, objectClass, isNonNullableByDefault: isNonNullableByDefault)); @@ -223,7 +223,7 @@ List calculateBoundsInternal( ? const NeverType.nonNullable() : const DynamicType(); } else if (bound is InterfaceType && - bound.className == objectClass.reference) { + bound.classReference == objectClass.reference) { DartType defaultType = typeParameters[i].defaultType; if (!(defaultType is InterfaceType && defaultType.classNode == objectClass)) { diff --git a/pkg/kernel/lib/src/equivalence.dart b/pkg/kernel/lib/src/equivalence.dart index 9e2d3d1378c..dd6bbc25dd2 100644 --- a/pkg/kernel/lib/src/equivalence.dart +++ b/pkg/kernel/lib/src/equivalence.dart @@ -5225,7 +5225,7 @@ class EquivalenceStrategy { if (other is! InterfaceType) return false; visitor.pushNodeState(node, other); bool result = true; - if (!checkInterfaceType_className(visitor, node, other)) { + if (!checkInterfaceType_classReference(visitor, node, other)) { result = visitor.resultOnInequivalence; } if (!checkInterfaceType_declaredNullability(visitor, node, other)) { @@ -9393,10 +9393,10 @@ class EquivalenceStrategy { other.declaredNullability, 'declaredNullability'); } - bool checkInterfaceType_className( + bool checkInterfaceType_classReference( EquivalenceVisitor visitor, InterfaceType node, InterfaceType other) { return visitor.checkReferences( - node.className, other.className, 'className'); + node.classReference, other.classReference, 'classReference'); } bool checkInterfaceType_declaredNullability( diff --git a/pkg/kernel/lib/src/equivalence_helpers.dart b/pkg/kernel/lib/src/equivalence_helpers.dart index 7ea65b5c84b..910b3056d55 100644 --- a/pkg/kernel/lib/src/equivalence_helpers.dart +++ b/pkg/kernel/lib/src/equivalence_helpers.dart @@ -283,7 +283,7 @@ class ReferenceName { parent: new ReferenceName.fromNamedNode(node.enclosingLibrary)); } else if (node is Member) { TreeNode? parent = node.parent; - Reference? libraryReference = node.name.libraryName; + Reference? libraryReference = node.name.libraryReference; String? uri; if (libraryReference != null) { diff --git a/pkg/kernel/lib/src/printer.dart b/pkg/kernel/lib/src/printer.dart index a8aca24d69a..aa929a37ef0 100644 --- a/pkg/kernel/lib/src/printer.dart +++ b/pkg/kernel/lib/src/printer.dart @@ -305,7 +305,7 @@ class AstPrinter { bool isTopObject(DartType type) { if (type is InterfaceType && - type.className.node != null && + type.classReference.node != null && type.classNode.name == 'Object') { Uri uri = type.classNode.enclosingLibrary.importUri; return uri.isScheme('dart') && diff --git a/pkg/kernel/lib/src/replacement_visitor.dart b/pkg/kernel/lib/src/replacement_visitor.dart index 2ac3911aa9c..8dac5d8b9aa 100644 --- a/pkg/kernel/lib/src/replacement_visitor.dart +++ b/pkg/kernel/lib/src/replacement_visitor.dart @@ -181,7 +181,7 @@ class ReplacementVisitor implements DartTypeVisitor1 { return null; } else { return new InterfaceType.byReference( - node.className, + node.classReference, newNullability ?? node.nullability, newTypeArguments ?? node.typeArguments); } diff --git a/pkg/kernel/lib/src/types.dart b/pkg/kernel/lib/src/types.dart index 2cd33ea68f3..06c1f2090a9 100644 --- a/pkg/kernel/lib/src/types.dart +++ b/pkg/kernel/lib/src/types.dart @@ -92,7 +92,7 @@ class Types with StandardBounds { } if (t is InterfaceType) { - if (t.className == hierarchy.coreTypes.objectClass.reference && + if (t.classReference == hierarchy.coreTypes.objectClass.reference && s is! FutureOrType) { return new IsSubtypeOf.basedSolelyOnNullabilities(s, t); } @@ -474,7 +474,7 @@ class IsInterfaceSubtypeOf extends TypeRelation { IsSubtypeOf isInterfaceRelated( InterfaceType s, InterfaceType t, Types types) { List? asSupertypeArguments; - if (s.className == t.className) { + if (s.classReference == t.classReference) { asSupertypeArguments = s.typeArguments; } else { asSupertypeArguments = diff --git a/pkg/kernel/lib/testing/type_parser_environment.dart b/pkg/kernel/lib/testing/type_parser_environment.dart index 86ba8b715f1..502f5daff58 100644 --- a/pkg/kernel/lib/testing/type_parser_environment.dart +++ b/pkg/kernel/lib/testing/type_parser_environment.dart @@ -492,7 +492,7 @@ class _KernelFromParsedType implements Visitor { } Supertype toSupertype(InterfaceType type) { - return new Supertype.byReference(type.className, type.typeArguments); + return new Supertype.byReference(type.classReference, type.typeArguments); } ParameterEnvironment computeTypeParameterEnvironment( diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart index 99769f0f700..067933bc9d5 100644 --- a/pkg/kernel/lib/text/ast_to_text.dart +++ b/pkg/kernel/lib/text/ast_to_text.dart @@ -2771,7 +2771,7 @@ class Printer extends Visitor with VisitorVoidMixin { @override void visitInterfaceType(InterfaceType node) { - writeClassReferenceFromReference(node.className); + writeClassReferenceFromReference(node.classReference); if (node.typeArguments.isNotEmpty) { writeSymbol('<'); writeList(node.typeArguments, writeType); diff --git a/pkg/kernel/lib/type_algebra.dart b/pkg/kernel/lib/type_algebra.dart index 96d180debf7..c816a925bb3 100644 --- a/pkg/kernel/lib/type_algebra.dart +++ b/pkg/kernel/lib/type_algebra.dart @@ -728,7 +728,7 @@ abstract class _TypeSubstitutor implements DartTypeVisitor { List typeArguments = node.typeArguments.map(visit).toList(); if (useCounter == before) return node; return new InterfaceType.byReference( - node.className, node.nullability, typeArguments); + node.classReference, node.nullability, typeArguments); } @override