public inbox for gcc-cvs@sourceware.org
help / color / mirror / Atom feed
* [gcc/devel/rust/master] ast: resolve: Add source for ResolverBase
@ 2022-06-08 12:40 Thomas Schwinge
  0 siblings, 0 replies; only message in thread
From: Thomas Schwinge @ 2022-06-08 12:40 UTC (permalink / raw)
  To: gcc-cvs

https://gcc.gnu.org/g:0b91defe9422d1f0931b46beff4d22e7b4e37fd8

commit 0b91defe9422d1f0931b46beff4d22e7b4e37fd8
Author: Arthur Cohen <arthur.cohen@embecosm.com>
Date:   Mon Apr 25 22:33:09 2022 +0200

    ast: resolve: Add source for ResolverBase

Diff:
---
 gcc/rust/Make-lang.in                     |   1 +
 gcc/rust/resolve/rust-ast-resolve-base.cc | 642 ++++++++++++++++++++++++++++++
 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 f59deb847f8..ae385e0bec9 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 00000000000..d1b3885837b
--- /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 eca9694da96..17d05c38cf2 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;


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-06-08 12:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-08 12:40 [gcc/devel/rust/master] ast: resolve: Add source for ResolverBase Thomas Schwinge

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).