Index: pkg/analyzer/lib/src/generated/element.dart |
diff --git a/pkg/analyzer/lib/src/generated/element.dart b/pkg/analyzer/lib/src/generated/element.dart |
index 5615521c812c571d223f9cc072fb4164d687a599..755b8c670a5ab294199462e4e73fad76d1ea610e 100644 |
--- a/pkg/analyzer/lib/src/generated/element.dart |
+++ b/pkg/analyzer/lib/src/generated/element.dart |
@@ -3384,6 +3384,26 @@ abstract class ElementImpl implements Element { |
return shortName; |
} |
+ /** |
+ * Return `true` if this element is used or potentially can be used. |
+ * |
+ * For a top-level element: it is public, or it is private and used in the |
+ * defining library. |
+ * |
+ * For a local variable: its value is used (i.e. purely read or invoked) |
+ * somewhere in its scope. |
+ * |
+ * This information is only available for local variables (including |
+ * parameters) and only after the compilation unit containing the element |
+ * has been resolved. |
+ */ |
+ bool get isUsed { |
+ if (isPublic) { |
+ return true; |
+ } |
+ return hasModifier(Modifier.IS_USED_IN_LIBRARY); |
+ } |
+ |
@override |
LibraryElement get library => getAncestor((element) => element is LibraryElement); |
@@ -3551,6 +3571,13 @@ abstract class ElementImpl implements Element { |
bool hasModifier(Modifier modifier) => BooleanArray.getEnum(_modifiers, modifier); |
/** |
+ * Specifies that the element is used. |
+ */ |
+ void markUsed() { |
+ setModifier(Modifier.IS_USED_IN_LIBRARY, true); |
+ } |
+ |
+ /** |
* If the given child is not `null`, use the given visitor to visit it. |
* |
* @param child the child to be visited |
@@ -8270,6 +8297,11 @@ class LocalVariableElementImpl extends VariableElementImpl implements LocalVaria |
accept(ElementVisitor visitor) => visitor.visitLocalVariableElement(this); |
@override |
+ bool get isUsed { |
+ return hasModifier(Modifier.IS_USED_IN_LIBRARY); |
+ } |
+ |
+ @override |
ElementKind get kind => ElementKind.LOCAL_VARIABLE; |
@override |
@@ -8295,9 +8327,6 @@ class LocalVariableElementImpl extends VariableElementImpl implements LocalVaria |
@override |
bool get isPotentiallyMutatedInScope => hasModifier(Modifier.POTENTIALLY_MUTATED_IN_SCOPE); |
- @override |
- bool get isUsed => hasModifier(Modifier.IS_USED_VARIABLE); |
- |
/** |
* Specifies that this variable is potentially mutated somewhere in closure. |
*/ |
@@ -8313,13 +8342,6 @@ class LocalVariableElementImpl extends VariableElementImpl implements LocalVaria |
} |
/** |
- * Specifies that the value of this variable is used. |
- */ |
- void markUsed() { |
- setModifier(Modifier.IS_USED_VARIABLE, true); |
- } |
- |
- /** |
* Set the toolkit specific information objects attached to this variable. |
* |
* @param toolkitObjects the toolkit objects attached to this variable |
@@ -8780,9 +8802,16 @@ class Modifier extends Enum<Modifier> { |
static const Modifier HAS_EXT_URI = const Modifier('HAS_EXT_URI', 9); |
/** |
- * Indicates that the value of a variable is used - read or invoked. |
+ * Indicates that the element is used in the declaring library. |
+ * |
+ * |
+ * For a top-level element: it is public, or it is private and used in the |
+ * defining library. |
+ * |
+ * For a local variable: its value is used (i.e. purely read or invoked) |
+ * somewhere in its scope. |
*/ |
- static const Modifier IS_USED_VARIABLE = const Modifier('IS_USED_VARIABLE', 10); |
+ static const Modifier IS_USED_IN_LIBRARY = const Modifier('IS_USED_IN_LIBRARY', 10); |
/** |
* Indicates that a class can validly be used as a mixin. |
@@ -8838,7 +8867,7 @@ class Modifier extends Enum<Modifier> { |
GENERATOR, |
GETTER, |
HAS_EXT_URI, |
- IS_USED_VARIABLE, |
+ IS_USED_IN_LIBRARY, |
MIXIN, |
POTENTIALLY_MUTATED_IN_CONTEXT, |
POTENTIALLY_MUTATED_IN_SCOPE, |
@@ -11621,14 +11650,6 @@ abstract class VariableElementImpl extends ElementImpl implements VariableElemen |
bool get isFinal => hasModifier(Modifier.FINAL); |
/** |
- * Return `true` if this variable is used (i.e. purely read or invoked) |
- * somewhere in its scope. This information is only available for local |
- * variables (including parameters) and only after the compilation unit |
- * containing the variable has been resolved. |
- */ |
- bool get isUsed => false; |
- |
- /** |
* Return `true` if this variable is potentially mutated somewhere in a closure. This |
* information is only available for local variables (including parameters) and only after the |
* compilation unit containing the variable has been resolved. |