Index: pkg/compiler/lib/src/serialization/constant_serialization.dart |
diff --git a/pkg/compiler/lib/src/serialization/constant_serialization.dart b/pkg/compiler/lib/src/serialization/constant_serialization.dart |
index b0413471d19c067789d628ef961057682e25264d..ae3040a2d488840b9a3af31d6eb08379ee4aaf5f 100644 |
--- a/pkg/compiler/lib/src/serialization/constant_serialization.dart |
+++ b/pkg/compiler/lib/src/serialization/constant_serialization.dart |
@@ -169,8 +169,8 @@ class ConstantSerializer |
@override |
void visitDeferred(DeferredConstantExpression exp, ObjectEncoder encoder) { |
- throw new UnsupportedError( |
- "ConstantSerializer.visitDeferred: ${exp.toDartText()}"); |
+ encoder.setElement(Key.PREFIX, exp.prefix); |
+ encoder.setConstant(Key.EXPRESSION, exp.expression); |
} |
} |
@@ -267,6 +267,9 @@ class ConstantDeserializer { |
case ConstantExpressionKind.NAMED_REFERENCE: |
return new NamedArgumentReference(decoder.getString(Key.NAME)); |
case ConstantExpressionKind.DEFERRED: |
+ return new DeferredConstantExpression( |
+ decoder.getConstant(Key.EXPRESSION), |
+ decoder.getElement(Key.PREFIX)); |
case ConstantExpressionKind.SYNTHETIC: |
} |
throw new UnsupportedError("Unexpected constant kind: ${kind} in $decoder"); |