Skip to content

Commit 16cfb6c

Browse files
Remove TypeInferrerDisabled
Change-Id: I9ff7f3723c3acb05bc2649cda47b8c516f6523d9 Reviewed-on: https://dart-review.googlesource.com/c/85760 Auto-Submit: Peter von der Ahé <[email protected]> Commit-Queue: Dmitry Stefantsov <[email protected]> Reviewed-by: Dmitry Stefantsov <[email protected]>
1 parent f9ee5da commit 16cfb6c

File tree

7 files changed

+28
-83
lines changed

7 files changed

+28
-83
lines changed

pkg/front_end/lib/src/fasta/kernel/body_builder.dart

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
535535
// Error reporting and recovery is handled elsewhere.
536536
} else {
537537
field.initializer = initializer;
538-
_typeInferrer.inferFieldInitializer(
538+
_typeInferrer?.inferFieldInitializer(
539539
this,
540540
field.hasTypeInferredFromInitializer ? null : field.builtType,
541541
initializer);
@@ -554,7 +554,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
554554
}
555555
List<Expression> annotations = pop();
556556
if (annotations != null) {
557-
_typeInferrer.inferMetadata(this, annotations);
557+
_typeInferrer?.inferMetadata(this, annotations);
558558
Field field = fields.first.target;
559559
// The first (and often only field) will not get a clone.
560560
for (int i = 0; i < annotations.length; i++) {
@@ -684,7 +684,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
684684
}
685685
initializer = buildInvalidInitializer(node, token.charOffset);
686686
}
687-
_typeInferrer.inferInitializer(this, initializer);
687+
_typeInferrer?.inferInitializer(this, initializer);
688688
if (member is KernelConstructorBuilder && !member.isExternal) {
689689
member.addInitializer(initializer, this);
690690
} else {
@@ -709,7 +709,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
709709
void finishFunction(List<Expression> annotations, FormalParameters formals,
710710
AsyncMarker asyncModifier, Statement body) {
711711
debugEvent("finishFunction");
712-
typePromoter.finished();
712+
typePromoter?.finished();
713713

714714
KernelFunctionBuilder builder = member;
715715
if (formals?.parameters != null) {
@@ -723,13 +723,13 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
723723
// https://github.com/dart-lang/sdk/issues/32289
724724
null);
725725
realParameter.initializer = initializer..parent = realParameter;
726-
_typeInferrer.inferParameterInitializer(
726+
_typeInferrer?.inferParameterInitializer(
727727
this, initializer, realParameter.type);
728728
}
729729
}
730730
}
731731

732-
_typeInferrer.inferFunctionBody(
732+
_typeInferrer?.inferFunctionBody(
733733
this, _computeReturnTypeContext(member), asyncModifier, body);
734734

735735
// For async, async*, and sync* functions with declared return types, we
@@ -832,7 +832,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
832832
}
833833
}
834834
Member target = builder.target;
835-
_typeInferrer.inferMetadata(this, annotations);
835+
_typeInferrer?.inferMetadata(this, annotations);
836836
for (Expression annotation in annotations ?? const []) {
837837
target.addAnnotation(annotation);
838838
}
@@ -971,7 +971,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
971971
@override
972972
List<Expression> finishMetadata(TreeNode parent) {
973973
List<Expression> expressions = pop();
974-
_typeInferrer.inferMetadata(this, expressions);
974+
_typeInferrer?.inferMetadata(this, expressions);
975975

976976
// The invocation of [resolveRedirectingFactoryTargets] below may change the
977977
// root nodes of the annotation expressions. We need to have a parent of
@@ -1061,7 +1061,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
10611061

10621062
ReturnJudgment fakeReturn = new ReturnJudgment(null, expression);
10631063

1064-
_typeInferrer.inferFunctionBody(
1064+
_typeInferrer?.inferFunctionBody(
10651065
this, const DynamicType(), AsyncMarker.Sync, fakeReturn);
10661066

10671067
return fakeReturn.expression;
@@ -1287,7 +1287,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
12871287
void beginBinaryExpression(Token token) {
12881288
if (optional("&&", token) || optional("||", token)) {
12891289
Expression lhs = popForValue();
1290-
typePromoter.enterLogicalExpression(lhs, token.stringValue);
1290+
typePromoter?.enterLogicalExpression(lhs, token.stringValue);
12911291
push(lhs);
12921292
}
12931293
}
@@ -1341,7 +1341,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
13411341
Expression receiver = pop();
13421342
Expression logicalExpression =
13431343
forest.logicalExpression(receiver, token, argument);
1344-
typePromoter.exitLogicalExpression(argument, logicalExpression);
1344+
typePromoter?.exitLogicalExpression(argument, logicalExpression);
13451345
push(logicalExpression);
13461346
}
13471347

@@ -1709,9 +1709,9 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
17091709
// [ProcedureBuilder.computeFormalParameterInitializerScope]. If that
17101710
// wasn't the case, we could always use [VariableUseGenerator].
17111711
if (declaration.isFinal) {
1712-
Object fact = typePromoter.getFactForAccess(
1712+
Object fact = typePromoter?.getFactForAccess(
17131713
declaration.target, functionNestingLevel);
1714-
Object scope = typePromoter.currentScope;
1714+
Object scope = typePromoter?.currentScope;
17151715
return new ReadOnlyAccessGenerator(
17161716
this,
17171717
token,
@@ -1946,7 +1946,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
19461946

19471947
@override
19481948
void endThenStatement(Token token) {
1949-
typePromoter.enterElse();
1949+
typePromoter?.enterElse();
19501950
super.endThenStatement(token);
19511951
}
19521952

@@ -1955,7 +1955,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
19551955
Statement elsePart = popStatementIfNotNull(elseToken);
19561956
Statement thenPart = popStatement();
19571957
Expression condition = pop();
1958-
typePromoter.exitConditional();
1958+
typePromoter?.exitConditional();
19591959
push(forest.ifStatement(ifToken, condition, thenPart, elseToken, elsePart));
19601960
}
19611961

@@ -2544,7 +2544,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
25442544
forest.isExpression(operand, isOperator, not, type);
25452545
library.checkBoundsInType(type, typeEnvironment, isOperator.charOffset);
25462546
if (operand is VariableGet) {
2547-
typePromoter.handleIsCheck(isExpression, isInverted, operand.variable,
2547+
typePromoter?.handleIsCheck(isExpression, isInverted, operand.variable,
25482548
type, functionNestingLevel);
25492549
}
25502550
if (constantContext != ConstantContext.none) {
@@ -2562,15 +2562,15 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
25622562
@override
25632563
void beginConditionalExpression(Token question) {
25642564
Expression condition = popForValue();
2565-
typePromoter.enterThen(condition);
2565+
typePromoter?.enterThen(condition);
25662566
push(condition);
25672567
super.beginConditionalExpression(question);
25682568
}
25692569

25702570
@override
25712571
void handleConditionalExpressionColon() {
25722572
Expression then = popForValue();
2573-
typePromoter.enterElse();
2573+
typePromoter?.enterElse();
25742574
push(then);
25752575
super.handleConditionalExpressionColon();
25762576
}
@@ -2581,7 +2581,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
25812581
Expression elseExpression = popForValue();
25822582
Expression thenExpression = pop();
25832583
Expression condition = pop();
2584-
typePromoter.exitConditional();
2584+
typePromoter?.exitConditional();
25852585
push(forest.conditionalExpression(
25862586
condition, question, thenExpression, colon, elseExpression));
25872587
}
@@ -2671,7 +2671,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
26712671
}
26722672
if (annotations != null) {
26732673
if (functionNestingLevel == 0) {
2674-
_typeInferrer.inferMetadata(this, annotations);
2674+
_typeInferrer?.inferMetadata(this, annotations);
26752675
}
26762676
for (Expression annotation in annotations) {
26772677
variable.addAnnotation(annotation);
@@ -3714,8 +3714,8 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
37143714
variable =
37153715
new VariableDeclarationJudgment.forValue(null, functionNestingLevel);
37163716
TypePromotionFact fact =
3717-
typePromoter.getFactForAccess(variable, functionNestingLevel);
3718-
TypePromotionScope scope = typePromoter.currentScope;
3717+
typePromoter?.getFactForAccess(variable, functionNestingLevel);
3718+
TypePromotionScope scope = typePromoter?.currentScope;
37193719
syntheticAssignment = lvalue.buildAssignment(
37203720
new VariableGetJudgment(variable, fact, scope)
37213721
..fileOffset = inKeyword.offset,
@@ -4141,7 +4141,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
41414141
KernelTypeVariableBuilder variable = new KernelTypeVariableBuilder(
41424142
name.name, library, name.charOffset, null);
41434143
if (annotations != null) {
4144-
_typeInferrer.inferMetadata(this, annotations);
4144+
_typeInferrer?.inferMetadata(this, annotations);
41454145
for (Expression annotation in annotations) {
41464146
variable.parameter.addAnnotation(annotation);
41474147
}

pkg/front_end/lib/src/fasta/kernel/kernel_body_builder.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,6 @@ class KernelBodyBuilder extends BodyBuilder {
4444

4545
@override
4646
void enterThenForTypePromotion(Expression condition) {
47-
typePromoter.enterThen(condition);
47+
typePromoter?.enterThen(condition);
4848
}
4949
}

pkg/front_end/lib/src/fasta/kernel/kernel_expression_generator.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -311,8 +311,8 @@ class KernelVariableUseGenerator extends KernelGenerator
311311
@override
312312
Expression _makeRead(ComplexAssignmentJudgment complexAssignment) {
313313
var fact = helper.typePromoter
314-
.getFactForAccess(variable, helper.functionNestingLevel);
315-
var scope = helper.typePromoter.currentScope;
314+
?.getFactForAccess(variable, helper.functionNestingLevel);
315+
var scope = helper.typePromoter?.currentScope;
316316
var read = new VariableGetJudgment(variable, fact, scope)
317317
..fileOffset = offsetForToken(token);
318318
complexAssignment?.read = read;
@@ -322,7 +322,7 @@ class KernelVariableUseGenerator extends KernelGenerator
322322
@override
323323
Expression _makeWrite(Expression value, bool voidContext,
324324
ComplexAssignmentJudgment complexAssignment) {
325-
helper.typePromoter.mutateVariable(variable, helper.functionNestingLevel);
325+
helper.typePromoter?.mutateVariable(variable, helper.functionNestingLevel);
326326
var write = variable.isFinal || variable.isConst
327327
? makeInvalidWrite(value)
328328
: new VariableSet(variable, value)

pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1559,10 +1559,6 @@ class ShadowTypeInferenceEngine extends TypeInferenceEngine {
15591559
ShadowTypeInferenceEngine(Instrumentation instrumentation, bool legacyMode)
15601560
: super(instrumentation, legacyMode);
15611561

1562-
@override
1563-
TypeInferrer createDisabledTypeInferrer() =>
1564-
new TypeInferrer.disabled(typeSchemaEnvironment);
1565-
15661562
@override
15671563
ShadowTypeInferrer createLocalTypeInferrer(
15681564
Uri uri, InterfaceType thisType, KernelLibraryBuilder library) {

pkg/front_end/lib/src/fasta/source/diet_listener.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@ class DietListener extends StackListener {
591591
// member, since that provides better error recovery.
592592
InterfaceType thisType = currentClass?.target?.thisType;
593593
var typeInferrer = library.disableTypeInference
594-
? typeInferenceEngine.createDisabledTypeInferrer()
594+
? null
595595
: typeInferenceEngine.createLocalTypeInferrer(uri, thisType, library);
596596
ConstantContext constantContext = builder.isConstructor && builder.isConst
597597
? ConstantContext.inferred

pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -231,10 +231,6 @@ abstract class TypeInferenceEngine {
231231

232232
TypeInferenceEngine(this.instrumentation, this.legacyMode);
233233

234-
/// Creates a disabled type inferrer (intended for debugging and profiling
235-
/// only).
236-
TypeInferrer createDisabledTypeInferrer();
237-
238234
/// Creates a type inferrer for use inside of a method body declared in a file
239235
/// with the given [uri].
240236
TypeInferrer createLocalTypeInferrer(

pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -457,9 +457,6 @@ abstract class TypeInferrer {
457457
InterfaceType thisType,
458458
KernelLibraryBuilder library) = ShadowTypeInferrer.private;
459459

460-
factory TypeInferrer.disabled(TypeSchemaEnvironment typeSchemaEnvironment) =
461-
TypeInferrerDisabled.private;
462-
463460
KernelLibraryBuilder get library;
464461

465462
/// Gets the [TypePromoter] that can be used to perform type promotion within
@@ -498,50 +495,6 @@ abstract class TypeInferrer {
498495
kernel.Expression initializer, DartType declaredType);
499496
}
500497

501-
/// Implementation of [TypeInferrer] which doesn't do any type inference.
502-
///
503-
/// This is intended for profiling, to ensure that type inference and type
504-
/// promotion do not slow down compilation too much.
505-
class TypeInferrerDisabled extends TypeInferrer {
506-
@override
507-
final typePromoter = new TypePromoter.disabled();
508-
509-
@override
510-
final TypeSchemaEnvironment typeSchemaEnvironment;
511-
512-
TypeInferrerDisabled.private(this.typeSchemaEnvironment)
513-
: super.private(null);
514-
515-
@override
516-
KernelLibraryBuilder get library => null;
517-
518-
@override
519-
Uri get uri => null;
520-
521-
@override
522-
void inferFieldInitializer(InferenceHelper helper, DartType declaredType,
523-
kernel.Expression initializer) {}
524-
525-
@override
526-
void inferFunctionBody(InferenceHelper helper, DartType returnType,
527-
AsyncMarker asyncMarker, Statement body) {}
528-
529-
@override
530-
void inferInitializer(
531-
InferenceHelper helper, kernel.Initializer initializer) {}
532-
533-
@override
534-
void inferMetadata(
535-
InferenceHelper helper, List<kernel.Expression> annotations) {}
536-
537-
@override
538-
void inferMetadataKeepingHelper(List<kernel.Expression> annotations) {}
539-
540-
@override
541-
void inferParameterInitializer(InferenceHelper helper,
542-
kernel.Expression initializer, DartType declaredType) {}
543-
}
544-
545498
/// Derived class containing generic implementations of [TypeInferrer].
546499
///
547500
/// This class contains as much of the implementation of type inference as

0 commit comments

Comments
 (0)