| Index: pkg/compiler/lib/src/serialization/modelz.dart
|
| diff --git a/pkg/compiler/lib/src/serialization/modelz.dart b/pkg/compiler/lib/src/serialization/modelz.dart
|
| index ea6752aad9bf045a3f46539153a0e65459164e74..f451463297884791809b7d03797da8bdc30fe93a 100644
|
| --- a/pkg/compiler/lib/src/serialization/modelz.dart
|
| +++ b/pkg/compiler/lib/src/serialization/modelz.dart
|
| @@ -1298,9 +1298,10 @@ class FactoryConstructorElementZ extends ConstructorElementZ {
|
| }
|
|
|
| class RedirectingFactoryConstructorElementZ extends ConstructorElementZ {
|
| - InterfaceType _effectiveTargetType;
|
| + DartType _effectiveTargetType;
|
| ConstructorElement _immediateRedirectionTarget;
|
| PrefixElement _redirectionDeferredPrefix;
|
| + bool _effectiveTargetIsMalformed;
|
|
|
| RedirectingFactoryConstructorElementZ(ObjectDecoder decoder) : super(decoder);
|
|
|
| @@ -1317,12 +1318,20 @@ class RedirectingFactoryConstructorElementZ extends ConstructorElementZ {
|
| if (_effectiveTarget == null) {
|
| _effectiveTarget = this;
|
| _effectiveTargetType = enclosingClass.thisType;
|
| + _effectiveTargetIsMalformed = false;
|
| } else {
|
| _effectiveTargetType = _decoder.getType(Key.EFFECTIVE_TARGET_TYPE);
|
| + _effectiveTargetIsMalformed =
|
| + _decoder.getBool(Key.EFFECTIVE_TARGET_IS_MALFORMED);
|
| }
|
| }
|
| }
|
|
|
| + bool get isEffectiveTargetMalformed {
|
| + _ensureEffectiveTarget();
|
| + return _effectiveTargetIsMalformed;
|
| + }
|
| +
|
| @override
|
| ConstructorElement get effectiveTarget {
|
| _ensureEffectiveTarget();
|
| @@ -1330,7 +1339,7 @@ class RedirectingFactoryConstructorElementZ extends ConstructorElementZ {
|
| }
|
|
|
| @override
|
| - InterfaceType computeEffectiveTargetType(InterfaceType newType) {
|
| + DartType computeEffectiveTargetType(InterfaceType newType) {
|
| _ensureEffectiveTarget();
|
| return _effectiveTargetType.substByContext(newType);
|
| }
|
|
|