diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2021-12-29 15:17:03 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-29 15:17:03 +0000 |
commit | 69f6be3ee483c9895b4b5187a44b3e1c8be2ba63 (patch) | |
tree | 2f24331cdd2ea739ade92169f2ff4fb031b730f0 /gcc/rust/backend | |
parent | 4c5ebc08e687bf749d548774df86e2a5cb69ebce (diff) | |
parent | f9b6c0caf816bd02ca39fae0ecf2cb68e1d792e2 (diff) | |
download | gcc-69f6be3ee483c9895b4b5187a44b3e1c8be2ba63.zip gcc-69f6be3ee483c9895b4b5187a44b3e1c8be2ba63.tar.gz gcc-69f6be3ee483c9895b4b5187a44b3e1c8be2ba63.tar.bz2 |
Merge #846
846: HIR visitor refactor r=philberty a=dkm
This is the first step of a bigger refactor (see #825).
This patch introduces a new HIRFullVisitor with default implementations for all
visitor methods. This visitor is used as base classe for several existing HIR
visitors that also currently define empty behavior (eg. TypeCheckBase,
ConstFoldBase, ...).
Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
Co-authored-by: Marc Poulhiès <dkm@kataplop.net>
Diffstat (limited to 'gcc/rust/backend')
-rw-r--r-- | gcc/rust/backend/rust-compile-base.h | 159 |
1 files changed, 1 insertions, 158 deletions
diff --git a/gcc/rust/backend/rust-compile-base.h b/gcc/rust/backend/rust-compile-base.h index ed6bba4..b3ae1f6 100644 --- a/gcc/rust/backend/rust-compile-base.h +++ b/gcc/rust/backend/rust-compile-base.h @@ -25,168 +25,11 @@ namespace Rust { namespace Compile { -class HIRCompileBase : public HIR::HIRVisitor +class HIRCompileBase : public HIR::HIRFullVisitorBase { public: virtual ~HIRCompileBase () {} - // rust-ast.h - virtual void visit (HIR::IdentifierExpr &ident_expr) {} - virtual void visit (HIR::Lifetime &lifetime) {} - virtual void visit (HIR::LifetimeParam &lifetime_param) {} - - // rust-path.h - virtual void visit (HIR::PathInExpression &path) {} - virtual void visit (HIR::TypePathSegment &segment) {} - virtual void visit (HIR::TypePathSegmentGeneric &segment) {} - virtual void visit (HIR::TypePathSegmentFunction &segment) {} - virtual void visit (HIR::TypePath &path) {} - virtual void visit (HIR::QualifiedPathInExpression &path) {} - virtual void visit (HIR::QualifiedPathInType &path) {} - - // rust-expr.h - virtual void visit (HIR::LiteralExpr &expr) {} - virtual void visit (HIR::BorrowExpr &expr) {} - virtual void visit (HIR::DereferenceExpr &expr) {} - virtual void visit (HIR::ErrorPropagationExpr &expr) {} - virtual void visit (HIR::NegationExpr &expr) {} - virtual void visit (HIR::ArithmeticOrLogicalExpr &expr) {} - virtual void visit (HIR::ComparisonExpr &expr) {} - virtual void visit (HIR::LazyBooleanExpr &expr) {} - virtual void visit (HIR::TypeCastExpr &expr) {} - virtual void visit (HIR::AssignmentExpr &expr) {} - virtual void visit (HIR::CompoundAssignmentExpr &expr) {} - virtual void visit (HIR::GroupedExpr &expr) {} - // virtual void visit(ArrayElems& elems) {} - virtual void visit (HIR::ArrayElemsValues &elems) {} - virtual void visit (HIR::ArrayElemsCopied &elems) {} - virtual void visit (HIR::ArrayExpr &expr) {} - virtual void visit (HIR::ArrayIndexExpr &expr) {} - virtual void visit (HIR::TupleExpr &expr) {} - virtual void visit (HIR::TupleIndexExpr &expr) {} - virtual void visit (HIR::StructExprStruct &expr) {} - // virtual void visit(StructExprField& field) {} - virtual void visit (HIR::StructExprFieldIdentifier &field) {} - virtual void visit (HIR::StructExprFieldIdentifierValue &field) {} - virtual void visit (HIR::StructExprFieldIndexValue &field) {} - virtual void visit (HIR::StructExprStructFields &expr) {} - virtual void visit (HIR::StructExprStructBase &expr) {} - virtual void visit (HIR::CallExpr &expr) {} - virtual void visit (HIR::MethodCallExpr &expr) {} - virtual void visit (HIR::FieldAccessExpr &expr) {} - virtual void visit (HIR::ClosureExprInner &expr) {} - virtual void visit (HIR::BlockExpr &expr) {} - virtual void visit (HIR::ClosureExprInnerTyped &expr) {} - virtual void visit (HIR::ContinueExpr &expr) {} - virtual void visit (HIR::BreakExpr &expr) {} - virtual void visit (HIR::RangeFromToExpr &expr) {} - virtual void visit (HIR::RangeFromExpr &expr) {} - virtual void visit (HIR::RangeToExpr &expr) {} - virtual void visit (HIR::RangeFullExpr &expr) {} - virtual void visit (HIR::RangeFromToInclExpr &expr) {} - virtual void visit (HIR::RangeToInclExpr &expr) {} - virtual void visit (HIR::ReturnExpr &expr) {} - virtual void visit (HIR::UnsafeBlockExpr &expr) {} - virtual void visit (HIR::LoopExpr &expr) {} - virtual void visit (HIR::WhileLoopExpr &expr) {} - virtual void visit (HIR::WhileLetLoopExpr &expr) {} - virtual void visit (HIR::ForLoopExpr &expr) {} - virtual void visit (HIR::IfExpr &expr) {} - virtual void visit (HIR::IfExprConseqElse &expr) {} - virtual void visit (HIR::IfExprConseqIf &expr) {} - virtual void visit (HIR::IfExprConseqIfLet &expr) {} - virtual void visit (HIR::IfLetExpr &expr) {} - virtual void visit (HIR::IfLetExprConseqElse &expr) {} - virtual void visit (HIR::IfLetExprConseqIf &expr) {} - virtual void visit (HIR::IfLetExprConseqIfLet &expr) {} - // virtual void visit(MatchCase& match_case) {} - // virtual void visit (HIR::MatchCaseBlockExpr &match_case) {} - // virtual void visit (HIR::MatchCaseExpr &match_case) {} - virtual void visit (HIR::MatchExpr &expr) {} - virtual void visit (HIR::AwaitExpr &expr) {} - virtual void visit (HIR::AsyncBlockExpr &expr) {} - - // rust-item.h - virtual void visit (HIR::TypeParam ¶m) {} - // virtual void visit(WhereClauseItem& item) {} - virtual void visit (HIR::LifetimeWhereClauseItem &item) {} - virtual void visit (HIR::TypeBoundWhereClauseItem &item) {} - virtual void visit (HIR::Module &module) {} - virtual void visit (HIR::ExternCrate &crate) {} - // virtual void visit(UseTree& use_tree) {} - virtual void visit (HIR::UseTreeGlob &use_tree) {} - virtual void visit (HIR::UseTreeList &use_tree) {} - virtual void visit (HIR::UseTreeRebind &use_tree) {} - virtual void visit (HIR::UseDeclaration &use_decl) {} - virtual void visit (HIR::Function &function) {} - virtual void visit (HIR::TypeAlias &type_alias) {} - virtual void visit (HIR::StructStruct &struct_item) {} - virtual void visit (HIR::TupleStruct &tuple_struct) {} - virtual void visit (HIR::EnumItem &item) {} - virtual void visit (HIR::EnumItemTuple &item) {} - virtual void visit (HIR::EnumItemStruct &item) {} - virtual void visit (HIR::EnumItemDiscriminant &item) {} - virtual void visit (HIR::Enum &enum_item) {} - virtual void visit (HIR::Union &union_item) {} - virtual void visit (HIR::ConstantItem &const_item) {} - virtual void visit (HIR::StaticItem &static_item) {} - virtual void visit (HIR::TraitItemFunc &item) {} - virtual void visit (HIR::TraitItemConst &item) {} - virtual void visit (HIR::TraitItemType &item) {} - virtual void visit (HIR::Trait &trait) {} - virtual void visit (HIR::ImplBlock &impl) {} - - virtual void visit (HIR::ExternalStaticItem &item) {} - virtual void visit (HIR::ExternalFunctionItem &item) {} - virtual void visit (HIR::ExternBlock &block) {} - - // rust-pattern.h - virtual void visit (HIR::LiteralPattern &pattern) {} - virtual void visit (HIR::IdentifierPattern &pattern) {} - virtual void visit (HIR::WildcardPattern &pattern) {} - // virtual void visit(RangePatternBound& bound) {} - virtual void visit (HIR::RangePatternBoundLiteral &bound) {} - virtual void visit (HIR::RangePatternBoundPath &bound) {} - virtual void visit (HIR::RangePatternBoundQualPath &bound) {} - virtual void visit (HIR::RangePattern &pattern) {} - virtual void visit (HIR::ReferencePattern &pattern) {} - // virtual void visit(StructPatternField& field) {} - virtual void visit (HIR::StructPatternFieldTuplePat &field) {} - virtual void visit (HIR::StructPatternFieldIdentPat &field) {} - virtual void visit (HIR::StructPatternFieldIdent &field) {} - virtual void visit (HIR::StructPattern &pattern) {} - // virtual void visit(TupleStructItems& tuple_items) {} - virtual void visit (HIR::TupleStructItemsNoRange &tuple_items) {} - virtual void visit (HIR::TupleStructItemsRange &tuple_items) {} - virtual void visit (HIR::TupleStructPattern &pattern) {} - // virtual void visit(TuplePatternItems& tuple_items) {} - virtual void visit (HIR::TuplePatternItemsMultiple &tuple_items) {} - virtual void visit (HIR::TuplePatternItemsRanged &tuple_items) {} - virtual void visit (HIR::TuplePattern &pattern) {} - virtual void visit (HIR::GroupedPattern &pattern) {} - virtual void visit (HIR::SlicePattern &pattern) {} - - // rust-stmt.h - virtual void visit (HIR::EmptyStmt &stmt) {} - virtual void visit (HIR::LetStmt &stmt) {} - virtual void visit (HIR::ExprStmtWithoutBlock &stmt) {} - virtual void visit (HIR::ExprStmtWithBlock &stmt) {} - - // rust-type.h - virtual void visit (HIR::TraitBound &bound) {} - virtual void visit (HIR::ImplTraitType &type) {} - virtual void visit (HIR::TraitObjectType &type) {} - virtual void visit (HIR::ParenthesisedType &type) {} - virtual void visit (HIR::ImplTraitTypeOneBound &type) {} - virtual void visit (HIR::TupleType &type) {} - virtual void visit (HIR::NeverType &type) {} - virtual void visit (HIR::RawPointerType &type) {} - virtual void visit (HIR::ReferenceType &type) {} - virtual void visit (HIR::ArrayType &type) {} - virtual void visit (HIR::SliceType &type) {} - virtual void visit (HIR::InferredType &type) {} - virtual void visit (HIR::BareFunctionType &type) {} - protected: HIRCompileBase (Context *ctx) : ctx (ctx) {} |