Index: pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart |
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 6f57f7d708a8a63a349517cdfe465a218a761e68..386b47a6ce08ace6154d1e2d6c7579cfddf65652 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 |
@@ -35,6 +35,17 @@ class KernelBlock extends Block implements KernelStatement { |
} |
} |
+/// Concrete shadow object representing a boolean literal in kernel form. |
+class KernelBoolLiteral extends BoolLiteral implements KernelExpression { |
+ KernelBoolLiteral(bool value) : super(value); |
+ |
+ @override |
+ DartType _inferExpression( |
+ KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { |
+ return inferrer.inferBoolLiteral(typeContext, typeNeeded); |
+ } |
+} |
+ |
/// Concrete shadow object representing a double literal in kernel form. |
class KernelDoubleLiteral extends DoubleLiteral implements KernelExpression { |
KernelDoubleLiteral(double value) : super(value); |
@@ -225,6 +236,29 @@ class KernelStaticGet extends StaticGet implements KernelExpression { |
} |
} |
+/// Concrete shadow object representing a string concatenation in kernel form. |
+class KernelStringConcatenation extends StringConcatenation |
+ implements KernelExpression { |
+ KernelStringConcatenation(List<Expression> expressions) : super(expressions); |
+ |
+ @override |
+ DartType _inferExpression( |
+ KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { |
+ return inferrer.inferStringLiteral(typeContext, typeNeeded); |
Paul Berry
2017/05/01 22:03:44
This works for now, but in the long run it will ne
scheglov
2017/05/02 02:35:20
Done.
I ended up removing testing for StringConcat
|
+ } |
+} |
+ |
+/// Concrete shadow object representing a string literal in kernel form. |
+class KernelStringLiteral extends StringLiteral implements KernelExpression { |
+ KernelStringLiteral(String value) : super(value); |
+ |
+ @override |
+ DartType _inferExpression( |
+ KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { |
+ return inferrer.inferStringLiteral(typeContext, typeNeeded); |
+ } |
+} |
+ |
/// Concrete implementation of [TypeInferenceEngine] specialized to work with |
/// kernel objects. |
class KernelTypeInferenceEngine extends TypeInferenceEngineImpl<KernelField> { |