[kernel] Rename InterfaceType.className to classReference

+ Name.libraryName -> libraryReference

Change-Id: I25b5022ea87f92fb5837f03d29f1671f0e68261b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/304740
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
This commit is contained in:
Johnni Winther
2023-06-01 06:43:46 +00:00
committed by Commit Queue
parent 8ea3e9fd0d
commit 5476e3bd6e
21 changed files with 52 additions and 51 deletions
@@ -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);
}
}
@@ -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) {
+1 -1
View File
@@ -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));
}
}
+1 -1
View File
@@ -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;
}
@@ -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!;
@@ -114,7 +114,7 @@ class ClassHierarchyBuilder
@override
List<DartType>? 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;
}
@@ -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;
}
@@ -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;
}
+22 -21
View File
@@ -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<DartType> typeArguments) {
Extension extensionNode = extensionName.asExtension;
Reference extensionReference, List<DartType> typeArguments) {
Extension extensionNode = extensionReference.asExtension;
if (extensionNode.typeParameters.isEmpty) {
return extensionNode.onType;
} else {
+2 -2
View File
@@ -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);
}
+2 -2
View File
@@ -2451,11 +2451,11 @@ class BinaryPrinter implements Visitor<void>, 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);
}
}
+1 -1
View File
@@ -842,7 +842,7 @@ class ClosedWorldClassHierarchy
@override
List<DartType>? 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
+2 -2
View File
@@ -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<DartType> 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)) {
+3 -3
View File
@@ -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(
+1 -1
View File
@@ -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) {
+1 -1
View File
@@ -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') &&
+1 -1
View File
@@ -181,7 +181,7 @@ class ReplacementVisitor implements DartTypeVisitor1<DartType?, int> {
return null;
} else {
return new InterfaceType.byReference(
node.className,
node.classReference,
newNullability ?? node.nullability,
newTypeArguments ?? node.typeArguments);
}
+2 -2
View File
@@ -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<InterfaceType> {
IsSubtypeOf isInterfaceRelated(
InterfaceType s, InterfaceType t, Types types) {
List<DartType>? asSupertypeArguments;
if (s.className == t.className) {
if (s.classReference == t.classReference) {
asSupertypeArguments = s.typeArguments;
} else {
asSupertypeArguments =
@@ -492,7 +492,7 @@ class _KernelFromParsedType implements Visitor<Node, TypeParserEnvironment> {
}
Supertype toSupertype(InterfaceType type) {
return new Supertype.byReference(type.className, type.typeArguments);
return new Supertype.byReference(type.classReference, type.typeArguments);
}
ParameterEnvironment computeTypeParameterEnvironment(
+1 -1
View File
@@ -2771,7 +2771,7 @@ class Printer extends Visitor<void> with VisitorVoidMixin {
@override
void visitInterfaceType(InterfaceType node) {
writeClassReferenceFromReference(node.className);
writeClassReferenceFromReference(node.classReference);
if (node.typeArguments.isNotEmpty) {
writeSymbol('<');
writeList(node.typeArguments, writeType);
+1 -1
View File
@@ -728,7 +728,7 @@ abstract class _TypeSubstitutor implements DartTypeVisitor<DartType> {
List<DartType> 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