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 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]
  [EnumElement]
  [ExecutableElement]
    [ConstructorElement]
    [LocalFunctionElement]
    [MethodElement]
    [PropertyAccessorElement]
      [GetterElement]
      [SetterElement]
    [TopLevelFunctionElement]
  [ExtensionElement]
  [ExtensionTypeElement]
  [FormalParameterElement]
    [FieldFormalParameterElement]
    [SuperFormalParameterElement]
  [GenericFunctionTypeElement]
  [LabelElement]
  [LibraryElement]
  [MixinElement]
  [MultiplyDefinedElement]
  [PrefixElement]
  [TypeAliasElement]
  [TypeParameterElement]
  [VariableElement]
    [LocalVariableElement]
    [PropertyInducingElement]
      [FieldElement]
      [TopLevelVariableElement]

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

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
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
visitFormalParameterElement(FormalParameterElement element) → R?
override
visitGenericFunctionTypeElement(GenericFunctionTypeElement element) → R?
override
visitGetterElement(GetterElement element) → R?
override
visitLabelElement(LabelElement element) → R?
override
visitLibraryElement(LibraryElement element) → R?
override
visitLocalFunctionElement(LocalFunctionElement element) → R?
override
visitLocalVariableElement(LocalVariableElement element) → R?
override
visitMethodElement(MethodElement element) → R?
override
visitMixinElement(MixinElement element) → R?
override
visitMultiplyDefinedElement(MultiplyDefinedElement element) → R?
override
visitPrefixElement(PrefixElement element) → R?
override
visitPropertyAccessorElement(PropertyAccessorElement element) → R?
visitPropertyInducingElement(PropertyInducingElement element) → R?
visitSetterElement(SetterElement element) → R?
override
visitSuperFormalParameterElement(SuperFormalParameterElement element) → R?
override
visitTopLevelFunctionElement(TopLevelFunctionElement 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