aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-12-29 15:17:03 +0000
committerGitHub <noreply@github.com>2021-12-29 15:17:03 +0000
commit69f6be3ee483c9895b4b5187a44b3e1c8be2ba63 (patch)
tree2f24331cdd2ea739ade92169f2ff4fb031b730f0 /gcc/rust/backend
parent4c5ebc08e687bf749d548774df86e2a5cb69ebce (diff)
parentf9b6c0caf816bd02ca39fae0ecf2cb68e1d792e2 (diff)
downloadgcc-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.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) {}