Convert ShadowAssertStatement to AssertStatementJudgment.

R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I58be3e6a5fd448c2b00afb194bb566c7d6987733
Reviewed-on: https://dart-review.googlesource.com/60807
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 7e7d002..6d266c4 100644
--- a/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/fangorn.dart
@@ -69,7 +69,7 @@
         ShadowArguments,
         AsJudgment,
         ShadowAssertInitializer,
-        ShadowAssertStatement,
+        AssertStatementJudgment,
         AwaitJudgment,
         ShadowBlock,
         BoolJudgment,
@@ -308,7 +308,7 @@
         endOffset = conditionLastToken.offset + conditionLastToken.length;
       }
     }
-    return new ShadowAssertStatement(condition,
+    return new AssertStatementJudgment(condition,
         conditionStartOffset: startOffset,
         conditionEndOffset: endOffset,
         message: message);
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
index 33906b3..2360f11 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_api.dart
@@ -65,7 +65,7 @@
 export 'kernel_shadow_ast.dart'
     show
         ShadowAssertInitializer,
-        ShadowAssertStatement,
+        AssertStatementJudgment,
         ShadowBreakStatement,
         ShadowCascadeExpression,
         ShadowComplexAssignment,
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 668750c..c5be174 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
@@ -180,25 +180,32 @@
 }
 
 /// Concrete shadow object representing an assertion statement in kernel form.
-class ShadowAssertStatement extends AssertStatement
+class AssertStatementJudgment extends AssertStatement
     implements StatementJudgment {
-  ShadowAssertStatement(Expression condition,
+  AssertStatementJudgment(Expression condition,
       {Expression message, int conditionStartOffset, int conditionEndOffset})
       : super(condition,
             message: message,
             conditionStartOffset: conditionStartOffset,
             conditionEndOffset: conditionEndOffset);
 
+  ExpressionJudgment get conditionJudgment => condition;
+
+  ExpressionJudgment get messageJudgment => message;
+
   @override
   void infer<Expression, Statement, Initializer>(ShadowTypeInferrer inferrer,
       Factory<Expression, Statement, Initializer> factory) {
+    var conditionJudgment = this.conditionJudgment;
+    var messageJudgment = this.messageJudgment;
     var expectedType = inferrer.coreTypes.boolClass.rawType;
-    var actualType = inferrer.inferExpression(
-        factory, condition, expectedType, !inferrer.isTopLevel);
-    inferrer.ensureAssignable(
-        expectedType, actualType, condition, condition.fileOffset);
-    if (message != null) {
-      inferrer.inferExpression(factory, message, const UnknownType(), false);
+    inferrer.inferExpression(
+        factory, conditionJudgment, expectedType, !inferrer.isTopLevel);
+    inferrer.ensureAssignable(expectedType, conditionJudgment.inferredType,
+        conditionJudgment, conditionJudgment.fileOffset);
+    if (messageJudgment != null) {
+      inferrer.inferExpression(
+          factory, messageJudgment, const UnknownType(), false);
     }
   }
 }