GeneralizingElementVisitor<R> class
An element visitor that will recursively visit all of the elements in an element model (like instances of the class RecursiveElementVisitor). 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 MethodElement 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 ExecutableElement.
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:
Element ClassElement CompilationUnitElement ExecutableElement ConstructorElement LocalElement FunctionElement MethodElement PropertyAccessorElement ExportElement HtmlElement ImportElement LabelElement LibraryElement MultiplyDefinedElement PrefixElement TypeAliasElement TypeParameterElement UndefinedElement VariableElement PropertyInducingElement FieldElement TopLevelVariableElement LocalElement LocalVariableElement ParameterElement FieldFormalParameterElement
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
- GeneralizingElementVisitor()
-
Initialize a newly created visitor.
const
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(
ClassElement element) → R? -
override
-
visitCompilationUnitElement(
CompilationUnitElement element) → R? -
override
-
visitConstructorElement(
ConstructorElement element) → R? -
override
-
visitElement(
Element element) → R? -
visitEnumElement(
EnumElement element) → R? -
override
-
visitExecutableElement(
ExecutableElement element) → R? -
visitExtensionElement(
ExtensionElement element) → R? -
override
-
visitExtensionTypeElement(
ExtensionTypeElement element) → R? -
override
-
visitFieldElement(
FieldElement element) → R? -
override
-
visitFieldFormalParameterElement(
FieldFormalParameterElement element) → R? -
override
-
visitFunctionElement(
FunctionElement element) → R? -
override
-
visitGenericFunctionTypeElement(
GenericFunctionTypeElement element) → R? -
override
-
visitLabelElement(
LabelElement element) → R? -
override
-
visitLibraryElement(
LibraryElement element) → R? -
override
-
visitLibraryExportElement(
LibraryExportElement element) → R? -
override
-
visitLibraryImportElement(
LibraryImportElement element) → R? -
override
-
visitLocalElement(
LocalElement element) → R? -
visitLocalVariableElement(
LocalVariableElement element) → R? -
override
-
visitMethodElement(
MethodElement element) → R? -
override
-
visitMixinElement(
MixinElement element) → R? -
override
-
visitMultiplyDefinedElement(
MultiplyDefinedElement element) → R? -
override
-
visitParameterElement(
ParameterElement element) → R? -
override
-
visitPartElement(
PartElement element) → R? -
override
-
visitPrefixElement(
PrefixElement element) → R? -
override
-
visitPropertyAccessorElement(
PropertyAccessorElement element) → R? -
override
-
visitPropertyInducingElement(
PropertyInducingElement element) → R? -
visitSuperFormalParameterElement(
SuperFormalParameterElement element) → R? -
override
-
visitTopLevelVariableElement(
TopLevelVariableElement element) → R? -
override
-
visitTypeAliasElement(
TypeAliasElement element) → R? -
override
-
visitTypeParameterElement(
TypeParameterElement element) → R? -
override
-
visitVariableElement(
VariableElement element) → R?
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited