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

Unified Diff: sdk/lib/_internal/compiler/implementation/constants.dart

Issue 24282005: Move compile-time constant registrations to the backend. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Update status Created 7 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
Index: sdk/lib/_internal/compiler/implementation/constants.dart
diff --git a/sdk/lib/_internal/compiler/implementation/constants.dart b/sdk/lib/_internal/compiler/implementation/constants.dart
index bca652405c49be6b45649dac303a38a077fdd068..a8ac5241cc92a05e56122dc6ceffb33be09e837f 100644
--- a/sdk/lib/_internal/compiler/implementation/constants.dart
+++ b/sdk/lib/_internal/compiler/implementation/constants.dart
@@ -45,6 +45,7 @@ abstract class Constant {
bool isNaN() => false;
bool isMinusZero() => false;
+ // TODO(johnniwinther): Replace with a 'type' getter.
DartType computeType(Compiler compiler);
List<Constant> getDependencies();
@@ -295,6 +296,10 @@ class StringConstant extends PrimitiveConstant {
int get length => value.length;
accept(ConstantVisitor visitor) => visitor.visitString(this);
+
+ String toString() {
+ return 'StringConstant(${Error.safeToString(value.slowToString())})';
+ }
}
abstract class ObjectConstant extends Constant {
@@ -323,6 +328,8 @@ class TypeConstant extends ObjectConstant {
List<Constant> getDependencies() => const <Constant>[];
accept(ConstantVisitor visitor) => visitor.visitType(this);
+
+ String toString() => 'TypeConstant(${Error.safeToString(representedType)})';
}
class ListConstant extends ObjectConstant {
@@ -362,6 +369,17 @@ class ListConstant extends ObjectConstant {
int get length => entries.length;
accept(ConstantVisitor visitor) => visitor.visitList(this);
+
+ String toString() {
+ StringBuffer sb = new StringBuffer();
+ sb.write('ListConstant([');
+ for (int i = 0 ; i < entries.length ; i++) {
+ if (i > 0) sb.write(',');
+ sb.write(Error.safeToString(entries[i]));
+ }
+ sb.write('])');
+ return sb.toString();
+ }
}
class MapConstant extends ObjectConstant {
@@ -437,6 +455,19 @@ class MapConstant extends ObjectConstant {
int get length => keys.length;
accept(ConstantVisitor visitor) => visitor.visitMap(this);
+
+ String toString() {
+ StringBuffer sb = new StringBuffer();
+ sb.write('MapConstant({');
+ for (int i = 0 ; i < keys.entries.length ; i++) {
+ if (i > 0) sb.write(',');
+ sb.write(Error.safeToString(keys.entries[i]));
+ sb.write(':');
+ sb.write(Error.safeToString(values[i]));
+ }
+ sb.write('})');
+ return sb.toString();
+ }
}
class InterceptorConstant extends Constant {
@@ -460,6 +491,10 @@ class InterceptorConstant extends Constant {
accept(ConstantVisitor visitor) => visitor.visitInterceptor(this);
DartType computeType(Compiler compiler) => compiler.types.dynamicType;
+
+ String toString() {
+ return 'InterceptorConstant(${Error.safeToString(dispatchedType)})';
+ }
}
class ConstructedConstant extends ObjectConstant {
@@ -510,4 +545,21 @@ class ConstructedConstant extends ObjectConstant {
}, includeSuperAndInjectedMembers: true);
return result;
}
+
+ String toString() {
+ StringBuffer sb = new StringBuffer();
+ sb.write('ConstructedConstant(');
+ sb.write(type);
+ sb.write('(');
+ int i = 0;
+ fieldElements.forEach((Element field, Constant value) {
+ if (i > 0) sb.write(',');
+ sb.write(Error.safeToString(field.name.slowToString()));
+ sb.write('=');
+ sb.write(Error.safeToString(value));
+ i++;
+ });
+ sb.write('))');
+ return sb.toString();
+ }
}

Powered by Google App Engine
This is Rietveld 408576698