Convert ShadowDeferredCheck to DeferredCheckJudgment
Change-Id: I411e29c6b3f1d1d88942cfb6775d4b88908bb6a5 Reviewed-on: https://dart-review.googlesource.com/61820 Commit-Queue: Paul Berry <paulberry@google.com> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
committed by
commit-bot@chromium.org
parent
e2c54e9af5
commit
121fed2840
@@ -4188,7 +4188,7 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
|
||||
Object check = new VariableDeclaration.forValue(
|
||||
forest.checkLibraryIsLoaded(prefix.dependency))
|
||||
..fileOffset = charOffset;
|
||||
return new ShadowDeferredCheck(check, expression);
|
||||
return new DeferredCheckJudgment(check, expression);
|
||||
}
|
||||
|
||||
/// TODO(ahe): This method is temporarily implemented by subclasses. Once type
|
||||
|
||||
@@ -72,7 +72,7 @@ export 'kernel_shadow_ast.dart'
|
||||
ComplexAssignmentJudgment,
|
||||
ShadowConstructorInvocation,
|
||||
ContinueSwitchJudgment,
|
||||
ShadowDeferredCheck,
|
||||
DeferredCheckJudgment,
|
||||
ExpressionStatementJudgment,
|
||||
ShadowFactoryConstructorInvocation,
|
||||
ShadowFieldInitializer,
|
||||
|
||||
@@ -825,12 +825,14 @@ class ContinueSwitchJudgment extends ContinueSwitchStatement
|
||||
}
|
||||
|
||||
/// Shadow object representing a deferred check in kernel form.
|
||||
class ShadowDeferredCheck extends Let implements ExpressionJudgment {
|
||||
class DeferredCheckJudgment extends Let implements ExpressionJudgment {
|
||||
DartType inferredType;
|
||||
|
||||
ShadowDeferredCheck(VariableDeclaration variable, Expression body)
|
||||
DeferredCheckJudgment(VariableDeclaration variable, Expression body)
|
||||
: super(variable, body);
|
||||
|
||||
ExpressionJudgment get judgment => body;
|
||||
|
||||
@override
|
||||
DartType infer<Expression, Statement, Initializer, Type>(
|
||||
ShadowTypeInferrer inferrer,
|
||||
@@ -838,8 +840,9 @@ class ShadowDeferredCheck extends Let implements ExpressionJudgment {
|
||||
DartType typeContext) {
|
||||
// Since the variable is not used in the body we don't need to type infer
|
||||
// it. We can just type infer the body.
|
||||
var inferredType =
|
||||
inferrer.inferExpression(factory, body, typeContext, true);
|
||||
var judgment = this.judgment;
|
||||
inferrer.inferExpression(factory, judgment, typeContext, true);
|
||||
inferredType = judgment.inferredType;
|
||||
inferrer.listener.deferredCheck(this, fileOffset, inferredType);
|
||||
return inferredType;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user