diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-04-25 22:33:09 +0200 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2022-04-28 15:15:05 +0200 |
commit | 0b91defe9422d1f0931b46beff4d22e7b4e37fd8 (patch) | |
tree | 0ee923a37bbb7a7987b26df4fc116303667b775b /gcc | |
parent | d462ec452a1e6558ddaf071a10d2fb3729f5af73 (diff) | |
download | gcc-0b91defe9422d1f0931b46beff4d22e7b4e37fd8.zip gcc-0b91defe9422d1f0931b46beff4d22e7b4e37fd8.tar.gz gcc-0b91defe9422d1f0931b46beff4d22e7b4e37fd8.tar.bz2 |
ast: resolve: Add source for ResolverBase
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/Make-lang.in | 1 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-base.cc | 642 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-base.h | 335 |
3 files changed, 813 insertions, 165 deletions
diff --git a/gcc/rust/Make-lang.in b/gcc/rust/Make-lang.in index f59deb8..ae385e0 100644 --- a/gcc/rust/Make-lang.in +++ b/gcc/rust/Make-lang.in @@ -87,6 +87,7 @@ GRS_OBJS = \ rust/rust-ast-lower-pattern.o \ rust/rust-name-resolver.o \ rust/rust-ast-resolve.o \ + rust/rust-ast-resolve-base.o \ rust/rust-ast-resolve-item.o \ rust/rust-ast-resolve-pattern.o \ rust/rust-ast-resolve-expr.o \ diff --git a/gcc/rust/resolve/rust-ast-resolve-base.cc b/gcc/rust/resolve/rust-ast-resolve-base.cc new file mode 100644 index 0000000..d1b3885 --- /dev/null +++ b/gcc/rust/resolve/rust-ast-resolve-base.cc @@ -0,0 +1,642 @@ +// Copyright (C) 2020-2022 Free Software Foundation, Inc. + +// This file is part of GCC. + +// GCC is free software; you can redistribute it and/or modify it under +// the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 3, or (at your option) any later +// version. + +// GCC is distributed in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or +// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +// for more details. + +// You should have received a copy of the GNU General Public License +// along with GCC; see the file COPYING3. If not see +// <http://www.gnu.org/licenses/>. + +#include "rust-ast-resolve-base.h" + +namespace Rust { +namespace Resolver { + +bool +resolve_visibility (const AST::Visibility &vis) +{ + gcc_unreachable (); + return false; +} + +// Default visitors implementations + +void +ResolverBase::visit (AST::Token &) +{} + +void +ResolverBase::visit (AST::DelimTokenTree &) +{} + +void +ResolverBase::visit (AST::AttrInputMetaItemContainer &) +{} + +void +ResolverBase::visit (AST::IdentifierExpr &) +{} + +void +ResolverBase::visit (AST::Lifetime &) +{} + +void +ResolverBase::visit (AST::LifetimeParam &) +{} + +void +ResolverBase::visit (AST::PathInExpression &) +{} + +void +ResolverBase::visit (AST::TypePathSegment &) +{} + +void +ResolverBase::visit (AST::TypePathSegmentGeneric &) +{} + +void +ResolverBase::visit (AST::TypePathSegmentFunction &) +{} + +void +ResolverBase::visit (AST::TypePath &) +{} + +void +ResolverBase::visit (AST::QualifiedPathInExpression &) +{} + +void +ResolverBase::visit (AST::QualifiedPathInType &) +{} + +void +ResolverBase::visit (AST::LiteralExpr &) +{} + +void +ResolverBase::visit (AST::AttrInputLiteral &) +{} + +void +ResolverBase::visit (AST::MetaItemLitExpr &) +{} + +void +ResolverBase::visit (AST::MetaItemPathLit &) +{} + +void +ResolverBase::visit (AST::BorrowExpr &) +{} + +void +ResolverBase::visit (AST::DereferenceExpr &) +{} + +void +ResolverBase::visit (AST::ErrorPropagationExpr &) +{} + +void +ResolverBase::visit (AST::NegationExpr &) +{} + +void +ResolverBase::visit (AST::ArithmeticOrLogicalExpr &) +{} + +void +ResolverBase::visit (AST::ComparisonExpr &) +{} + +void +ResolverBase::visit (AST::LazyBooleanExpr &) +{} + +void +ResolverBase::visit (AST::TypeCastExpr &) +{} + +void +ResolverBase::visit (AST::AssignmentExpr &) +{} + +void +ResolverBase::visit (AST::CompoundAssignmentExpr &) +{} + +void +ResolverBase::visit (AST::GroupedExpr &) +{} + +void +ResolverBase::visit (AST::ArrayElemsValues &) +{} + +void +ResolverBase::visit (AST::ArrayElemsCopied &) +{} + +void +ResolverBase::visit (AST::ArrayExpr &) +{} + +void +ResolverBase::visit (AST::ArrayIndexExpr &) +{} + +void +ResolverBase::visit (AST::TupleExpr &) +{} + +void +ResolverBase::visit (AST::TupleIndexExpr &) +{} + +void +ResolverBase::visit (AST::StructExprStruct &) +{} + +void +ResolverBase::visit (AST::StructExprFieldIdentifier &) +{} + +void +ResolverBase::visit (AST::StructExprFieldIdentifierValue &) +{} + +void +ResolverBase::visit (AST::StructExprFieldIndexValue &) +{} + +void +ResolverBase::visit (AST::StructExprStructFields &) +{} + +void +ResolverBase::visit (AST::StructExprStructBase &) +{} + +void +ResolverBase::visit (AST::CallExpr &) +{} + +void +ResolverBase::visit (AST::MethodCallExpr &) +{} + +void +ResolverBase::visit (AST::FieldAccessExpr &) +{} + +void +ResolverBase::visit (AST::ClosureExprInner &) +{} + +void +ResolverBase::visit (AST::BlockExpr &) +{} + +void +ResolverBase::visit (AST::ClosureExprInnerTyped &) +{} + +void +ResolverBase::visit (AST::ContinueExpr &) +{} + +void +ResolverBase::visit (AST::BreakExpr &) +{} + +void +ResolverBase::visit (AST::RangeFromToExpr &) +{} + +void +ResolverBase::visit (AST::RangeFromExpr &) +{} + +void +ResolverBase::visit (AST::RangeToExpr &) +{} + +void +ResolverBase::visit (AST::RangeFullExpr &) +{} + +void +ResolverBase::visit (AST::RangeFromToInclExpr &) +{} + +void +ResolverBase::visit (AST::RangeToInclExpr &) +{} + +void +ResolverBase::visit (AST::ReturnExpr &) +{} + +void +ResolverBase::visit (AST::UnsafeBlockExpr &) +{} + +void +ResolverBase::visit (AST::LoopExpr &) +{} + +void +ResolverBase::visit (AST::WhileLoopExpr &) +{} + +void +ResolverBase::visit (AST::WhileLetLoopExpr &) +{} + +void +ResolverBase::visit (AST::ForLoopExpr &) +{} + +void +ResolverBase::visit (AST::IfExpr &) +{} + +void +ResolverBase::visit (AST::IfExprConseqElse &) +{} + +void +ResolverBase::visit (AST::IfExprConseqIf &) +{} + +void +ResolverBase::visit (AST::IfExprConseqIfLet &) +{} + +void +ResolverBase::visit (AST::IfLetExpr &) +{} + +void +ResolverBase::visit (AST::IfLetExprConseqElse &) +{} + +void +ResolverBase::visit (AST::IfLetExprConseqIf &) +{} + +void +ResolverBase::visit (AST::IfLetExprConseqIfLet &) +{} + +void +ResolverBase::visit (AST::MatchExpr &) +{} + +void +ResolverBase::visit (AST::AwaitExpr &) +{} + +void +ResolverBase::visit (AST::AsyncBlockExpr &) +{} + +void +ResolverBase::visit (AST::TypeParam &) +{} + +void +ResolverBase::visit (AST::LifetimeWhereClauseItem &) +{} + +void +ResolverBase::visit (AST::TypeBoundWhereClauseItem &) +{} + +void +ResolverBase::visit (AST::Method &) +{} + +void +ResolverBase::visit (AST::Module &) +{} + +void +ResolverBase::visit (AST::ExternCrate &) +{} + +void +ResolverBase::visit (AST::UseTreeGlob &) +{} + +void +ResolverBase::visit (AST::UseTreeList &) +{} + +void +ResolverBase::visit (AST::UseTreeRebind &) +{} + +void +ResolverBase::visit (AST::UseDeclaration &) +{} + +void +ResolverBase::visit (AST::Function &) +{} + +void +ResolverBase::visit (AST::TypeAlias &) +{} + +void +ResolverBase::visit (AST::StructStruct &) +{} + +void +ResolverBase::visit (AST::TupleStruct &) +{} + +void +ResolverBase::visit (AST::EnumItem &) +{} + +void +ResolverBase::visit (AST::EnumItemTuple &) +{} + +void +ResolverBase::visit (AST::EnumItemStruct &) +{} + +void +ResolverBase::visit (AST::EnumItemDiscriminant &) +{} + +void +ResolverBase::visit (AST::Enum &) +{} + +void +ResolverBase::visit (AST::Union &) +{} + +void +ResolverBase::visit (AST::ConstantItem &) +{} + +void +ResolverBase::visit (AST::StaticItem &) +{} + +void +ResolverBase::visit (AST::TraitItemFunc &) +{} + +void +ResolverBase::visit (AST::TraitItemMethod &) +{} + +void +ResolverBase::visit (AST::TraitItemConst &) +{} + +void +ResolverBase::visit (AST::TraitItemType &) +{} + +void +ResolverBase::visit (AST::Trait &) +{} + +void +ResolverBase::visit (AST::InherentImpl &) +{} + +void +ResolverBase::visit (AST::TraitImpl &) +{} + +void +ResolverBase::visit (AST::ExternalStaticItem &) +{} + +void +ResolverBase::visit (AST::ExternalFunctionItem &) +{} + +void +ResolverBase::visit (AST::ExternBlock &) +{} + +void +ResolverBase::visit (AST::MacroMatchFragment &) +{} + +void +ResolverBase::visit (AST::MacroMatchRepetition &) +{} + +void +ResolverBase::visit (AST::MacroMatcher &) +{} + +void +ResolverBase::visit (AST::MacroRulesDefinition &) +{} + +void +ResolverBase::visit (AST::MacroInvocation &) +{} + +void +ResolverBase::visit (AST::MetaItemPath &) +{} + +void +ResolverBase::visit (AST::MetaItemSeq &) +{} + +void +ResolverBase::visit (AST::MetaWord &) +{} + +void +ResolverBase::visit (AST::MetaNameValueStr &) +{} + +void +ResolverBase::visit (AST::MetaListPaths &) +{} + +void +ResolverBase::visit (AST::MetaListNameValueStr &) +{} + +void +ResolverBase::visit (AST::LiteralPattern &) +{} + +void +ResolverBase::visit (AST::IdentifierPattern &) +{} + +void +ResolverBase::visit (AST::WildcardPattern &) +{} + +void +ResolverBase::visit (AST::RangePatternBoundLiteral &) +{} + +void +ResolverBase::visit (AST::RangePatternBoundPath &) +{} + +void +ResolverBase::visit (AST::RangePatternBoundQualPath &) +{} + +void +ResolverBase::visit (AST::RangePattern &) +{} + +void +ResolverBase::visit (AST::ReferencePattern &) +{} + +void +ResolverBase::visit (AST::StructPatternFieldTuplePat &) +{} + +void +ResolverBase::visit (AST::StructPatternFieldIdentPat &) +{} + +void +ResolverBase::visit (AST::StructPatternFieldIdent &) +{} + +void +ResolverBase::visit (AST::StructPattern &) +{} + +void +ResolverBase::visit (AST::TupleStructItemsNoRange &) +{} + +void +ResolverBase::visit (AST::TupleStructItemsRange &) +{} + +void +ResolverBase::visit (AST::TupleStructPattern &) +{} + +void +ResolverBase::visit (AST::TuplePatternItemsMultiple &) +{} + +void +ResolverBase::visit (AST::TuplePatternItemsRanged &) +{} + +void +ResolverBase::visit (AST::TuplePattern &) +{} + +void +ResolverBase::visit (AST::GroupedPattern &) +{} + +void +ResolverBase::visit (AST::SlicePattern &) +{} + +void +ResolverBase::visit (AST::EmptyStmt &) +{} + +void +ResolverBase::visit (AST::LetStmt &) +{} + +void +ResolverBase::visit (AST::ExprStmtWithoutBlock &) +{} + +void +ResolverBase::visit (AST::ExprStmtWithBlock &) +{} + +void +ResolverBase::visit (AST::TraitBound &) +{} + +void +ResolverBase::visit (AST::ImplTraitType &) +{} + +void +ResolverBase::visit (AST::TraitObjectType &) +{} + +void +ResolverBase::visit (AST::ParenthesisedType &) +{} + +void +ResolverBase::visit (AST::ImplTraitTypeOneBound &) +{} + +void +ResolverBase::visit (AST::TraitObjectTypeOneBound &) +{} + +void +ResolverBase::visit (AST::TupleType &) +{} + +void +ResolverBase::visit (AST::NeverType &) +{} + +void +ResolverBase::visit (AST::RawPointerType &) +{} + +void +ResolverBase::visit (AST::ReferenceType &) +{} + +void +ResolverBase::visit (AST::ArrayType &) +{} + +void +ResolverBase::visit (AST::SliceType &) +{} + +void +ResolverBase::visit (AST::InferredType &) +{} + +void +ResolverBase::visit (AST::BareFunctionType &) +{} + +} // namespace Resolver +} // namespace Rust diff --git a/gcc/rust/resolve/rust-ast-resolve-base.h b/gcc/rust/resolve/rust-ast-resolve-base.h index eca9694..17d05c3 100644 --- a/gcc/rust/resolve/rust-ast-resolve-base.h +++ b/gcc/rust/resolve/rust-ast-resolve-base.h @@ -32,171 +32,171 @@ class ResolverBase : public AST::ASTVisitor public: virtual ~ResolverBase () {} - void visit (AST::Token &) {} - void visit (AST::DelimTokenTree &) {} - void visit (AST::AttrInputMetaItemContainer &) {} - void visit (AST::IdentifierExpr &) {} - void visit (AST::Lifetime &) {} - void visit (AST::LifetimeParam &) {} - void visit (AST::PathInExpression &) {} - void visit (AST::TypePathSegment &) {} - 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::MetaItemLitExpr &) {} - void visit (AST::MetaItemPathLit &) {} - void visit (AST::BorrowExpr &) {} - void visit (AST::DereferenceExpr &) {} - void visit (AST::ErrorPropagationExpr &) {} - void visit (AST::NegationExpr &) {} - void visit (AST::ArithmeticOrLogicalExpr &) {} - void visit (AST::ComparisonExpr &) {} - void visit (AST::LazyBooleanExpr &) {} - void visit (AST::TypeCastExpr &) {} - void visit (AST::AssignmentExpr &) {} - void visit (AST::CompoundAssignmentExpr &) {} - void visit (AST::GroupedExpr &) {} - void visit (AST::ArrayElemsValues &) {} - void visit (AST::ArrayElemsCopied &) {} - void visit (AST::ArrayExpr &) {} - void visit (AST::ArrayIndexExpr &) {} - void visit (AST::TupleExpr &) {} - void visit (AST::TupleIndexExpr &) {} - void visit (AST::StructExprStruct &) {} - void visit (AST::StructExprFieldIdentifier &) {} - void visit (AST::StructExprFieldIdentifierValue &) {} - void visit (AST::StructExprFieldIndexValue &) {} - void visit (AST::StructExprStructFields &) {} - void visit (AST::StructExprStructBase &) {} - void visit (AST::CallExpr &) {} - void visit (AST::MethodCallExpr &) {} - void visit (AST::FieldAccessExpr &) {} - void visit (AST::ClosureExprInner &) {} - void visit (AST::BlockExpr &) {} - void visit (AST::ClosureExprInnerTyped &) {} - void visit (AST::ContinueExpr &) {} - void visit (AST::BreakExpr &) {} - void visit (AST::RangeFromToExpr &) {} - void visit (AST::RangeFromExpr &) {} - void visit (AST::RangeToExpr &) {} - void visit (AST::RangeFullExpr &) {} - void visit (AST::RangeFromToInclExpr &) {} - void visit (AST::RangeToInclExpr &) {} - void visit (AST::ReturnExpr &) {} - void visit (AST::UnsafeBlockExpr &) {} - void visit (AST::LoopExpr &) {} - void visit (AST::WhileLoopExpr &) {} - void visit (AST::WhileLetLoopExpr &) {} - void visit (AST::ForLoopExpr &) {} - void visit (AST::IfExpr &) {} - void visit (AST::IfExprConseqElse &) {} - void visit (AST::IfExprConseqIf &) {} - void visit (AST::IfExprConseqIfLet &) {} - void visit (AST::IfLetExpr &) {} - void visit (AST::IfLetExprConseqElse &) {} - void visit (AST::IfLetExprConseqIf &) {} - void visit (AST::IfLetExprConseqIfLet &) {} - - void visit (AST::MatchExpr &) {} - void visit (AST::AwaitExpr &) {} - void visit (AST::AsyncBlockExpr &) {} - - void visit (AST::TypeParam &) {} - - void visit (AST::LifetimeWhereClauseItem &) {} - void visit (AST::TypeBoundWhereClauseItem &) {} - void visit (AST::Method &) {} - void visit (AST::Module &) {} - void visit (AST::ExternCrate &) {} - - void visit (AST::UseTreeGlob &) {} - void visit (AST::UseTreeList &) {} - void visit (AST::UseTreeRebind &) {} - void visit (AST::UseDeclaration &) {} - void visit (AST::Function &) {} - void visit (AST::TypeAlias &) {} - void visit (AST::StructStruct &) {} - void visit (AST::TupleStruct &) {} - void visit (AST::EnumItem &) {} - void visit (AST::EnumItemTuple &) {} - void visit (AST::EnumItemStruct &) {} - void visit (AST::EnumItemDiscriminant &) {} - void visit (AST::Enum &) {} - void visit (AST::Union &) {} - void visit (AST::ConstantItem &) {} - void visit (AST::StaticItem &) {} - void visit (AST::TraitItemFunc &) {} - void visit (AST::TraitItemMethod &) {} - void visit (AST::TraitItemConst &) {} - void visit (AST::TraitItemType &) {} - void visit (AST::Trait &) {} - void visit (AST::InherentImpl &) {} - void visit (AST::TraitImpl &) {} - - void visit (AST::ExternalStaticItem &) {} - void visit (AST::ExternalFunctionItem &) {} - void visit (AST::ExternBlock &) {} - - void visit (AST::MacroMatchFragment &) {} - 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::MetaWord &) {} - void visit (AST::MetaNameValueStr &) {} - void visit (AST::MetaListPaths &) {} - void visit (AST::MetaListNameValueStr &) {} - - void visit (AST::LiteralPattern &) {} - void visit (AST::IdentifierPattern &) {} - void visit (AST::WildcardPattern &) {} - - void visit (AST::RangePatternBoundLiteral &) {} - void visit (AST::RangePatternBoundPath &) {} - void visit (AST::RangePatternBoundQualPath &) {} - void visit (AST::RangePattern &) {} - void visit (AST::ReferencePattern &) {} - - void visit (AST::StructPatternFieldTuplePat &) {} - void visit (AST::StructPatternFieldIdentPat &) {} - void visit (AST::StructPatternFieldIdent &) {} - void visit (AST::StructPattern &) {} - - void visit (AST::TupleStructItemsNoRange &) {} - void visit (AST::TupleStructItemsRange &) {} - void visit (AST::TupleStructPattern &) {} - - void visit (AST::TuplePatternItemsMultiple &) {} - void visit (AST::TuplePatternItemsRanged &) {} - void visit (AST::TuplePattern &) {} - void visit (AST::GroupedPattern &) {} - void visit (AST::SlicePattern &) {} - - void visit (AST::EmptyStmt &) {} - void visit (AST::LetStmt &) {} - void visit (AST::ExprStmtWithoutBlock &) {} - void visit (AST::ExprStmtWithBlock &) {} - - void visit (AST::TraitBound &) {} - void visit (AST::ImplTraitType &) {} - void visit (AST::TraitObjectType &) {} - void visit (AST::ParenthesisedType &) {} - void visit (AST::ImplTraitTypeOneBound &) {} - void visit (AST::TraitObjectTypeOneBound &) {} - void visit (AST::TupleType &) {} - void visit (AST::NeverType &) {} - void visit (AST::RawPointerType &) {} - void visit (AST::ReferenceType &) {} - void visit (AST::ArrayType &) {} - void visit (AST::SliceType &) {} - void visit (AST::InferredType &) {} - void visit (AST::BareFunctionType &) {} + void visit (AST::Token &); + void visit (AST::DelimTokenTree &); + void visit (AST::AttrInputMetaItemContainer &); + void visit (AST::IdentifierExpr &); + void visit (AST::Lifetime &); + void visit (AST::LifetimeParam &); + void visit (AST::PathInExpression &); + void visit (AST::TypePathSegment &); + 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::MetaItemLitExpr &); + void visit (AST::MetaItemPathLit &); + void visit (AST::BorrowExpr &); + void visit (AST::DereferenceExpr &); + void visit (AST::ErrorPropagationExpr &); + void visit (AST::NegationExpr &); + void visit (AST::ArithmeticOrLogicalExpr &); + void visit (AST::ComparisonExpr &); + void visit (AST::LazyBooleanExpr &); + void visit (AST::TypeCastExpr &); + void visit (AST::AssignmentExpr &); + void visit (AST::CompoundAssignmentExpr &); + void visit (AST::GroupedExpr &); + void visit (AST::ArrayElemsValues &); + void visit (AST::ArrayElemsCopied &); + void visit (AST::ArrayExpr &); + void visit (AST::ArrayIndexExpr &); + void visit (AST::TupleExpr &); + void visit (AST::TupleIndexExpr &); + void visit (AST::StructExprStruct &); + void visit (AST::StructExprFieldIdentifier &); + void visit (AST::StructExprFieldIdentifierValue &); + void visit (AST::StructExprFieldIndexValue &); + void visit (AST::StructExprStructFields &); + void visit (AST::StructExprStructBase &); + void visit (AST::CallExpr &); + void visit (AST::MethodCallExpr &); + void visit (AST::FieldAccessExpr &); + void visit (AST::ClosureExprInner &); + void visit (AST::BlockExpr &); + void visit (AST::ClosureExprInnerTyped &); + void visit (AST::ContinueExpr &); + void visit (AST::BreakExpr &); + void visit (AST::RangeFromToExpr &); + void visit (AST::RangeFromExpr &); + void visit (AST::RangeToExpr &); + void visit (AST::RangeFullExpr &); + void visit (AST::RangeFromToInclExpr &); + void visit (AST::RangeToInclExpr &); + void visit (AST::ReturnExpr &); + void visit (AST::UnsafeBlockExpr &); + void visit (AST::LoopExpr &); + void visit (AST::WhileLoopExpr &); + void visit (AST::WhileLetLoopExpr &); + void visit (AST::ForLoopExpr &); + void visit (AST::IfExpr &); + void visit (AST::IfExprConseqElse &); + void visit (AST::IfExprConseqIf &); + void visit (AST::IfExprConseqIfLet &); + void visit (AST::IfLetExpr &); + void visit (AST::IfLetExprConseqElse &); + void visit (AST::IfLetExprConseqIf &); + void visit (AST::IfLetExprConseqIfLet &); + + void visit (AST::MatchExpr &); + void visit (AST::AwaitExpr &); + void visit (AST::AsyncBlockExpr &); + + void visit (AST::TypeParam &); + + void visit (AST::LifetimeWhereClauseItem &); + void visit (AST::TypeBoundWhereClauseItem &); + void visit (AST::Method &); + void visit (AST::Module &); + void visit (AST::ExternCrate &); + + void visit (AST::UseTreeGlob &); + void visit (AST::UseTreeList &); + void visit (AST::UseTreeRebind &); + void visit (AST::UseDeclaration &); + void visit (AST::Function &); + void visit (AST::TypeAlias &); + void visit (AST::StructStruct &); + void visit (AST::TupleStruct &); + void visit (AST::EnumItem &); + void visit (AST::EnumItemTuple &); + void visit (AST::EnumItemStruct &); + void visit (AST::EnumItemDiscriminant &); + void visit (AST::Enum &); + void visit (AST::Union &); + void visit (AST::ConstantItem &); + void visit (AST::StaticItem &); + void visit (AST::TraitItemFunc &); + void visit (AST::TraitItemMethod &); + void visit (AST::TraitItemConst &); + void visit (AST::TraitItemType &); + void visit (AST::Trait &); + void visit (AST::InherentImpl &); + void visit (AST::TraitImpl &); + + void visit (AST::ExternalStaticItem &); + void visit (AST::ExternalFunctionItem &); + void visit (AST::ExternBlock &); + + void visit (AST::MacroMatchFragment &); + 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::MetaWord &); + void visit (AST::MetaNameValueStr &); + void visit (AST::MetaListPaths &); + void visit (AST::MetaListNameValueStr &); + + void visit (AST::LiteralPattern &); + void visit (AST::IdentifierPattern &); + void visit (AST::WildcardPattern &); + + void visit (AST::RangePatternBoundLiteral &); + void visit (AST::RangePatternBoundPath &); + void visit (AST::RangePatternBoundQualPath &); + void visit (AST::RangePattern &); + void visit (AST::ReferencePattern &); + + void visit (AST::StructPatternFieldTuplePat &); + void visit (AST::StructPatternFieldIdentPat &); + void visit (AST::StructPatternFieldIdent &); + void visit (AST::StructPattern &); + + void visit (AST::TupleStructItemsNoRange &); + void visit (AST::TupleStructItemsRange &); + void visit (AST::TupleStructPattern &); + + void visit (AST::TuplePatternItemsMultiple &); + void visit (AST::TuplePatternItemsRanged &); + void visit (AST::TuplePattern &); + void visit (AST::GroupedPattern &); + void visit (AST::SlicePattern &); + + void visit (AST::EmptyStmt &); + void visit (AST::LetStmt &); + void visit (AST::ExprStmtWithoutBlock &); + void visit (AST::ExprStmtWithBlock &); + + void visit (AST::TraitBound &); + void visit (AST::ImplTraitType &); + void visit (AST::TraitObjectType &); + void visit (AST::ParenthesisedType &); + void visit (AST::ImplTraitTypeOneBound &); + void visit (AST::TraitObjectTypeOneBound &); + void visit (AST::TupleType &); + void visit (AST::NeverType &); + void visit (AST::RawPointerType &); + void visit (AST::ReferenceType &); + void visit (AST::ArrayType &); + void visit (AST::SliceType &); + void visit (AST::InferredType &); + void visit (AST::BareFunctionType &); protected: ResolverBase (NodeId parent) @@ -206,6 +206,11 @@ protected: bool resolved () const { return resolved_node != UNKNOWN_NODEID; } + /** + * Resolve a visibility's path through the name resolver + */ + bool resolve_visibility (const AST::Visibility &vis); + Resolver *resolver; Analysis::Mappings *mappings; NodeId resolved_node; |