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

Unified Diff: pkg/compiler/lib/src/constants/expressions.dart

Issue 1192103002: Support serialization of the compiler backbone. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments Created 5 years, 6 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: pkg/compiler/lib/src/constants/expressions.dart
diff --git a/pkg/compiler/lib/src/constants/expressions.dart b/pkg/compiler/lib/src/constants/expressions.dart
index 5644b0f5847ce5db238ce8f803a226a1c2904470..abb3c6dec439f7884e1d0fd86a94b3a3c4115a10 100644
--- a/pkg/compiler/lib/src/constants/expressions.dart
+++ b/pkg/compiler/lib/src/constants/expressions.dart
@@ -107,6 +107,22 @@ abstract class ConstantConstructor {
Map<FieldElement, ConstantExpression> computeInstanceFields(
List<ConstantExpression> arguments,
CallStructure callStructure);
+
+ accept(ConstantConstructorVisitor visitor, arg);
+}
+
+abstract class ConstantConstructorVisitor<R, A> {
+ const ConstantConstructorVisitor();
+
+ R visit(ConstantConstructor constantConstructor, A context) {
+ return constantConstructor.accept(this, context);
+ }
+
+ R visitGenerative(GenerativeConstantConstructor constructor, A arg);
+ R visitRedirectingGenerative(
+ RedirectingGenerativeConstantConstructor constructor, A arg);
+ R visitRedirectingFactory(
+ RedirectingFactoryConstantConstructor constructor, A arg);
}
/// A generative constant constructor.
@@ -141,6 +157,10 @@ class GenerativeConstantConstructor implements ConstantConstructor{
return appliedFieldMap;
}
+ accept(ConstantConstructorVisitor visitor, arg) {
+ return visitor.visitGenerative(this, arg);
+ }
+
String toString() {
StringBuffer sb = new StringBuffer();
sb.write("{'type': $type");
@@ -205,6 +225,10 @@ class RedirectingGenerativeConstantConstructor implements ConstantConstructor {
return appliedFieldMap;
}
+ accept(ConstantConstructorVisitor visitor, arg) {
+ return visitor.visitRedirectingGenerative(this, arg);
+ }
+
String toString() {
StringBuffer sb = new StringBuffer();
sb.write("{'type': ${thisConstructorInvocation.type}");
@@ -240,6 +264,10 @@ class RedirectingFactoryConstantConstructor implements ConstantConstructor {
return constantConstructor.computeInstanceFields(arguments, callStructure);
}
+ accept(ConstantConstructorVisitor visitor, arg) {
+ return visitor.visitRedirectingFactory(this, arg);
+ }
+
String toString() {
StringBuffer sb = new StringBuffer();
sb.write("{");

Powered by Google App Engine
This is Rietveld 408576698