Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/universe/universe.dart |
| =================================================================== |
| --- sdk/lib/_internal/compiler/implementation/universe/universe.dart (revision 18117) |
| +++ sdk/lib/_internal/compiler/implementation/universe/universe.dart (working copy) |
| @@ -430,12 +430,14 @@ |
| * invoked on an instance of [cls]. |
| */ |
| bool hasElementIn(ClassElement cls, Element element) { |
| - Element resolved = cls.lookupMember(element.name); |
| - if (identical(resolved, element)) return true; |
| - if (resolved == null) return false; |
| - if (identical(resolved.kind, ElementKind.ABSTRACT_FIELD)) { |
| + // Use the selector for the lookup instead of [:element.name:] |
| + // because the selector has the right privacy information. |
| + Element resolved = cls.lookupSelector(this); |
| + if (resolved == element) return true; |
| + if (resolved == null) return ; |
|
Johnni Winther
2013/02/05 11:07:35
Why not return false here?
ngeoffray
2013/02/05 11:17:30
Bad edit. Thanks for spotting it!
|
| + if (resolved.isAbstractField()) { |
| AbstractFieldElement field = resolved; |
| - if (identical(element, field.getter) || identical(element, field.setter)) { |
| + if (element == field.getter || element == field.setter) { |
| return true; |
| } else { |
| ClassElement otherCls = field.getEnclosingClass(); |