Convert ShadowAwaitExpression to AwaitExpressionJudgment.
R=brianwilkerson@google.com, paulberry@google.com
Change-Id: I1b2bd381aa29a58eab8f7c4434dc5b6151970d15
Reviewed-on: https://dart-review.googlesource.com/60806
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/fangorn.dart b/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
index 188ff07..7e7d002 100644
--- a/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
@@ -70,7 +70,7 @@
AsJudgment,
ShadowAssertInitializer,
ShadowAssertStatement,
- ShadowAwaitExpression,
+ AwaitJudgment,
ShadowBlock,
BoolJudgment,
ShadowBreakStatement,
@@ -316,8 +316,7 @@
@override
Expression awaitExpression(Expression operand, Token token) {
- return new ShadowAwaitExpression(operand)
- ..fileOffset = offsetForToken(token);
+ return new AwaitJudgment(operand)..fileOffset = offsetForToken(token);
}
@override
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
index ef75eb7..668750c 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
@@ -204,11 +204,12 @@
}
/// Shadow object for [AwaitExpression].
-class ShadowAwaitExpression extends AwaitExpression
- implements ExpressionJudgment {
+class AwaitJudgment extends AwaitExpression implements ExpressionJudgment {
DartType inferredType;
- ShadowAwaitExpression(Expression operand) : super(operand);
+ AwaitJudgment(Expression operand) : super(operand);
+
+ ExpressionJudgment get judgment => operand;
@override
DartType infer<Expression, Statement, Initializer>(
@@ -218,9 +219,11 @@
if (!inferrer.typeSchemaEnvironment.isEmptyContext(typeContext)) {
typeContext = inferrer.wrapFutureOrType(typeContext);
}
- var inferredType =
- inferrer.inferExpression(factory, operand, typeContext, true);
- return inferrer.typeSchemaEnvironment.unfutureType(inferredType);
+ var judgment = this.judgment;
+ inferrer.inferExpression(factory, judgment, typeContext, true);
+ inferredType =
+ inferrer.typeSchemaEnvironment.unfutureType(judgment.inferredType);
+ return inferredType;
}
}