Index: pkg/compiler/lib/src/elements/modelx.dart |
diff --git a/pkg/compiler/lib/src/elements/modelx.dart b/pkg/compiler/lib/src/elements/modelx.dart |
index 3e148461f148d53196e35d7b8f19aaa6d21a513a..2381d64022b357abfcc46f8a1b83ca0e81f90309 100644 |
--- a/pkg/compiler/lib/src/elements/modelx.dart |
+++ b/pkg/compiler/lib/src/elements/modelx.dart |
@@ -256,6 +256,8 @@ class ErroneousElementX extends ElementX implements ErroneousElement { |
bool get hasFunctionSignature => false; |
+ bool get hasEffectiveTarget => true; |
+ |
get effectiveTarget => this; |
computeEffectiveTargetType(InterfaceType newType) => unsupported(); |
@@ -1391,6 +1393,11 @@ class VariableList implements DeclarationSite { |
abstract class ConstantVariableMixin implements VariableElement { |
ConstantExpression constantCache; |
+ // TODO(johnniwinther): Update the on `constant = ...` when evaluation of |
+ // constant expression can handle references to unanalyzed constant variables. |
+ @override |
+ bool get hasConstant => false; |
+ |
ConstantExpression get constant { |
if (isPatch) { |
ConstantVariableMixin originVariable = origin; |
@@ -2199,6 +2206,8 @@ abstract class ConstructorElementX extends FunctionElementX |
DartType _effectiveTargetType; |
bool _isEffectiveTargetMalformed; |
+ bool get hasEffectiveTarget => effectiveTargetInternal != null; |
+ |
void setEffectiveTarget(ConstructorElement target, DartType type, |
{bool isMalformed: false}) { |
assert(invariant(this, target != null, |