Visitor

Trait Visitor 

Source
pub trait Visitor {
Show 102 methods // Provided methods fn visit_source_unit( &mut self, _source_unit: &SourceUnit, ) -> Result<VisitorAction> { ... } fn visit_import_directive( &mut self, _directive: &ImportDirective, ) -> Result<VisitorAction> { ... } fn visit_pragma_directive( &mut self, _directive: &PragmaDirective, ) -> Result<VisitorAction> { ... } fn visit_block(&mut self, _block: &Block) -> Result<VisitorAction> { ... } fn visit_statement( &mut self, _statement: &Statement, ) -> Result<VisitorAction> { ... } fn visit_expression( &mut self, _expression: &Expression, ) -> Result<VisitorAction> { ... } fn visit_function_call( &mut self, _function_call: &FunctionCall, ) -> Result<VisitorAction> { ... } fn visit_user_defined_type_name( &mut self, _type_name: &UserDefinedTypeName, ) -> Result<VisitorAction> { ... } fn visit_identifier_path( &mut self, _identifier_path: &IdentifierPath, ) -> Result<VisitorAction> { ... } fn visit_type_name( &mut self, _type_name: &TypeName, ) -> Result<VisitorAction> { ... } fn visit_parameter_list( &mut self, _parameter_list: &ParameterList, ) -> Result<VisitorAction> { ... } fn visit_function_definition( &mut self, _definition: &FunctionDefinition, ) -> Result<VisitorAction> { ... } fn visit_enum_definition( &mut self, _definition: &EnumDefinition, ) -> Result<VisitorAction> { ... } fn visit_error_definition( &mut self, _definition: &ErrorDefinition, ) -> Result<VisitorAction> { ... } fn visit_event_definition( &mut self, _definition: &EventDefinition, ) -> Result<VisitorAction> { ... } fn visit_struct_definition( &mut self, _definition: &StructDefinition, ) -> Result<VisitorAction> { ... } fn visit_modifier_definition( &mut self, _definition: &ModifierDefinition, ) -> Result<VisitorAction> { ... } fn visit_variable_declaration( &mut self, _declaration: &VariableDeclaration, ) -> Result<VisitorAction> { ... } fn visit_overrides( &mut self, _specifier: &OverrideSpecifier, ) -> Result<VisitorAction> { ... } fn visit_user_defined_value_type( &mut self, _value_type: &UserDefinedValueTypeDefinition, ) -> Result<VisitorAction> { ... } fn visit_contract_definition( &mut self, _definition: &ContractDefinition, ) -> Result<VisitorAction> { ... } fn visit_using_for( &mut self, _directive: &UsingForDirective, ) -> Result<VisitorAction> { ... } fn visit_unary_operation( &mut self, _unary_op: &UnaryOperation, ) -> Result<VisitorAction> { ... } fn visit_binary_operation( &mut self, _binary_op: &BinaryOperation, ) -> Result<VisitorAction> { ... } fn visit_conditional( &mut self, _conditional: &Conditional, ) -> Result<VisitorAction> { ... } fn visit_tuple_expression( &mut self, _tuple_expression: &TupleExpression, ) -> Result<VisitorAction> { ... } fn visit_new_expression( &mut self, _new_expression: &NewExpression, ) -> Result<VisitorAction> { ... } fn visit_assignment( &mut self, _assignment: &Assignment, ) -> Result<VisitorAction> { ... } fn visit_identifier( &mut self, _identifier: &Identifier, ) -> Result<VisitorAction> { ... } fn visit_index_access( &mut self, _index_access: &IndexAccess, ) -> Result<VisitorAction> { ... } fn visit_index_range_access( &mut self, _index_range_access: &IndexRangeAccess, ) -> Result<VisitorAction> { ... } fn visit_while_statement( &mut self, _while_statement: &WhileStatement, ) -> Result<VisitorAction> { ... } fn visit_for_statement( &mut self, _for_statement: &ForStatement, ) -> Result<VisitorAction> { ... } fn visit_if_statement( &mut self, _if_statement: &IfStatement, ) -> Result<VisitorAction> { ... } fn visit_do_while_statement( &mut self, _do_while_statement: &DoWhileStatement, ) -> Result<VisitorAction> { ... } fn visit_emit_statement( &mut self, _emit_statement: &EmitStatement, ) -> Result<VisitorAction> { ... } fn visit_unchecked_block( &mut self, _unchecked_block: &UncheckedBlock, ) -> Result<VisitorAction> { ... } fn visit_try_statement( &mut self, _try_statement: &TryStatement, ) -> Result<VisitorAction> { ... } fn visit_revert_statement( &mut self, _revert_statement: &RevertStatement, ) -> Result<VisitorAction> { ... } fn visit_member_access( &mut self, _member_access: &MemberAccess, ) -> Result<VisitorAction> { ... } fn visit_mapping(&mut self, _mapping: &Mapping) -> Result<VisitorAction> { ... } fn visit_elementary_type_name( &mut self, _elementary_type_name: &ElementaryTypeName, ) -> Result<VisitorAction> { ... } fn visit_literal(&mut self, _literal: &Literal) -> Result<VisitorAction> { ... } fn visit_function_type_name( &mut self, _function_type_name: &FunctionTypeName, ) -> Result<VisitorAction> { ... } fn visit_array_type_name( &mut self, _array_type_name: &ArrayTypeName, ) -> Result<VisitorAction> { ... } fn visit_function_call_options( &mut self, _function_call: &FunctionCallOptions, ) -> Result<VisitorAction> { ... } fn visit_return(&mut self, _return: &Return) -> Result<VisitorAction> { ... } fn visit_inheritance_specifier( &mut self, _specifier: &InheritanceSpecifier, ) -> Result<VisitorAction> { ... } fn visit_modifier_invocation( &mut self, _invocation: &ModifierInvocation, ) -> Result<VisitorAction> { ... } fn visit_inline_assembly( &mut self, _assembly: &InlineAssembly, ) -> Result<VisitorAction> { ... } fn visit_external_assembly_reference( &mut self, _ref: &ExternalInlineAssemblyReference, ) -> Result<VisitorAction> { ... } fn post_visit_source_unit( &mut self, _source_unit: &SourceUnit, ) -> Result<()> { ... } fn post_visit_import_directive( &mut self, _directive: &ImportDirective, ) -> Result<()> { ... } fn post_visit_pragma_directive( &mut self, _directive: &PragmaDirective, ) -> Result<()> { ... } fn post_visit_block(&mut self, _block: &Block) -> Result<()> { ... } fn post_visit_statement(&mut self, _statement: &Statement) -> Result<()> { ... } fn post_visit_expression(&mut self, _expression: &Expression) -> Result<()> { ... } fn post_visit_function_call( &mut self, _function_call: &FunctionCall, ) -> Result<()> { ... } fn post_visit_user_defined_type_name( &mut self, _type_name: &UserDefinedTypeName, ) -> Result<()> { ... } fn post_visit_identifier_path( &mut self, _identifier_path: &IdentifierPath, ) -> Result<()> { ... } fn post_visit_type_name(&mut self, _type_name: &TypeName) -> Result<()> { ... } fn post_visit_parameter_list( &mut self, _parameter_list: &ParameterList, ) -> Result<()> { ... } fn post_visit_function_definition( &mut self, _definition: &FunctionDefinition, ) -> Result<()> { ... } fn post_visit_enum_definition( &mut self, _definition: &EnumDefinition, ) -> Result<()> { ... } fn post_visit_error_definition( &mut self, _definition: &ErrorDefinition, ) -> Result<()> { ... } fn post_visit_event_definition( &mut self, _definition: &EventDefinition, ) -> Result<()> { ... } fn post_visit_struct_definition( &mut self, _definition: &StructDefinition, ) -> Result<()> { ... } fn post_visit_modifier_definition( &mut self, _definition: &ModifierDefinition, ) -> Result<()> { ... } fn post_visit_variable_declaration( &mut self, _declaration: &VariableDeclaration, ) -> Result<()> { ... } fn post_visit_overrides( &mut self, _specifier: &OverrideSpecifier, ) -> Result<()> { ... } fn post_visit_user_defined_value_type( &mut self, _value_type: &UserDefinedValueTypeDefinition, ) -> Result<()> { ... } fn post_visit_contract_definition( &mut self, _definition: &ContractDefinition, ) -> Result<()> { ... } fn post_visit_using_for( &mut self, _directive: &UsingForDirective, ) -> Result<()> { ... } fn post_visit_unary_operation( &mut self, _unary_op: &UnaryOperation, ) -> Result<()> { ... } fn post_visit_binary_operation( &mut self, _binary_op: &BinaryOperation, ) -> Result<()> { ... } fn post_visit_conditional( &mut self, _conditional: &Conditional, ) -> Result<()> { ... } fn post_visit_tuple_expression( &mut self, _tuple_expression: &TupleExpression, ) -> Result<()> { ... } fn post_visit_new_expression( &mut self, _new_expression: &NewExpression, ) -> Result<()> { ... } fn post_visit_assignment(&mut self, _assignment: &Assignment) -> Result<()> { ... } fn post_visit_identifier(&mut self, _identifier: &Identifier) -> Result<()> { ... } fn post_visit_index_access( &mut self, _index_access: &IndexAccess, ) -> Result<()> { ... } fn post_visit_index_range_access( &mut self, _index_range_access: &IndexRangeAccess, ) -> Result<()> { ... } fn post_visit_while_statement( &mut self, _while_statement: &WhileStatement, ) -> Result<()> { ... } fn post_visit_for_statement( &mut self, _for_statement: &ForStatement, ) -> Result<()> { ... } fn post_visit_if_statement( &mut self, _if_statement: &IfStatement, ) -> Result<()> { ... } fn post_visit_do_while_statement( &mut self, _do_while_statement: &DoWhileStatement, ) -> Result<()> { ... } fn post_visit_emit_statement( &mut self, _emit_statement: &EmitStatement, ) -> Result<()> { ... } fn post_visit_unchecked_block( &mut self, _unchecked_block: &UncheckedBlock, ) -> Result<()> { ... } fn post_visit_try_statement( &mut self, _try_statement: &TryStatement, ) -> Result<()> { ... } fn post_visit_revert_statement( &mut self, _revert_statement: &RevertStatement, ) -> Result<()> { ... } fn post_visit_member_access( &mut self, _member_access: &MemberAccess, ) -> Result<()> { ... } fn post_visit_mapping(&mut self, _mapping: &Mapping) -> Result<()> { ... } fn post_visit_elementary_type_name( &mut self, _elementary_type_name: &ElementaryTypeName, ) -> Result<()> { ... } fn post_visit_literal(&mut self, _literal: &Literal) -> Result<()> { ... } fn post_visit_function_type_name( &mut self, _function_type_name: &FunctionTypeName, ) -> Result<()> { ... } fn post_visit_array_type_name( &mut self, _array_type_name: &ArrayTypeName, ) -> Result<()> { ... } fn post_visit_function_call_options( &mut self, _function_call: &FunctionCallOptions, ) -> Result<()> { ... } fn post_visit_return(&mut self, _return: &Return) -> Result<()> { ... } fn post_visit_inheritance_specifier( &mut self, _specifier: &InheritanceSpecifier, ) -> Result<()> { ... } fn post_visit_modifier_invocation( &mut self, _invocation: &ModifierInvocation, ) -> Result<()> { ... } fn post_visit_inline_assembly( &mut self, _assembly: &InlineAssembly, ) -> Result<()> { ... } fn post_visit_external_assembly_reference( &mut self, _ref: &ExternalInlineAssemblyReference, ) -> Result<()> { ... }
}
Expand description

Trait for implementing AST visitors that can traverse Solidity source code.

This trait provides methods for visiting each type of AST node in a Solidity source unit. Implementors can override specific methods to perform custom analysis or transformations on the AST.

All methods have default implementations that do nothing, allowing implementors to only override the methods they need.

Provided Methods§

Source

fn visit_source_unit( &mut self, _source_unit: &SourceUnit, ) -> Result<VisitorAction>

Visits a source unit (the root of a Solidity file).

§Arguments
  • _source_unit - The source unit to visit
§Returns

A Result containing a VisitorAction indicating how to proceed with traversal.

Source

fn visit_import_directive( &mut self, _directive: &ImportDirective, ) -> Result<VisitorAction>

Source

fn visit_pragma_directive( &mut self, _directive: &PragmaDirective, ) -> Result<VisitorAction>

Source

fn visit_block(&mut self, _block: &Block) -> Result<VisitorAction>

Source

fn visit_statement(&mut self, _statement: &Statement) -> Result<VisitorAction>

Source

fn visit_expression( &mut self, _expression: &Expression, ) -> Result<VisitorAction>

Source

fn visit_function_call( &mut self, _function_call: &FunctionCall, ) -> Result<VisitorAction>

Source

fn visit_user_defined_type_name( &mut self, _type_name: &UserDefinedTypeName, ) -> Result<VisitorAction>

Source

fn visit_identifier_path( &mut self, _identifier_path: &IdentifierPath, ) -> Result<VisitorAction>

Source

fn visit_type_name(&mut self, _type_name: &TypeName) -> Result<VisitorAction>

Source

fn visit_parameter_list( &mut self, _parameter_list: &ParameterList, ) -> Result<VisitorAction>

Source

fn visit_function_definition( &mut self, _definition: &FunctionDefinition, ) -> Result<VisitorAction>

Source

fn visit_enum_definition( &mut self, _definition: &EnumDefinition, ) -> Result<VisitorAction>

Source

fn visit_error_definition( &mut self, _definition: &ErrorDefinition, ) -> Result<VisitorAction>

Source

fn visit_event_definition( &mut self, _definition: &EventDefinition, ) -> Result<VisitorAction>

Source

fn visit_struct_definition( &mut self, _definition: &StructDefinition, ) -> Result<VisitorAction>

Source

fn visit_modifier_definition( &mut self, _definition: &ModifierDefinition, ) -> Result<VisitorAction>

Source

fn visit_variable_declaration( &mut self, _declaration: &VariableDeclaration, ) -> Result<VisitorAction>

Source

fn visit_overrides( &mut self, _specifier: &OverrideSpecifier, ) -> Result<VisitorAction>

Source

fn visit_user_defined_value_type( &mut self, _value_type: &UserDefinedValueTypeDefinition, ) -> Result<VisitorAction>

Source

fn visit_contract_definition( &mut self, _definition: &ContractDefinition, ) -> Result<VisitorAction>

Source

fn visit_using_for( &mut self, _directive: &UsingForDirective, ) -> Result<VisitorAction>

Source

fn visit_unary_operation( &mut self, _unary_op: &UnaryOperation, ) -> Result<VisitorAction>

Source

fn visit_binary_operation( &mut self, _binary_op: &BinaryOperation, ) -> Result<VisitorAction>

Source

fn visit_conditional( &mut self, _conditional: &Conditional, ) -> Result<VisitorAction>

Source

fn visit_tuple_expression( &mut self, _tuple_expression: &TupleExpression, ) -> Result<VisitorAction>

Source

fn visit_new_expression( &mut self, _new_expression: &NewExpression, ) -> Result<VisitorAction>

Source

fn visit_assignment( &mut self, _assignment: &Assignment, ) -> Result<VisitorAction>

Source

fn visit_identifier( &mut self, _identifier: &Identifier, ) -> Result<VisitorAction>

Source

fn visit_index_access( &mut self, _index_access: &IndexAccess, ) -> Result<VisitorAction>

Source

fn visit_index_range_access( &mut self, _index_range_access: &IndexRangeAccess, ) -> Result<VisitorAction>

Source

fn visit_while_statement( &mut self, _while_statement: &WhileStatement, ) -> Result<VisitorAction>

Source

fn visit_for_statement( &mut self, _for_statement: &ForStatement, ) -> Result<VisitorAction>

Source

fn visit_if_statement( &mut self, _if_statement: &IfStatement, ) -> Result<VisitorAction>

Source

fn visit_do_while_statement( &mut self, _do_while_statement: &DoWhileStatement, ) -> Result<VisitorAction>

Source

fn visit_emit_statement( &mut self, _emit_statement: &EmitStatement, ) -> Result<VisitorAction>

Source

fn visit_unchecked_block( &mut self, _unchecked_block: &UncheckedBlock, ) -> Result<VisitorAction>

Source

fn visit_try_statement( &mut self, _try_statement: &TryStatement, ) -> Result<VisitorAction>

Source

fn visit_revert_statement( &mut self, _revert_statement: &RevertStatement, ) -> Result<VisitorAction>

Source

fn visit_member_access( &mut self, _member_access: &MemberAccess, ) -> Result<VisitorAction>

Source

fn visit_mapping(&mut self, _mapping: &Mapping) -> Result<VisitorAction>

Source

fn visit_elementary_type_name( &mut self, _elementary_type_name: &ElementaryTypeName, ) -> Result<VisitorAction>

Source

fn visit_literal(&mut self, _literal: &Literal) -> Result<VisitorAction>

Source

fn visit_function_type_name( &mut self, _function_type_name: &FunctionTypeName, ) -> Result<VisitorAction>

Source

fn visit_array_type_name( &mut self, _array_type_name: &ArrayTypeName, ) -> Result<VisitorAction>

Source

fn visit_function_call_options( &mut self, _function_call: &FunctionCallOptions, ) -> Result<VisitorAction>

Source

fn visit_return(&mut self, _return: &Return) -> Result<VisitorAction>

Source

fn visit_inheritance_specifier( &mut self, _specifier: &InheritanceSpecifier, ) -> Result<VisitorAction>

Source

fn visit_modifier_invocation( &mut self, _invocation: &ModifierInvocation, ) -> Result<VisitorAction>

Source

fn visit_inline_assembly( &mut self, _assembly: &InlineAssembly, ) -> Result<VisitorAction>

Source

fn visit_external_assembly_reference( &mut self, _ref: &ExternalInlineAssemblyReference, ) -> Result<VisitorAction>

Source

fn post_visit_source_unit(&mut self, _source_unit: &SourceUnit) -> Result<()>

Source

fn post_visit_import_directive( &mut self, _directive: &ImportDirective, ) -> Result<()>

Source

fn post_visit_pragma_directive( &mut self, _directive: &PragmaDirective, ) -> Result<()>

Source

fn post_visit_block(&mut self, _block: &Block) -> Result<()>

Source

fn post_visit_statement(&mut self, _statement: &Statement) -> Result<()>

Source

fn post_visit_expression(&mut self, _expression: &Expression) -> Result<()>

Source

fn post_visit_function_call( &mut self, _function_call: &FunctionCall, ) -> Result<()>

Source

fn post_visit_user_defined_type_name( &mut self, _type_name: &UserDefinedTypeName, ) -> Result<()>

Source

fn post_visit_identifier_path( &mut self, _identifier_path: &IdentifierPath, ) -> Result<()>

Source

fn post_visit_type_name(&mut self, _type_name: &TypeName) -> Result<()>

Source

fn post_visit_parameter_list( &mut self, _parameter_list: &ParameterList, ) -> Result<()>

Source

fn post_visit_function_definition( &mut self, _definition: &FunctionDefinition, ) -> Result<()>

Source

fn post_visit_enum_definition( &mut self, _definition: &EnumDefinition, ) -> Result<()>

Source

fn post_visit_error_definition( &mut self, _definition: &ErrorDefinition, ) -> Result<()>

Source

fn post_visit_event_definition( &mut self, _definition: &EventDefinition, ) -> Result<()>

Source

fn post_visit_struct_definition( &mut self, _definition: &StructDefinition, ) -> Result<()>

Source

fn post_visit_modifier_definition( &mut self, _definition: &ModifierDefinition, ) -> Result<()>

Source

fn post_visit_variable_declaration( &mut self, _declaration: &VariableDeclaration, ) -> Result<()>

Source

fn post_visit_overrides(&mut self, _specifier: &OverrideSpecifier) -> Result<()>

Source

fn post_visit_user_defined_value_type( &mut self, _value_type: &UserDefinedValueTypeDefinition, ) -> Result<()>

Source

fn post_visit_contract_definition( &mut self, _definition: &ContractDefinition, ) -> Result<()>

Source

fn post_visit_using_for(&mut self, _directive: &UsingForDirective) -> Result<()>

Source

fn post_visit_unary_operation( &mut self, _unary_op: &UnaryOperation, ) -> Result<()>

Source

fn post_visit_binary_operation( &mut self, _binary_op: &BinaryOperation, ) -> Result<()>

Source

fn post_visit_conditional(&mut self, _conditional: &Conditional) -> Result<()>

Source

fn post_visit_tuple_expression( &mut self, _tuple_expression: &TupleExpression, ) -> Result<()>

Source

fn post_visit_new_expression( &mut self, _new_expression: &NewExpression, ) -> Result<()>

Source

fn post_visit_assignment(&mut self, _assignment: &Assignment) -> Result<()>

Source

fn post_visit_identifier(&mut self, _identifier: &Identifier) -> Result<()>

Source

fn post_visit_index_access(&mut self, _index_access: &IndexAccess) -> Result<()>

Source

fn post_visit_index_range_access( &mut self, _index_range_access: &IndexRangeAccess, ) -> Result<()>

Source

fn post_visit_while_statement( &mut self, _while_statement: &WhileStatement, ) -> Result<()>

Source

fn post_visit_for_statement( &mut self, _for_statement: &ForStatement, ) -> Result<()>

Source

fn post_visit_if_statement(&mut self, _if_statement: &IfStatement) -> Result<()>

Source

fn post_visit_do_while_statement( &mut self, _do_while_statement: &DoWhileStatement, ) -> Result<()>

Source

fn post_visit_emit_statement( &mut self, _emit_statement: &EmitStatement, ) -> Result<()>

Source

fn post_visit_unchecked_block( &mut self, _unchecked_block: &UncheckedBlock, ) -> Result<()>

Source

fn post_visit_try_statement( &mut self, _try_statement: &TryStatement, ) -> Result<()>

Source

fn post_visit_revert_statement( &mut self, _revert_statement: &RevertStatement, ) -> Result<()>

Source

fn post_visit_member_access( &mut self, _member_access: &MemberAccess, ) -> Result<()>

Source

fn post_visit_mapping(&mut self, _mapping: &Mapping) -> Result<()>

Source

fn post_visit_elementary_type_name( &mut self, _elementary_type_name: &ElementaryTypeName, ) -> Result<()>

Source

fn post_visit_literal(&mut self, _literal: &Literal) -> Result<()>

Source

fn post_visit_function_type_name( &mut self, _function_type_name: &FunctionTypeName, ) -> Result<()>

Source

fn post_visit_array_type_name( &mut self, _array_type_name: &ArrayTypeName, ) -> Result<()>

Source

fn post_visit_function_call_options( &mut self, _function_call: &FunctionCallOptions, ) -> Result<()>

Source

fn post_visit_return(&mut self, _return: &Return) -> Result<()>

Source

fn post_visit_inheritance_specifier( &mut self, _specifier: &InheritanceSpecifier, ) -> Result<()>

Source

fn post_visit_modifier_invocation( &mut self, _invocation: &ModifierInvocation, ) -> Result<()>

Source

fn post_visit_inline_assembly( &mut self, _assembly: &InlineAssembly, ) -> Result<()>

Source

fn post_visit_external_assembly_reference( &mut self, _ref: &ExternalInlineAssemblyReference, ) -> Result<()>

Implementors§