aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/backend/rust-compile-block.h
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2022-08-17 12:12:36 +0100
committerPhilip Herron <philip.herron@embecosm.com>2022-08-17 13:01:13 +0100
commit73e79179486b21b13fd8dcc138f84398ca0306e4 (patch)
tree32a8727145460104e05c00f65b0c06f262c6179c /gcc/rust/backend/rust-compile-block.h
parent4f039ff9f6f18d15e32ddb54e3a6124802c45b7f (diff)
downloadgcc-73e79179486b21b13fd8dcc138f84398ca0306e4.zip
gcc-73e79179486b21b13fd8dcc138f84398ca0306e4.tar.gz
gcc-73e79179486b21b13fd8dcc138f84398ca0306e4.tar.bz2
Refactor backend to use finegrained visitors
This also moves more code out of the headers to their associated impl files to improve compilation times and code navigation.
Diffstat (limited to 'gcc/rust/backend/rust-compile-block.h')
-rw-r--r--gcc/rust/backend/rust-compile-block.h71
1 files changed, 5 insertions, 66 deletions
diff --git a/gcc/rust/backend/rust-compile-block.h b/gcc/rust/backend/rust-compile-block.h
index e3c7399..cdd17f1 100644
--- a/gcc/rust/backend/rust-compile-block.h
+++ b/gcc/rust/backend/rust-compile-block.h
@@ -24,77 +24,16 @@
namespace Rust {
namespace Compile {
-class CompileBlock : public HIRCompileBase, public HIR::HIRExpressionVisitor
+class CompileBlock : private HIRCompileBase
{
public:
- static tree compile (HIR::BlockExpr *expr, Context *ctx, Bvariable *result)
- {
- CompileBlock compiler (ctx, result);
- expr->accept_vis (compiler);
- return compiler.translated;
- }
+ static tree compile (HIR::BlockExpr *expr, Context *ctx, Bvariable *result);
- void visit (HIR::BlockExpr &expr) override;
-
- // Empty visit for unused Expression HIR nodes.
- void visit (HIR::PathInExpression &) override {}
- void visit (HIR::QualifiedPathInExpression &) override {}
- void visit (HIR::ClosureExprInner &) override {}
- void visit (HIR::ClosureExprInnerTyped &) override {}
- void visit (HIR::StructExprFieldIdentifier &) override {}
- void visit (HIR::StructExprFieldIdentifierValue &) override {}
- void visit (HIR::StructExprFieldIndexValue &) override {}
- void visit (HIR::StructExprStruct &) override {}
- void visit (HIR::StructExprStructFields &) override {}
- void visit (HIR::LiteralExpr &) override {}
- void visit (HIR::BorrowExpr &) override {}
- void visit (HIR::DereferenceExpr &) override {}
- void visit (HIR::ErrorPropagationExpr &) override {}
- void visit (HIR::NegationExpr &) override {}
- void visit (HIR::ArithmeticOrLogicalExpr &) override {}
- void visit (HIR::ComparisonExpr &) override {}
- void visit (HIR::LazyBooleanExpr &) override {}
- void visit (HIR::TypeCastExpr &) override {}
- void visit (HIR::AssignmentExpr &) override {}
- void visit (HIR::CompoundAssignmentExpr &) override {}
- void visit (HIR::GroupedExpr &) override {}
- void visit (HIR::ArrayExpr &) override {}
- void visit (HIR::ArrayIndexExpr &) override {}
- void visit (HIR::TupleExpr &) override {}
- void visit (HIR::TupleIndexExpr &) override {}
- void visit (HIR::CallExpr &) override {}
- void visit (HIR::MethodCallExpr &) override {}
- void visit (HIR::FieldAccessExpr &) override {}
- void visit (HIR::ContinueExpr &) override {}
- void visit (HIR::BreakExpr &) override {}
- void visit (HIR::RangeFromToExpr &) override {}
- void visit (HIR::RangeFromExpr &) override {}
- void visit (HIR::RangeToExpr &) override {}
- void visit (HIR::RangeFullExpr &) override {}
- void visit (HIR::RangeFromToInclExpr &) override {}
- void visit (HIR::RangeToInclExpr &) override {}
- void visit (HIR::ReturnExpr &) override {}
- void visit (HIR::UnsafeBlockExpr &) override {}
- void visit (HIR::LoopExpr &) override {}
- void visit (HIR::WhileLoopExpr &) override {}
- void visit (HIR::WhileLetLoopExpr &) override {}
- void visit (HIR::ForLoopExpr &) override {}
- void visit (HIR::IfExpr &) override {}
- void visit (HIR::IfExprConseqElse &) override {}
- void visit (HIR::IfExprConseqIf &) override {}
- void visit (HIR::IfExprConseqIfLet &) override {}
- void visit (HIR::IfLetExpr &) override {}
- void visit (HIR::IfLetExprConseqElse &) override {}
- void visit (HIR::IfLetExprConseqIf &) override {}
- void visit (HIR::IfLetExprConseqIfLet &) override {}
- void visit (HIR::MatchExpr &) override {}
- void visit (HIR::AwaitExpr &) override {}
- void visit (HIR::AsyncBlockExpr &) override {}
+protected:
+ void visit (HIR::BlockExpr &expr);
private:
- CompileBlock (Context *ctx, Bvariable *result)
- : HIRCompileBase (ctx), translated (nullptr), result (result)
- {}
+ CompileBlock (Context *ctx, Bvariable *result);
tree translated;
Bvariable *result;