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

Unified Diff: pkg/compiler/lib/src/serialization/modelz.dart

Issue 2125823002: Handle redirects to unresolved redirects (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 5 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/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);
}

Powered by Google App Engine
This is Rietveld 408576698