// First, our lexical scope expressions - these visit their sub nodes, always
// these nodes create new scopes and ribs - they are often used to declare new
// variables, such as a for loop's iterator, or a function's arguments
- void visit (AST::BlockExpr &);
- void visit (AST::Module &);
- void visit (AST::Function &);
- void visit (AST::ForLoopExpr &);
- void visit (AST::Trait &);
- void visit (AST::InherentImpl &);
- void visit (AST::TraitImpl &);
+ void visit (AST::BlockExpr &) override;
+ void visit (AST::Module &) override;
+ void visit (AST::Function &) override;
+ void visit (AST::ForLoopExpr &) override;
+ void visit (AST::Trait &) override;
+ void visit (AST::InherentImpl &) override;
+ void visit (AST::TraitImpl &) override;
// type dec nodes, which visit their fields or variants by default
- void visit (AST::StructStruct &);
- void visit (AST::Enum &);
+ void visit (AST::StructStruct &) override;
+ void visit (AST::Enum &) override;
// Visitors that visit their expression node(s)
- void visit (AST::StructExprFieldIdentifierValue &);
- void visit (AST::StructExprFieldIndexValue &);
- void visit (AST::ClosureExprInner &);
- void visit (AST::ClosureExprInnerTyped &);
- void visit (AST::ContinueExpr &);
- void visit (AST::RangeFromToExpr &);
- void visit (AST::RangeFromExpr &);
- void visit (AST::RangeToExpr &);
- void visit (AST::RangeFromToInclExpr &);
- void visit (AST::RangeToInclExpr &);
- void visit (AST::ReturnExpr &);
- void visit (AST::CallExpr &);
- void visit (AST::MethodCallExpr &);
- void visit (AST::LoopExpr &);
- void visit (AST::WhileLoopExpr &);
- void visit (AST::WhileLetLoopExpr &);
- void visit (AST::IfExpr &);
- void visit (AST::IfExprConseqElse &);
- void visit (AST::IfLetExpr &);
- void visit (AST::IfLetExprConseqElse &);
- void visit (AST::MatchExpr &);
- void visit (AST::AwaitExpr &);
- void visit (AST::AsyncBlockExpr &);
+ void visit (AST::StructExprFieldIdentifierValue &) override;
+ void visit (AST::StructExprFieldIndexValue &) override;
+ void visit (AST::ClosureExprInner &) override;
+ void visit (AST::ClosureExprInnerTyped &) override;
+ void visit (AST::ContinueExpr &) override;
+ void visit (AST::RangeFromToExpr &) override;
+ void visit (AST::RangeFromExpr &) override;
+ void visit (AST::RangeToExpr &) override;
+ void visit (AST::RangeFromToInclExpr &) override;
+ void visit (AST::RangeToInclExpr &) override;
+ void visit (AST::ReturnExpr &) override;
+ void visit (AST::CallExpr &) override;
+ void visit (AST::MethodCallExpr &) override;
+ void visit (AST::LoopExpr &) override;
+ void visit (AST::WhileLoopExpr &) override;
+ void visit (AST::WhileLetLoopExpr &) override;
+ void visit (AST::IfExpr &) override;
+ void visit (AST::IfExprConseqElse &) override;
+ void visit (AST::IfLetExpr &) override;
+ void visit (AST::IfLetExprConseqElse &) override;
+ void visit (AST::MatchExpr &) override;
+ void visit (AST::AwaitExpr &) override;
+ void visit (AST::AsyncBlockExpr &) override;
// Leaf visitors, which do nothing by default
- void visit (AST::DelimTokenTree &);
- void visit (AST::AttrInputMetaItemContainer &);
- void visit (AST::IdentifierExpr &);
- void visit (AST::LifetimeParam &);
- void visit (AST::ConstGenericParam &);
- void visit (AST::PathInExpression &);
- void visit (AST::TypePathSegmentGeneric &);
- void visit (AST::TypePathSegmentFunction &);
- void visit (AST::TypePath &);
- void visit (AST::QualifiedPathInExpression &);
- void visit (AST::QualifiedPathInType &);
- void visit (AST::LiteralExpr &);
- void visit (AST::AttrInputLiteral &);
- void visit (AST::AttrInputMacro &);
- void visit (AST::MetaItemLitExpr &);
- void visit (AST::MetaItemPathLit &);
- void visit (AST::StructExprStruct &);
- void visit (AST::StructExprStructFields &);
- void visit (AST::StructExprStructBase &);
- void visit (AST::TypeParam &);
- void visit (AST::LifetimeWhereClauseItem &);
- void visit (AST::TypeBoundWhereClauseItem &);
- void visit (AST::ExternCrate &);
- void visit (AST::UseTreeGlob &);
- void visit (AST::UseTreeList &);
- void visit (AST::UseTreeRebind &);
- void visit (AST::UseDeclaration &);
- void visit (AST::TypeAlias &);
- void visit (AST::EnumItem &);
- void visit (AST::EnumItemTuple &);
- void visit (AST::EnumItemStruct &);
- void visit (AST::EnumItemDiscriminant &);
- void visit (AST::ConstantItem &);
- void visit (AST::StaticItem &);
- void visit (AST::TraitItemConst &);
- void visit (AST::TraitItemType &);
- void visit (AST::ExternalTypeItem &);
- void visit (AST::ExternalStaticItem &);
- void visit (AST::MacroMatchRepetition &);
- void visit (AST::MacroMatcher &);
- void visit (AST::MacroRulesDefinition &);
- void visit (AST::MacroInvocation &);
- void visit (AST::MetaItemPath &);
- void visit (AST::MetaItemSeq &);
- void visit (AST::MetaListPaths &);
- void visit (AST::MetaListNameValueStr &);
- void visit (AST::AltPattern &);
- void visit (AST::EmptyStmt &);
- void visit (AST::TraitBound &);
- void visit (AST::ImplTraitType &);
- void visit (AST::TraitObjectType &);
- void visit (AST::ImplTraitTypeOneBound &);
- void visit (AST::TraitObjectTypeOneBound &);
- void visit (AST::BareFunctionType &);
- void visit (AST::FunctionParam &);
- void visit (AST::VariadicParam &);
- void visit (AST::SelfParam &);
+ void visit (AST::DelimTokenTree &) override;
+ void visit (AST::AttrInputMetaItemContainer &) override;
+ void visit (AST::IdentifierExpr &) override;
+ void visit (AST::LifetimeParam &) override;
+ void visit (AST::ConstGenericParam &) override;
+ void visit (AST::PathInExpression &) override;
+ void visit (AST::TypePathSegmentGeneric &) override;
+ void visit (AST::TypePathSegmentFunction &) override;
+ void visit (AST::TypePath &) override;
+ void visit (AST::QualifiedPathInExpression &) override;
+ void visit (AST::QualifiedPathInType &) override;
+ void visit (AST::LiteralExpr &) override;
+ void visit (AST::AttrInputLiteral &) override;
+ void visit (AST::AttrInputMacro &) override;
+ void visit (AST::MetaItemLitExpr &) override;
+ void visit (AST::MetaItemPathLit &) override;
+ void visit (AST::StructExprStruct &) override;
+ void visit (AST::StructExprStructFields &) override;
+ void visit (AST::StructExprStructBase &) override;
+ void visit (AST::TypeParam &) override;
+ void visit (AST::LifetimeWhereClauseItem &) override;
+ void visit (AST::TypeBoundWhereClauseItem &) override;
+ void visit (AST::ExternCrate &) override;
+ void visit (AST::UseTreeGlob &) override;
+ void visit (AST::UseTreeList &) override;
+ void visit (AST::UseTreeRebind &) override;
+ void visit (AST::UseDeclaration &) override;
+ void visit (AST::TypeAlias &) override;
+ void visit (AST::EnumItem &) override;
+ void visit (AST::EnumItemTuple &) override;
+ void visit (AST::EnumItemStruct &) override;
+ void visit (AST::EnumItemDiscriminant &) override;
+ void visit (AST::ConstantItem &) override;
+ void visit (AST::StaticItem &) override;
+ void visit (AST::TraitItemConst &) override;
+ void visit (AST::TraitItemType &) override;
+ void visit (AST::ExternalTypeItem &) override;
+ void visit (AST::ExternalStaticItem &) override;
+ void visit (AST::MacroMatchRepetition &) override;
+ void visit (AST::MacroMatcher &) override;
+ void visit (AST::MacroRulesDefinition &) override;
+ void visit (AST::MacroInvocation &) override;
+ void visit (AST::MetaItemPath &) override;
+ void visit (AST::MetaItemSeq &) override;
+ void visit (AST::MetaListPaths &) override;
+ void visit (AST::MetaListNameValueStr &) override;
+ void visit (AST::AltPattern &) override;
+ void visit (AST::EmptyStmt &) override;
+ void visit (AST::TraitBound &) override;
+ void visit (AST::ImplTraitType &) override;
+ void visit (AST::TraitObjectType &) override;
+ void visit (AST::ImplTraitTypeOneBound &) override;
+ void visit (AST::TraitObjectTypeOneBound &) override;
+ void visit (AST::BareFunctionType &) override;
+ void visit (AST::FunctionParam &) override;
+ void visit (AST::VariadicParam &) override;
+ void visit (AST::SelfParam &) override;
protected:
DefaultResolver (NameResolutionContext &ctx) : ctx (ctx) {}