Chromium Code Reviews| 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> { |