| Index: pkg/compiler/lib/src/serialization/equivalence.dart
|
| diff --git a/pkg/compiler/lib/src/serialization/equivalence.dart b/pkg/compiler/lib/src/serialization/equivalence.dart
|
| index 907c8d4a6db9f2bfca8506950f1ebbb655be0e00..1feae1c1c4a299131cb88b0eac095e61275630e4 100644
|
| --- a/pkg/compiler/lib/src/serialization/equivalence.dart
|
| +++ b/pkg/compiler/lib/src/serialization/equivalence.dart
|
| @@ -866,8 +866,9 @@ class ConstantValueEquivalence
|
| @override
|
| bool visitConstructed(
|
| ConstructedConstantValue value1, ConstructedConstantValue value2) {
|
| - return strategy.testTypes(
|
| - value1, value2, 'type', value1.type, value2.type) &&
|
| + ResolutionInterfaceType type1 = value1.type;
|
| + ResolutionInterfaceType type2 = value2.type;
|
| + return strategy.testTypes(value1, value2, 'type', type1, type2) &&
|
| strategy.testMaps(
|
| value1,
|
| value2,
|
| @@ -889,16 +890,18 @@ class ConstantValueEquivalence
|
|
|
| @override
|
| bool visitList(ListConstantValue value1, ListConstantValue value2) {
|
| - return strategy.testTypes(
|
| - value1, value2, 'type', value1.type, value2.type) &&
|
| + ResolutionInterfaceType type1 = value1.type;
|
| + ResolutionInterfaceType type2 = value2.type;
|
| + return strategy.testTypes(value1, value2, 'type', type1, type2) &&
|
| strategy.testConstantValueLists(
|
| value1, value2, 'entries', value1.entries, value2.entries);
|
| }
|
|
|
| @override
|
| bool visitMap(MapConstantValue value1, MapConstantValue value2) {
|
| - return strategy.testTypes(
|
| - value1, value2, 'type', value1.type, value2.type) &&
|
| + ResolutionInterfaceType type1 = value1.type;
|
| + ResolutionInterfaceType type2 = value2.type;
|
| + return strategy.testTypes(value1, value2, 'type', type1, type2) &&
|
| strategy.testConstantValueLists(
|
| value1, value2, 'keys', value1.keys, value2.keys) &&
|
| strategy.testConstantValueLists(
|
| @@ -907,7 +910,9 @@ class ConstantValueEquivalence
|
|
|
| @override
|
| bool visitType(TypeConstantValue value1, TypeConstantValue value2) {
|
| - return strategy.testTypes(value1, value2, 'type', value1.type, value2.type);
|
| + ResolutionInterfaceType type1 = value1.type;
|
| + ResolutionInterfaceType type2 = value2.type;
|
| + return strategy.testTypes(value1, value2, 'type', type1, type2);
|
| }
|
|
|
| @override
|
| @@ -965,8 +970,9 @@ class ConstantValueEquivalence
|
| @override
|
| bool visitInterceptor(
|
| InterceptorConstantValue value1, InterceptorConstantValue value2) {
|
| - return strategy.testTypes(value1, value2, 'dispatchedType',
|
| - value1.dispatchedType, value2.dispatchedType);
|
| + ClassElement cls1 = value1.cls;
|
| + ClassElement cls2 = value2.cls;
|
| + return strategy.testElements(value1, value2, 'cls', cls1, cls2);
|
| }
|
| }
|
|
|
|
|