Index: lib/compiler/implementation/elements/elements.dart |
diff --git a/lib/compiler/implementation/elements/elements.dart b/lib/compiler/implementation/elements/elements.dart |
index 3775bc740d446d42d288da93064db6a366e48a8f..70560c1a69d6a93bb95bb31b0c8dacae8f3aa99d 100644 |
--- a/lib/compiler/implementation/elements/elements.dart |
+++ b/lib/compiler/implementation/elements/elements.dart |
@@ -342,6 +342,10 @@ class Element implements Hashable, Spannable { |
FunctionElement asFunctionElement() => null; |
+ bool inStaticContext() { |
+ return modifiers !== null && modifiers.isStatic(); |
+ } |
+ |
Element cloneTo(Element enclosing, DiagnosticListener listener) { |
listener.cancel("Unimplemented cloneTo", element: this); |
} |
@@ -856,13 +860,12 @@ class VariableListElement extends Element { |
return isMember() && !modifiers.isStatic(); |
} |
+ bool inStaticContext() { |
+ return super.inStaticContext() || enclosingElement.inStaticContext(); |
+ } |
+ |
Scope buildScope() { |
- Scope result = new VariableScope(enclosingElement.buildScope(), this); |
- if (enclosingElement.isClass()) { |
- ClassScope clsScope = result.parent; |
- clsScope.inStaticContext = !isInstanceMember(); |
- } |
- return result; |
+ return new VariableScope(enclosingElement.buildScope(), this); |
} |
} |
@@ -1125,13 +1128,7 @@ class FunctionElement extends Element { |
} |
Scope buildScope() { |
Johnni Winther
2012/10/02 09:07:30
Remove this method. MethodScope is mutable and sho
aam-me
2012/10/02 12:50:39
Johnni,
removing this method causes "Internal e
Johnni Winther
2012/10/03 10:40:33
OK. Just leave it there. I'll try to remove it in
|
- Scope result = |
- new MethodScope(enclosingElement.buildScope(), this); |
- if (enclosingElement.isClass()) { |
- Scope clsScope = result.parent; |
- clsScope.inStaticContext = !isInstanceMember() && !isConstructor(); |
- } |
- return result; |
+ return new MethodScope(enclosingElement.buildScope(), this); |
} |
} |