Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(605)

Unified Diff: tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart

Issue 574683002: Use ConstExp for storing constants. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Updated cf. comments. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/compiler/dart2js/backend_dart/sexpr_test.dart ('k') | tests/compiler/dart2js/const_exp_test.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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))
« no previous file with comments | « tests/compiler/dart2js/backend_dart/sexpr_test.dart ('k') | tests/compiler/dart2js/const_exp_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698