Chromium Code Reviews| Index: compiler/java/com/google/dart/compiler/resolver/ClassScope.java |
| diff --git a/compiler/java/com/google/dart/compiler/resolver/ClassScope.java b/compiler/java/com/google/dart/compiler/resolver/ClassScope.java |
| index a1b9a5bb08e86b5bbb011b4906c4a87586178975..e8e835cb3886c87b6343ba4d88f2f1a83cb308ce 100644 |
| --- a/compiler/java/com/google/dart/compiler/resolver/ClassScope.java |
| +++ b/compiler/java/com/google/dart/compiler/resolver/ClassScope.java |
| @@ -55,15 +55,28 @@ class ClassScope extends Scope { |
| } |
| } |
| } |
| - |
| + |
| List<InterfaceType> interfaces = classElement.getInterfaces(); |
| for (int i = 0, size = interfaces.size(); i < size; i++) { |
| - InterfaceType supertype = interfaces.get(i); |
| - Element enclosing = supertype.getElement().getEnclosingElement(); |
| - ClassElement superclassElement = supertype.getElement(); |
| - if (!examinedTypes.contains(superclassElement)) { |
| - ClassScope scope = new ClassScope(superclassElement, |
| + InterfaceType intf = interfaces.get(i); |
| + ClassElement intfElement = intf.getElement(); |
| + if (!examinedTypes.contains(intfElement)) { |
| + Element enclosing = intf.getElement().getEnclosingElement(); |
| + MixinScope scope = new MixinScope(intfElement, |
|
Brian Wilkerson
2013/01/09 16:17:41
I think this wanted to still be ClassScope and you
|
| new Scope("library", (LibraryElement) enclosing)); |
| + element = scope.findElement(inLibrary, name); |
| + if (element != null) { |
| + return element; |
| + } |
| + } |
| + } |
| + |
| + List<InterfaceType> mixins = classElement.getMixins(); |
| + for (int i = 0, size = mixins.size(); i < size; i++) { |
| + InterfaceType mixin = mixins.get(i); |
| + ClassElement mixinElement = mixin.getElement(); |
| + if (!examinedTypes.contains(mixinElement)) { |
| + ClassScope scope = new ClassScope(mixinElement, null); |
| element = scope.findElement(inLibrary, name, examinedTypes); |
| if (element != null) { |
| return element; |