aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend/rust-compile-base.h
diff options
context:
space:
mode:
authorMarc Poulhiès <dkm@kataplop.net>2021-11-24 22:45:18 +0100
committerMarc Poulhiès <dkm@kataplop.net>2021-12-22 16:42:22 +0100
commitf9b6c0caf816bd02ca39fae0ecf2cb68e1d792e2 (patch)
tree2f24331cdd2ea739ade92169f2ff4fb031b730f0 /gcc/rust/backend/rust-compile-base.h
parent4c5ebc08e687bf749d548774df86e2a5cb69ebce (diff)
downloadgcc-f9b6c0caf816bd02ca39fae0ecf2cb68e1d792e2.zip
gcc-f9b6c0caf816bd02ca39fae0ecf2cb68e1d792e2.tar.gz
gcc-f9b6c0caf816bd02ca39fae0ecf2cb68e1d792e2.tar.bz2
HIR visitor refactor
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>
Diffstat (limited to 'gcc/rust/backend/rust-compile-base.h')
-rw-r--r--gcc/rust/backend/rust-compile-base.h159
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 &param) {}
- // 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) {}