| Index: tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart
|
| diff --git a/tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart b/tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart
|
| index 3aebe3ce9855ecf3727f4268fea58f5963c6870a..a9666a40ee91c3dc9b77738a5b1b03bfcbb117e9 100644
|
| --- a/tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart
|
| +++ b/tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart
|
| @@ -8,19 +8,21 @@
|
| library sexpr_unstringifier;
|
|
|
| import 'package:compiler/implementation/dart2jslib.dart' as dart2js
|
| - show Constant, IntConstant, NullConstant, StringConstant,
|
| - DoubleConstant, TrueConstant, FalseConstant, MessageKind;
|
| + show Constant, IntConstant, NullConstant, StringConstant,
|
| + DoubleConstant, TrueConstant, FalseConstant, MessageKind;
|
| import 'package:compiler/implementation/dart_types.dart' as dart_types
|
| - show DartType;
|
| + show DartType;
|
| import 'package:compiler/implementation/elements/elements.dart'
|
| - show Entity, Element, Elements, Local, TypeVariableElement, ErroneousElement,
|
| - TypeDeclarationElement, ExecutableElement;
|
| + show Entity, Element, Elements, Local, TypeVariableElement, ErroneousElement,
|
| + TypeDeclarationElement, ExecutableElement;
|
| import 'package:compiler/implementation/elements/modelx.dart'
|
| - show ErroneousElementX, TypeVariableElementX;
|
| -import 'package:compiler/implementation/tree/tree.dart'show LiteralDartString;
|
| + show ErroneousElementX, TypeVariableElementX;
|
| +import 'package:compiler/implementation/tree/tree.dart' show LiteralDartString;
|
| import 'package:compiler/implementation/universe/universe.dart'
|
| - show Selector, SelectorKind;
|
| + show Selector, SelectorKind;
|
| import 'package:compiler/implementation/cps_ir/cps_ir_nodes.dart';
|
| +import 'package:compiler/implementation/cps_ir/const_expression.dart'
|
| + show PrimitiveConstExp;
|
|
|
| /// Used whenever a node constructed by [SExpressionUnstringifier] needs a
|
| /// named entity.
|
| @@ -552,18 +554,25 @@ class SExpressionUnstringifier {
|
| String tag = tokens.read();
|
|
|
| // NullConstant.
|
| - if (tag == "null") {
|
| + if (tag == "NullConstant") {
|
| tokens.consumeEnd();
|
| - return new Constant(null, new dart2js.NullConstant());
|
| + return new Constant(new PrimitiveConstExp(new dart2js.NullConstant()));
|
| }
|
|
|
| // BoolConstant.
|
| - if (tag == "true") {
|
| + if (tag == "BoolConstant") {
|
| + tokens.consumeStart();
|
| + tag = tokens.read();
|
| tokens.consumeEnd();
|
| - return new Constant(null, new dart2js.TrueConstant());
|
| - } else if (tag == "false") {
|
| tokens.consumeEnd();
|
| - return new Constant(null, new dart2js.FalseConstant());
|
| + if (tag == "true") {
|
| + return new Constant(new PrimitiveConstExp(
|
| + new dart2js.TrueConstant()));
|
| + } else if (tag == "false") {
|
| + return new Constant(new PrimitiveConstExp(
|
| + new dart2js.FalseConstant()));
|
| + }
|
| + throw "Invalid bool value '$tag'.";
|
| }
|
|
|
| // StringConstant.
|
| @@ -582,25 +591,38 @@ class SExpressionUnstringifier {
|
| new LiteralDartString(string.substring(1, string.length - 1)));
|
|
|
| tokens.consumeEnd();
|
| - return new Constant(null, value);
|
| + return new Constant(new PrimitiveConstExp(value));
|
| }
|
|
|
| // IntConstant.
|
| - int intValue = int.parse(tag, onError: (_) => null);
|
| - if (intValue != null) {
|
| + if (tag == "IntConstant") {
|
| + tokens.consumeStart();
|
| + tag = tokens.read();
|
| + int intValue = int.parse(tag, onError: (_) => null);
|
| + if (intValue == null) {
|
| + throw "Invalid int value '$tag'.";
|
| + }
|
| + tokens.consumeEnd();
|
| tokens.consumeEnd();
|
| - return new Constant(null, new dart2js.IntConstant(intValue));
|
| + return new Constant(new PrimitiveConstExp(
|
| + new dart2js.IntConstant(intValue)));
|
| }
|
|
|
| // DoubleConstant.
|
| - double doubleValue = double.parse(tag, (_) => null);
|
| - if (doubleValue != null) {
|
| + if (tag == "DoubleConstant") {
|
| + tokens.consumeStart();
|
| + tag = tokens.read();
|
| + double doubleValue = double.parse(tag, (_) => null);
|
| + if (doubleValue == null) {
|
| + throw "Invalid double value '$tag'.";
|
| + }
|
| + tokens.consumeEnd();
|
| tokens.consumeEnd();
|
| - return new Constant(null, new dart2js.DoubleConstant(doubleValue));
|
| + return new Constant(new PrimitiveConstExp(
|
| + new dart2js.DoubleConstant(doubleValue)));
|
| }
|
|
|
| - assert(false);
|
| - return null;
|
| + throw "Unhandled tag '$tag'.";
|
| }
|
|
|
| /// (CreateFunction (definition))
|
|
|