Index: pkg/compiler/lib/src/closure.dart |
diff --git a/pkg/compiler/lib/src/closure.dart b/pkg/compiler/lib/src/closure.dart |
index 531dfceb866beb8b29a17d00820411c4f32b17d5..8e2fde490c46b65c961e5eed735c506c305a8c28 100644 |
--- a/pkg/compiler/lib/src/closure.dart |
+++ b/pkg/compiler/lib/src/closure.dart |
@@ -81,7 +81,7 @@ class ClosureTask extends CompilerTask implements ClosureClassMaps { |
} |
ClosureClassMap computeClosureToClassMapping( |
- AstElement element, ClosedWorldRefiner closedWorldRefiner) { |
+ MemberElement element, ClosedWorldRefiner closedWorldRefiner) { |
return measure(() { |
ClosureClassMap cached = _closureMappingCache[element]; |
if (cached != null) return cached; |
@@ -350,17 +350,16 @@ class BoxFieldElement extends ElementX |
/// A local variable used encode the direct (uncaptured) references to [this]. |
class ThisLocal extends Local { |
- final ExecutableElement executableContext; |
+ final MemberEntity memberContext; |
final hashCode = ElementX.newHashCode(); |
- ThisLocal(this.executableContext); |
+ ThisLocal(this.memberContext); |
- @override |
- MemberElement get memberContext => executableContext.memberContext; |
+ Entity get executableContext => memberContext; |
String get name => 'this'; |
- ClassElement get enclosingClass => executableContext.enclosingClass; |
+ ClassEntity get enclosingClass => memberContext.enclosingClass; |
} |
/// Call method of a closure class. |
@@ -652,8 +651,8 @@ class ClosureTranslator extends Visitor { |
updateClosures(); |
} |
- void translateLazyInitializer(VariableElement element, |
- VariableDefinitions node, Expression initializer) { |
+ void translateLazyInitializer( |
+ FieldElement element, VariableDefinitions node, Expression initializer) { |
visitInvokable(element, node, () { |
visit(initializer); |
}); |
@@ -1120,7 +1119,8 @@ class ClosureTranslator extends Visitor { |
outermostElement = element; |
ThisLocal thisElement = null; |
if (element.isInstanceMember || element.isGenerativeConstructor) { |
- thisElement = new ThisLocal(element); |
+ MemberElement member = element; |
+ thisElement = new ThisLocal(member); |
} |
closureData = new ClosureClassMap(null, null, null, thisElement); |
if (element is MethodElement) { |