GeneralizingElementVisitor2<R> class
An element visitor that will recursively visit all of the elements in an element model (like instances of the class RecursiveElementVisitor2). In addition, when an element of a specific type is visited not only will the visit method for that specific type of element be invoked, but additional methods for the supertypes of that element will also be invoked. For example, using an instance of this class to visit a MethodElement2 will cause the method visitMethodElement to be invoked but will also cause the methods visitExecutableElement and visitElement to be subsequently invoked. This allows visitors to be written that visit all executable elements without needing to override the visit method for each of the specific subclasses of ExecutableElement2.
Note, however, that unlike many visitors, element visitors visit objects based on the interfaces implemented by those elements. Because interfaces form a graph structure rather than a tree structure the way classes do, and because it is generally undesirable for an object to be visited more than once, this class flattens the interface graph into a pseudo-tree. In particular, this class treats elements as if the element types were structured in the following way:
[Element2] [ClassElement2] [ExecutableElement2] [ConstructorElement2] [GetterElement] [LocalFunctionElement] [MethodElement2] [SetterElement] [LabelElement2] [LibraryElement2] [MultiplyDefinedElement2] [PrefixElement2] [TypeAliasElement2] [TypeParameterElement2] [VariableElement2] [PropertyInducingElement2] [FieldElement2] [TopLevelVariableElement2] [PromotableElement2] [LocalVariableElement2] [FormalParameterElement] [FieldFormalParameterElement2] [SuperFormalParameterElement2]
Subclasses that override a visit method must either invoke the overridden visit method or explicitly invoke the more general visit method. Failure to do so will cause the visit methods for superclasses of the element to not be invoked and will cause the children of the visited node to not be visited.
Clients may extend this class.
- Implemented types
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
visitClassElement(
ClassElement2 element) → R? -
override
-
visitConstructorElement(
ConstructorElement2 element) → R? -
override
-
visitElement(
Element2 element) → R? -
visitEnumElement(
EnumElement2 element) → R? -
override
-
visitExecutableElement(
ExecutableElement2 element) → R? -
visitExtensionElement(
ExtensionElement2 element) → R? -
override
-
visitExtensionTypeElement(
ExtensionTypeElement2 element) → R? -
override
-
visitFieldElement(
FieldElement2 element) → R? -
override
-
visitFieldFormalParameterElement(
FieldFormalParameterElement2 element) → R? -
override
-
visitFormalParameterElement(
FormalParameterElement element) → R? -
override
-
visitGenericFunctionTypeElement(
GenericFunctionTypeElement2 element) → R? -
override
-
visitGetterElement(
GetterElement element) → R? -
override
-
visitLabelElement(
LabelElement2 element) → R? -
override
-
visitLibraryElement(
LibraryElement2 element) → R? -
override
-
visitLocalFunctionElement(
LocalFunctionElement element) → R? -
override
-
visitLocalVariableElement(
LocalVariableElement2 element) → R? -
override
-
visitMethodElement(
MethodElement2 element) → R? -
override
-
visitMixinElement(
MixinElement2 element) → R? -
override
-
visitMultiplyDefinedElement(
MultiplyDefinedElement2 element) → R? -
override
-
visitPrefixElement(
PrefixElement2 element) → R? -
override
-
visitPropertyInducingElement(
PropertyInducingElement2 element) → R? -
visitSetterElement(
SetterElement element) → R? -
override
-
visitSuperFormalParameterElement(
SuperFormalParameterElement2 element) → R? -
override
-
visitTopLevelFunctionElement(
TopLevelFunctionElement element) → R? -
override
-
visitTopLevelVariableElement(
TopLevelVariableElement2 element) → R? -
override
-
visitTypeAliasElement(
TypeAliasElement2 element) → R? -
override
-
visitTypeParameterElement(
TypeParameterElement2 element) → R? -
override
-
visitVariableElement(
VariableElement2 element) → R?
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited