Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/elements/modelx.dart |
| =================================================================== |
| --- sdk/lib/_internal/compiler/implementation/elements/modelx.dart (revision 19425) |
| +++ sdk/lib/_internal/compiler/implementation/elements/modelx.dart (working copy) |
| @@ -1521,7 +1521,7 @@ |
| * When called on the implementation element both members declared in the |
| * origin and the patch class are returned. |
| */ |
| - Element lookupSelector(Selector selector) { |
| + Element lookupSelector(Selector selector, {bool superLookup: false}) { |
| SourceString name = selector.name; |
| bool isPrivate = name.isPrivate(); |
| LibraryElement library = selector.library; |
| @@ -1533,7 +1533,10 @@ |
| // Private members from a different library are not visible. |
| if (isPrivate && !identical(library, member.getLibrary())) continue; |
| // Static members are not inherited. |
| - if (member.modifiers.isStatic() && !identical(this, current)) continue; |
| + if (member.modifiers.isStatic() && |
| + (superLookup || !identical(this, current))) { |
|
kasperl
2013/03/05 07:32:36
Hmm. It sounds like superLookup means something di
ngeoffray
2013/03/05 08:46:25
The lookup rules are different when you're looking
|
| + continue; |
| + } |
| // If we find an abstract field we have to make sure that it has |
| // the getter or setter part we're actually looking |
| // for. Otherwise, we continue up the superclass chain. |