aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorOwen Avery <powerboat9.gamer@gmail.com>2023-04-08 01:37:56 -0400
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-16 18:28:46 +0100
commitd93a1f032db86fe602566a6868b9bc5279554e71 (patch)
tree850ed40994e2db2023d72f4baf0e936e16a1f753 /gcc
parentfb2c17fc1f2cfe29ef0fd90ae8d36141882fa95d (diff)
downloadgcc-d93a1f032db86fe602566a6868b9bc5279554e71.zip
gcc-d93a1f032db86fe602566a6868b9bc5279554e71.tar.gz
gcc-d93a1f032db86fe602566a6868b9bc5279554e71.tar.bz2
gccrs: Unify HIR::ExprStmt derived class visiting
gcc/rust/ChangeLog: * backend/rust-compile-stmt.cc (CompileStmt::visit): Unify ExprStmtWith{,out}Block visitors. * backend/rust-compile-stmt.h (CompileStmt::visit): Likewise. * backend/rust-compile-item.h (CompileItem::visit): Likewise. * hir/rust-hir-dump.cc (Dump::visit): Likewise. * hir/rust-hir-dump.h (Dump::visit): Likewise. * hir/tree/rust-hir-stmt.h (ExprStmt::accept_vis): Add. (ExprStmtWithoutBlock::accept_vis): Remove. (ExprStmtWithBlock::accept_vis): Remove. * hir/tree/rust-hir.cc (ExprStmt::accept_vis): Add. (ExprStmtWithoutBlock::accept_vis): Remove. (ExprStmtWithBlock::accept_vis): Remove. * hir/tree/rust-hir-visitor.h (HIRFullVisitor::visit): Likewise. (HIRFullVisitorBase::visit): Likewise. (HIRStmtVisitor::visit): Likewise. * checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise. * checks/errors/rust-const-checker.h (ConstChecker::visit): Likewise. * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise. * checks/errors/rust-unsafe-checker.h (UnsafeChecker::visit): Likewise. * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Likewise. * checks/errors/privacy/rust-privacy-reporter.h (PrivacyReporter::visit): Likewise. * checks/lints/rust-lint-marklive.h (MarkLive::visit): Likewise. * typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise. * typecheck/rust-hir-type-check-stmt.h (TypeCheckStmt::visit): Likewise. * typecheck/rust-tycheck-dump.h (TypeResolverDump::visit): Likewise. Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/backend/rust-compile-item.h3
-rw-r--r--gcc/rust/backend/rust-compile-stmt.cc8
-rw-r--r--gcc/rust/backend/rust-compile-stmt.h3
-rw-r--r--gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc8
-rw-r--r--gcc/rust/checks/errors/privacy/rust-privacy-reporter.h3
-rw-r--r--gcc/rust/checks/errors/rust-const-checker.cc8
-rw-r--r--gcc/rust/checks/errors/rust-const-checker.h3
-rw-r--r--gcc/rust/checks/errors/rust-unsafe-checker.cc8
-rw-r--r--gcc/rust/checks/errors/rust-unsafe-checker.h3
-rw-r--r--gcc/rust/checks/lints/rust-lint-marklive.h7
-rw-r--r--gcc/rust/hir/rust-hir-dump.cc5
-rw-r--r--gcc/rust/hir/rust-hir-dump.h3
-rw-r--r--gcc/rust/hir/tree/rust-hir-stmt.h9
-rw-r--r--gcc/rust/hir/tree/rust-hir-visitor.h9
-rw-r--r--gcc/rust/hir/tree/rust-hir.cc16
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check-stmt.cc8
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check-stmt.h3
-rw-r--r--gcc/rust/typecheck/rust-tycheck-dump.h7
18 files changed, 23 insertions, 91 deletions
diff --git a/gcc/rust/backend/rust-compile-item.h b/gcc/rust/backend/rust-compile-item.h
index 93cf21b..87251ea 100644
--- a/gcc/rust/backend/rust-compile-item.h
+++ b/gcc/rust/backend/rust-compile-item.h
@@ -68,8 +68,7 @@ public:
void visit (HIR::Trait &) override {}
void visit (HIR::EmptyStmt &) override {}
void visit (HIR::LetStmt &) override {}
- void visit (HIR::ExprStmtWithoutBlock &) override {}
- void visit (HIR::ExprStmtWithBlock &) override {}
+ void visit (HIR::ExprStmt &) override {}
protected:
CompileItem (Context *ctx, TyTy::BaseType *concrete, Location ref_locus)
diff --git a/gcc/rust/backend/rust-compile-stmt.cc b/gcc/rust/backend/rust-compile-stmt.cc
index 0f14ab2..5c1dbdb 100644
--- a/gcc/rust/backend/rust-compile-stmt.cc
+++ b/gcc/rust/backend/rust-compile-stmt.cc
@@ -36,13 +36,7 @@ CompileStmt::Compile (HIR::Stmt *stmt, Context *ctx)
}
void
-CompileStmt::visit (HIR::ExprStmtWithBlock &stmt)
-{
- translated = CompileExpr::Compile (stmt.get_expr (), ctx);
-}
-
-void
-CompileStmt::visit (HIR::ExprStmtWithoutBlock &stmt)
+CompileStmt::visit (HIR::ExprStmt &stmt)
{
translated = CompileExpr::Compile (stmt.get_expr (), ctx);
}
diff --git a/gcc/rust/backend/rust-compile-stmt.h b/gcc/rust/backend/rust-compile-stmt.h
index 98cf17d..7b9e93d 100644
--- a/gcc/rust/backend/rust-compile-stmt.h
+++ b/gcc/rust/backend/rust-compile-stmt.h
@@ -29,8 +29,7 @@ class CompileStmt : private HIRCompileBase, protected HIR::HIRStmtVisitor
public:
static tree Compile (HIR::Stmt *stmt, Context *ctx);
- void visit (HIR::ExprStmtWithBlock &stmt) override;
- void visit (HIR::ExprStmtWithoutBlock &stmt) override;
+ void visit (HIR::ExprStmt &stmt) override;
void visit (HIR::LetStmt &stmt) override;
// Empty visit for unused Stmt HIR nodes.
diff --git a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
index 1b75791..6ec4de7 100644
--- a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
+++ b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
@@ -717,13 +717,7 @@ PrivacyReporter::visit (HIR::LetStmt &stmt)
}
void
-PrivacyReporter::visit (HIR::ExprStmtWithoutBlock &stmt)
-{
- stmt.get_expr ()->accept_vis (*this);
-}
-
-void
-PrivacyReporter::visit (HIR::ExprStmtWithBlock &stmt)
+PrivacyReporter::visit (HIR::ExprStmt &stmt)
{
stmt.get_expr ()->accept_vis (*this);
}
diff --git a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.h b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
index 50fcf73..e391642 100644
--- a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
+++ b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
@@ -151,8 +151,7 @@ types
virtual void visit (HIR::ExternBlock &block);
virtual void visit (HIR::EmptyStmt &stmt);
virtual void visit (HIR::LetStmt &stmt);
- virtual void visit (HIR::ExprStmtWithoutBlock &stmt);
- virtual void visit (HIR::ExprStmtWithBlock &stmt);
+ virtual void visit (HIR::ExprStmt &stmt);
Analysis::Mappings &mappings;
Rust::Resolver::Resolver &resolver;
diff --git a/gcc/rust/checks/errors/rust-const-checker.cc b/gcc/rust/checks/errors/rust-const-checker.cc
index 0858545..524374d 100644
--- a/gcc/rust/checks/errors/rust-const-checker.cc
+++ b/gcc/rust/checks/errors/rust-const-checker.cc
@@ -821,13 +821,7 @@ ConstChecker::visit (LetStmt &stmt)
}
void
-ConstChecker::visit (ExprStmtWithoutBlock &stmt)
-{
- stmt.get_expr ()->accept_vis (*this);
-}
-
-void
-ConstChecker::visit (ExprStmtWithBlock &stmt)
+ConstChecker::visit (ExprStmt &stmt)
{
stmt.get_expr ()->accept_vis (*this);
}
diff --git a/gcc/rust/checks/errors/rust-const-checker.h b/gcc/rust/checks/errors/rust-const-checker.h
index eb1cc4e..8294f01 100644
--- a/gcc/rust/checks/errors/rust-const-checker.h
+++ b/gcc/rust/checks/errors/rust-const-checker.h
@@ -186,8 +186,7 @@ private:
virtual void visit (AltPattern &pattern) override;
virtual void visit (EmptyStmt &stmt) override;
virtual void visit (LetStmt &stmt) override;
- virtual void visit (ExprStmtWithoutBlock &stmt) override;
- virtual void visit (ExprStmtWithBlock &stmt) override;
+ virtual void visit (ExprStmt &stmt) override;
virtual void visit (TraitBound &bound) override;
virtual void visit (ImplTraitType &type) override;
virtual void visit (TraitObjectType &type) override;
diff --git a/gcc/rust/checks/errors/rust-unsafe-checker.cc b/gcc/rust/checks/errors/rust-unsafe-checker.cc
index d311366..8725e78 100644
--- a/gcc/rust/checks/errors/rust-unsafe-checker.cc
+++ b/gcc/rust/checks/errors/rust-unsafe-checker.cc
@@ -888,13 +888,7 @@ UnsafeChecker::visit (LetStmt &stmt)
}
void
-UnsafeChecker::visit (ExprStmtWithoutBlock &stmt)
-{
- stmt.get_expr ()->accept_vis (*this);
-}
-
-void
-UnsafeChecker::visit (ExprStmtWithBlock &stmt)
+UnsafeChecker::visit (ExprStmt &stmt)
{
stmt.get_expr ()->accept_vis (*this);
}
diff --git a/gcc/rust/checks/errors/rust-unsafe-checker.h b/gcc/rust/checks/errors/rust-unsafe-checker.h
index ec0db39..4399581 100644
--- a/gcc/rust/checks/errors/rust-unsafe-checker.h
+++ b/gcc/rust/checks/errors/rust-unsafe-checker.h
@@ -168,8 +168,7 @@ private:
virtual void visit (AltPattern &pattern) override;
virtual void visit (EmptyStmt &stmt) override;
virtual void visit (LetStmt &stmt) override;
- virtual void visit (ExprStmtWithoutBlock &stmt) override;
- virtual void visit (ExprStmtWithBlock &stmt) override;
+ virtual void visit (ExprStmt &stmt) override;
virtual void visit (TraitBound &bound) override;
virtual void visit (ImplTraitType &type) override;
virtual void visit (TraitObjectType &type) override;
diff --git a/gcc/rust/checks/lints/rust-lint-marklive.h b/gcc/rust/checks/lints/rust-lint-marklive.h
index 6fb4467..4d30847 100644
--- a/gcc/rust/checks/lints/rust-lint-marklive.h
+++ b/gcc/rust/checks/lints/rust-lint-marklive.h
@@ -156,12 +156,7 @@ public:
expr.get_iterator_expr ()->accept_vis (*this);
}
- void visit (HIR::ExprStmtWithoutBlock &stmt) override
- {
- stmt.get_expr ()->accept_vis (*this);
- }
-
- void visit (HIR::ExprStmtWithBlock &stmt) override
+ void visit (HIR::ExprStmt &stmt) override
{
stmt.get_expr ()->accept_vis (*this);
}
diff --git a/gcc/rust/hir/rust-hir-dump.cc b/gcc/rust/hir/rust-hir-dump.cc
index c283313..b46b5dd 100644
--- a/gcc/rust/hir/rust-hir-dump.cc
+++ b/gcc/rust/hir/rust-hir-dump.cc
@@ -649,14 +649,11 @@ Dump::visit (LetStmt &let_stmt)
indentation.decrement ();
}
void
-Dump::visit (ExprStmtWithoutBlock &expr_stmt)
+Dump::visit (ExprStmt &expr_stmt)
{
auto expr = expr_stmt.get_expr ();
expr->accept_vis (*this);
}
-void
-Dump::visit (ExprStmtWithBlock &)
-{}
void
Dump::visit (TraitBound &)
diff --git a/gcc/rust/hir/rust-hir-dump.h b/gcc/rust/hir/rust-hir-dump.h
index e8530fd..17c7634 100644
--- a/gcc/rust/hir/rust-hir-dump.h
+++ b/gcc/rust/hir/rust-hir-dump.h
@@ -165,8 +165,7 @@ private:
virtual void visit (EmptyStmt &) override;
virtual void visit (LetStmt &) override;
- virtual void visit (ExprStmtWithoutBlock &) override;
- virtual void visit (ExprStmtWithBlock &) override;
+ virtual void visit (ExprStmt &) override;
virtual void visit (TraitBound &) override;
virtual void visit (ImplTraitType &) override;
diff --git a/gcc/rust/hir/tree/rust-hir-stmt.h b/gcc/rust/hir/tree/rust-hir-stmt.h
index db45d19..07d29a5 100644
--- a/gcc/rust/hir/tree/rust-hir-stmt.h
+++ b/gcc/rust/hir/tree/rust-hir-stmt.h
@@ -166,6 +166,9 @@ public:
Location get_locus () const override final { return locus; }
+ void accept_vis (HIRFullVisitor &vis) override;
+ void accept_vis (HIRStmtVisitor &vis) override;
+
bool is_item () const override final { return false; }
Expr *get_expr () { return expr.get (); }
@@ -206,9 +209,6 @@ public:
: ExprStmt (std::move (mappings), std::move (expr), locus)
{}
- void accept_vis (HIRFullVisitor &vis) override;
- void accept_vis (HIRStmtVisitor &vis) override;
-
protected:
/* Use covariance to implement clone function as returning this object rather
* than base */
@@ -231,9 +231,6 @@ public:
must_be_unit (must_be_unit)
{}
- void accept_vis (HIRFullVisitor &vis) override;
- void accept_vis (HIRStmtVisitor &vis) override;
-
bool is_unit_check_needed () const override { return must_be_unit; }
protected:
diff --git a/gcc/rust/hir/tree/rust-hir-visitor.h b/gcc/rust/hir/tree/rust-hir-visitor.h
index c35db8e..38c74f6 100644
--- a/gcc/rust/hir/tree/rust-hir-visitor.h
+++ b/gcc/rust/hir/tree/rust-hir-visitor.h
@@ -138,8 +138,7 @@ public:
virtual void visit (AltPattern &pattern) = 0;
virtual void visit (EmptyStmt &stmt) = 0;
virtual void visit (LetStmt &stmt) = 0;
- virtual void visit (ExprStmtWithoutBlock &stmt) = 0;
- virtual void visit (ExprStmtWithBlock &stmt) = 0;
+ virtual void visit (ExprStmt &stmt) = 0;
virtual void visit (TraitBound &bound) = 0;
virtual void visit (ImplTraitType &type) = 0;
virtual void visit (TraitObjectType &type) = 0;
@@ -287,8 +286,7 @@ public:
virtual void visit (EmptyStmt &) override {}
virtual void visit (LetStmt &) override {}
- virtual void visit (ExprStmtWithoutBlock &) override {}
- virtual void visit (ExprStmtWithBlock &) override {}
+ virtual void visit (ExprStmt &) override {}
virtual void visit (TraitBound &) override {}
virtual void visit (ImplTraitType &) override {}
@@ -394,8 +392,7 @@ public:
virtual void visit (ExternBlock &block) = 0;
virtual void visit (EmptyStmt &stmt) = 0;
virtual void visit (LetStmt &stmt) = 0;
- virtual void visit (ExprStmtWithoutBlock &stmt) = 0;
- virtual void visit (ExprStmtWithBlock &stmt) = 0;
+ virtual void visit (ExprStmt &stmt) = 0;
};
class HIRExpressionVisitor
diff --git a/gcc/rust/hir/tree/rust-hir.cc b/gcc/rust/hir/tree/rust-hir.cc
index e78ada1..ac04706 100644
--- a/gcc/rust/hir/tree/rust-hir.cc
+++ b/gcc/rust/hir/tree/rust-hir.cc
@@ -4426,13 +4426,7 @@ LetStmt::accept_vis (HIRFullVisitor &vis)
}
void
-ExprStmtWithoutBlock::accept_vis (HIRFullVisitor &vis)
-{
- vis.visit (*this);
-}
-
-void
-ExprStmtWithBlock::accept_vis (HIRFullVisitor &vis)
+ExprStmt::accept_vis (HIRFullVisitor &vis)
{
vis.visit (*this);
}
@@ -4774,7 +4768,7 @@ QualifiedPathInType::accept_vis (HIRTypeVisitor &vis)
}
void
-ExprStmtWithoutBlock::accept_vis (HIRStmtVisitor &vis)
+ExprStmt::accept_vis (HIRStmtVisitor &vis)
{
vis.visit (*this);
}
@@ -4954,12 +4948,6 @@ QualifiedPathInExpression::accept_vis (HIRPatternVisitor &vis)
}
void
-ExprStmtWithBlock::accept_vis (HIRStmtVisitor &vis)
-{
- vis.visit (*this);
-}
-
-void
PathInExpression::accept_vis (HIRPatternVisitor &vis)
{
vis.visit (*this);
diff --git a/gcc/rust/typecheck/rust-hir-type-check-stmt.cc b/gcc/rust/typecheck/rust-hir-type-check-stmt.cc
index b99e731..141dd75 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-stmt.cc
+++ b/gcc/rust/typecheck/rust-hir-type-check-stmt.cc
@@ -36,13 +36,7 @@ TypeCheckStmt::Resolve (HIR::Stmt *stmt)
}
void
-TypeCheckStmt::visit (HIR::ExprStmtWithBlock &stmt)
-{
- infered = TypeCheckExpr::Resolve (stmt.get_expr ());
-}
-
-void
-TypeCheckStmt::visit (HIR::ExprStmtWithoutBlock &stmt)
+TypeCheckStmt::visit (HIR::ExprStmt &stmt)
{
infered = TypeCheckExpr::Resolve (stmt.get_expr ());
}
diff --git a/gcc/rust/typecheck/rust-hir-type-check-stmt.h b/gcc/rust/typecheck/rust-hir-type-check-stmt.h
index a4663b6..1c38416 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-stmt.h
+++ b/gcc/rust/typecheck/rust-hir-type-check-stmt.h
@@ -29,8 +29,7 @@ class TypeCheckStmt : private TypeCheckBase, private HIR::HIRStmtVisitor
public:
static TyTy::BaseType *Resolve (HIR::Stmt *stmt);
- void visit (HIR::ExprStmtWithBlock &stmt) override;
- void visit (HIR::ExprStmtWithoutBlock &stmt) override;
+ void visit (HIR::ExprStmt &stmt) override;
void visit (HIR::EmptyStmt &stmt) override;
void visit (HIR::ExternBlock &extern_block) override;
void visit (HIR::ConstantItem &constant) override;
diff --git a/gcc/rust/typecheck/rust-tycheck-dump.h b/gcc/rust/typecheck/rust-tycheck-dump.h
index 50b57f6..393533f6 100644
--- a/gcc/rust/typecheck/rust-tycheck-dump.h
+++ b/gcc/rust/typecheck/rust-tycheck-dump.h
@@ -136,12 +136,7 @@ public:
}
}
- void visit (HIR::ExprStmtWithBlock &stmt) override
- {
- stmt.get_expr ()->accept_vis (*this);
- }
-
- void visit (HIR::ExprStmtWithoutBlock &stmt) override
+ void visit (HIR::ExprStmt &stmt) override
{
stmt.get_expr ()->accept_vis (*this);
}