Skip to content

Commit 1681241

Browse files
johnniwinthercommit-bot@chromium.org
authored andcommitted
Remove _ClassEnsurer
This is no longer needed since we eagerly register all classes with the ClassHierarchyBuilder Change-Id: Ifaa27017bac6a7b0a659de83af415f2bd25ea005 Reviewed-on: https://dart-review.googlesource.com/75260 Reviewed-by: Stephen Adams <[email protected]>
1 parent a5b7181 commit 1681241

File tree

1 file changed

+1
-71
lines changed

1 file changed

+1
-71
lines changed

pkg/compiler/lib/src/ssa/kernel_impact.dart

Lines changed: 1 addition & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,11 @@ class KernelImpactBuilder extends ir.Visitor {
4848
final DiagnosticReporter reporter;
4949
final CompilerOptions _options;
5050
final MemberEntity currentMember;
51-
_ClassEnsurer classEnsurer;
5251

5352
KernelImpactBuilder(
5453
this.elementMap, this.currentMember, this.reporter, this._options)
5554
: this.impactBuilder =
56-
new ResolutionWorldImpactBuilder('${currentMember}') {
57-
this.classEnsurer = new _ClassEnsurer(this, this.elementMap.types);
58-
}
55+
new ResolutionWorldImpactBuilder('${currentMember}');
5956

6057
CommonElements get commonElements => elementMap.commonElements;
6158

@@ -79,23 +76,16 @@ class KernelImpactBuilder extends ir.Visitor {
7976
return type;
8077
}
8178

82-
void registerSeenClasses(ir.DartType irType) {
83-
DartType type = elementMap.getDartType(irType);
84-
classEnsurer.ensureClassesInType(type);
85-
}
86-
8779
/// Add checked-mode type use for the parameter type and constant for the
8880
/// default value of [parameter].
8981
void handleParameter(ir.VariableDeclaration parameter) {
9082
checkType(parameter.type, TypeUseKind.PARAMETER_CHECK);
91-
registerSeenClasses(parameter.type);
9283
visitNode(parameter.initializer);
9384
}
9485

9586
/// Add checked-mode type use for parameter and return types, and add
9687
/// constants for default values.
9788
void handleSignature(ir.FunctionNode node) {
98-
registerSeenClasses(node.returnType);
9989
node.positionalParameters.forEach(handleParameter);
10090
node.namedParameters.forEach(handleParameter);
10191
for (ir.TypeParameter parameter in node.typeParameters) {
@@ -105,7 +95,6 @@ class KernelImpactBuilder extends ir.Visitor {
10595

10696
ResolutionImpact buildField(ir.Field field) {
10797
checkType(field.type, TypeUseKind.PARAMETER_CHECK);
108-
registerSeenClasses(field.type);
10998
if (field.initializer != null) {
11099
visitNode(field.initializer);
111100
if (!field.isInstanceMember &&
@@ -261,7 +250,6 @@ class KernelImpactBuilder extends ir.Visitor {
261250
void visitListLiteral(ir.ListLiteral literal) {
262251
visitNodes(literal.expressions);
263252
DartType elementType = elementMap.getDartType(literal.typeArgument);
264-
registerSeenClasses(literal.typeArgument);
265253

266254
impactBuilder.registerListLiteral(new ListLiteralUse(
267255
commonElements.listType(elementType),
@@ -274,8 +262,6 @@ class KernelImpactBuilder extends ir.Visitor {
274262
visitNodes(literal.entries);
275263
DartType keyType = elementMap.getDartType(literal.keyType);
276264
DartType valueType = elementMap.getDartType(literal.valueType);
277-
registerSeenClasses(literal.keyType);
278-
registerSeenClasses(literal.valueType);
279265
impactBuilder.registerMapLiteral(new MapLiteralUse(
280266
commonElements.mapType(keyType, valueType),
281267
isConstant: literal.isConst,
@@ -326,7 +312,6 @@ class KernelImpactBuilder extends ir.Visitor {
326312

327313
InterfaceType type = elementMap.createInterfaceType(
328314
target.enclosingClass, node.arguments.types);
329-
classEnsurer.ensureClassesInType(type);
330315
CallStructure callStructure = elementMap.getCallStructure(node.arguments);
331316
impactBuilder.registerStaticUse(isConst
332317
? new StaticUse.constConstructorInvoke(constructor, callStructure, type)
@@ -456,7 +441,6 @@ class KernelImpactBuilder extends ir.Visitor {
456441
@override
457442
void visitStaticGet(ir.StaticGet node) {
458443
ir.Member target = node.target;
459-
registerSeenClasses(target.getterType);
460444
if (target is ir.Procedure && target.kind == ir.ProcedureKind.Method) {
461445
FunctionEntity method = elementMap.getMethod(target);
462446
impactBuilder.registerStaticUse(new StaticUse.staticTearOff(method));
@@ -470,7 +454,6 @@ class KernelImpactBuilder extends ir.Visitor {
470454
void visitStaticSet(ir.StaticSet node) {
471455
visitNode(node.value);
472456
MemberEntity member = elementMap.getMember(node.target);
473-
registerSeenClasses(node.target.setterType);
474457
impactBuilder.registerStaticUse(new StaticUse.staticSet(member));
475458
}
476459

@@ -739,7 +722,6 @@ class KernelImpactBuilder extends ir.Visitor {
739722

740723
@override
741724
void visitVariableDeclaration(ir.VariableDeclaration node) {
742-
registerSeenClasses(node.type);
743725
if (node.initializer != null) {
744726
visitNode(node.initializer);
745727
} else {
@@ -751,7 +733,6 @@ class KernelImpactBuilder extends ir.Visitor {
751733
void visitIsExpression(ir.IsExpression node) {
752734
impactBuilder.registerTypeUse(
753735
new TypeUse.isCheck(elementMap.getDartType(node.type)));
754-
registerSeenClasses(node.type);
755736
visitNode(node.operand);
756737
}
757738

@@ -763,7 +744,6 @@ class KernelImpactBuilder extends ir.Visitor {
763744
} else {
764745
impactBuilder.registerTypeUse(new TypeUse.asCast(type));
765746
}
766-
registerSeenClasses(node.type);
767747
visitNode(node.operand);
768748
}
769749

@@ -856,53 +836,3 @@ class KernelImpactBuilder extends ir.Visitor {
856836
@override
857837
void defaultNode(ir.Node node) => node.visitChildren(this);
858838
}
859-
860-
class _ClassEnsurer extends BaseDartTypeVisitor<dynamic, Null> {
861-
final KernelImpactBuilder builder;
862-
final DartTypes types;
863-
final seenTypes = new Set<InterfaceType>();
864-
865-
_ClassEnsurer(this.builder, this.types);
866-
867-
void ensureClassesInType(DartType type) {
868-
seenTypes.clear();
869-
type.accept(this, null);
870-
}
871-
872-
@override
873-
visitType(DartType type, _) {}
874-
875-
@override
876-
visitFunctionType(FunctionType type, _) {
877-
type.returnType.accept(this, null);
878-
type.parameterTypes.forEach((t) {
879-
t.accept(this, null);
880-
});
881-
type.optionalParameterTypes.forEach((t) {
882-
t.accept(this, null);
883-
});
884-
type.namedParameterTypes.forEach((t) {
885-
t.accept(this, null);
886-
});
887-
}
888-
889-
@override
890-
visitInterfaceType(InterfaceType type, _) {
891-
if (!seenTypes.add(type)) {
892-
return;
893-
}
894-
builder.impactBuilder.registerSeenClass(type.element);
895-
type.typeArguments.forEach((t) {
896-
t.accept(this, null);
897-
});
898-
var supertype = types.getSupertype(type.element);
899-
supertype?.accept(this, null);
900-
}
901-
902-
@override
903-
visitTypedefType(TypedefType type, _) {
904-
type.typeArguments.forEach((t) {
905-
t.accept(this, null);
906-
});
907-
}
908-
}

0 commit comments

Comments
 (0)