Chromium Code Reviews| Index: pkg/analyzer/lib/src/generated/element_resolver.dart |
| diff --git a/pkg/analyzer/lib/src/generated/element_resolver.dart b/pkg/analyzer/lib/src/generated/element_resolver.dart |
| index e10f99b70b0a8ff1d4a7c9061c811dc863d33a05..04908758af4a90f6411e7cbb279efac5688eb04c 100644 |
| --- a/pkg/analyzer/lib/src/generated/element_resolver.dart |
| +++ b/pkg/analyzer/lib/src/generated/element_resolver.dart |
| @@ -1031,6 +1031,7 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
| } |
| } |
| node.staticElement = element; |
| + _markElementUsed(element); |
| if (node.inSetterContext() && node.inGetterContext() && enclosingClass != null) { |
| InterfaceType enclosingType = enclosingClass.type; |
| AuxiliaryElements auxiliaryElements = new AuxiliaryElements(_lookUpGetter(null, enclosingType, node.name), null); |
| @@ -1902,6 +1903,20 @@ class ElementResolver extends SimpleAstVisitor<Object> { |
| } |
| /** |
| + * Marks [element] as used in its defining library. |
| + */ |
| + void _markElementUsed(Element element) { |
|
Brian Wilkerson
2014/11/10 23:34:47
This seems overly complex. Would it be sufficient
scheglov
2014/11/11 02:57:06
Done.
|
| + if (identical(element, _resolver.enclosingClass)) { |
| + return; |
| + } |
| + if (element is ElementImpl && |
| + element.enclosingElement is CompilationUnitElement && |
| + identical(element.library, _definingLibrary)) { |
| + element.markUsed(); |
| + } |
| + } |
| + |
| + /** |
| * Given some class element, this method uses [subtypeManager] to find the set of all |
| * subtypes; the subtypes are then searched for a member (method, getter, or setter), that matches |
| * a passed |