From d93a1f032db86fe602566a6868b9bc5279554e71 Mon Sep 17 00:00:00 2001 From: Owen Avery Date: Sat, 8 Apr 2023 01:37:56 -0400 Subject: 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 --- gcc/rust/hir/tree/rust-hir-stmt.h | 9 +++------ gcc/rust/hir/tree/rust-hir-visitor.h | 9 +++------ gcc/rust/hir/tree/rust-hir.cc | 16 ++-------------- 3 files changed, 8 insertions(+), 26 deletions(-) (limited to 'gcc/rust/hir/tree') 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); -- cgit v1.1