aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorOwen Avery <powerboat9.gamer@gmail.com>2023-04-08 01:37:56 -0400
committerPhilip Herron <philip.herron@embecosm.com>2023-04-13 11:50:47 +0000
commit862ec75eaf907fdaf5eac5b467ebafb7f5bf2795 (patch)
tree47bf310eaae8a51761be6d294128992b177d9d3b /gcc
parentb0487d6731d5d901154396e1d804a671371ac2eb (diff)
downloadgcc-862ec75eaf907fdaf5eac5b467ebafb7f5bf2795.zip
gcc-862ec75eaf907fdaf5eac5b467ebafb7f5bf2795.tar.gz
gcc-862ec75eaf907fdaf5eac5b467ebafb7f5bf2795.tar.bz2
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 ae3fdf6..70efc15 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 6bb4ead..5bb7b8d 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 1f06d54..498211d 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 2f31965..60bfc22 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 c19d3fa..26b8354 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 131dc66..f368b22 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 15c6158..bdc7f66 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 cdf6233..a0157e3 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 a55c6db..6fb50a4 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 be634a7..cf8f423 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 bc4ff53..4b0d613 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 7b8b54d..5cb10fb 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 3e7697c..d5d76e0 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 17c9c6d..c7e1aad 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 47c62df..03e7e26 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 96ab3b1..18df2e5 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 04878b8..9e4ca08 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 0076fe9..f6f239f 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);
}