Index: pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart |
diff --git a/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart b/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart |
index beb05de1da9dfeb3434ff3d9e21128967290515f..c8d6dee552edef04b4cb20ac8e739f1d9910aede 100644 |
--- a/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart |
+++ b/pkg/compiler/lib/src/dart_backend/backend_ast_emitter.dart |
@@ -1114,7 +1114,7 @@ class TypeGenerator { |
class ConstantEmitter |
- extends ConstantExpressionVisitor<BuilderContext<Statement>, Expression> { |
+ extends ConstantExpressionVisitor<Expression, BuilderContext<Statement>> { |
const ConstantEmitter(); |
/// Creates the [Expression] for the constant [exp]. |
@@ -1147,8 +1147,32 @@ class ConstantEmitter |
} |
@override |
- Expression visitPrimitive(PrimitiveConstantExpression exp, |
- BuilderContext<Statement> context) { |
+ Expression visitBool(BoolConstantExpression exp, |
+ BuilderContext<Statement> context) { |
+ return handlePrimitiveConstant(exp.value); |
+ } |
+ |
+ @override |
+ Expression visitInt(IntConstantExpression exp, |
+ BuilderContext<Statement> context) { |
+ return handlePrimitiveConstant(exp.value); |
+ } |
+ |
+ @override |
+ Expression visitDouble(DoubleConstantExpression exp, |
+ BuilderContext<Statement> context) { |
+ return handlePrimitiveConstant(exp.value); |
+ } |
+ |
+ @override |
+ Expression visitString(StringConstantExpression exp, |
+ BuilderContext<Statement> context) { |
+ return handlePrimitiveConstant(exp.value); |
+ } |
+ |
+ @override |
+ Expression visitNull(NullConstantExpression exp, |
+ BuilderContext<Statement> context) { |
return handlePrimitiveConstant(exp.value); |
} |
@@ -1216,7 +1240,7 @@ class ConstantEmitter |
Expression visitConcatenate(ConcatenateConstantExpression exp, |
BuilderContext<Statement> context) { |
- return new StringConcat(visitExpressions(exp.arguments, context)); |
+ return new StringConcat(visitExpressions(exp.expressions, context)); |
} |
@override |
@@ -1279,6 +1303,39 @@ class ConstantEmitter |
BuilderContext<Statement> context) { |
return handlePrimitiveConstant(exp.value); |
} |
+ |
+ @override |
+ Expression visitNamed(NamedArgumentReference exp, |
+ BuilderContext<Statement> context) { |
+ throw new UnsupportedError("ConstantEmitter.visitNamed"); |
+ } |
+ |
+ @override |
+ Expression visitPositional(PositionalArgumentReference exp, |
+ BuilderContext<Statement> context) { |
+ throw new UnsupportedError("ConstantEmitter.visitPositional"); |
+ } |
+ |
+ @override |
+ Expression visitBoolFromEnvironment( |
+ BoolFromEnvironmentConstantExpression exp, |
+ BuilderContext<Statement> context) { |
+ return handlePrimitiveConstant(exp.value); |
+ } |
+ |
+ @override |
+ Expression visitIntFromEnvironment( |
+ IntFromEnvironmentConstantExpression exp, |
+ BuilderContext<Statement> context) { |
+ return handlePrimitiveConstant(exp.value); |
+ } |
+ |
+ @override |
+ Expression visitStringFromEnvironment( |
+ StringFromEnvironmentConstantExpression exp, |
+ BuilderContext<Statement> context) { |
+ return handlePrimitiveConstant(exp.value); |
+ } |
} |
/// Moves function parameters into a separate variable if one of its uses is |