[gcc r14-7471] gccrs: Unify HIR::ExprStmt derived class visiting

Arthur Cohen cohenarthur@gcc.gnu.org
Tue Jan 16 17:37:36 GMT 2024


https://gcc.gnu.org/g:d93a1f032db86fe602566a6868b9bc5279554e71

commit r14-7471-gd93a1f032db86fe602566a6868b9bc5279554e71
Author: Owen Avery <powerboat9.gamer@gmail.com>
Date:   Sat Apr 8 01:37:56 2023 -0400

    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>

Diff:
---
 gcc/rust/backend/rust-compile-item.h                    |  3 +--
 gcc/rust/backend/rust-compile-stmt.cc                   |  8 +-------
 gcc/rust/backend/rust-compile-stmt.h                    |  3 +--
 gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc |  8 +-------
 gcc/rust/checks/errors/privacy/rust-privacy-reporter.h  |  3 +--
 gcc/rust/checks/errors/rust-const-checker.cc            |  8 +-------
 gcc/rust/checks/errors/rust-const-checker.h             |  3 +--
 gcc/rust/checks/errors/rust-unsafe-checker.cc           |  8 +-------
 gcc/rust/checks/errors/rust-unsafe-checker.h            |  3 +--
 gcc/rust/checks/lints/rust-lint-marklive.h              |  7 +------
 gcc/rust/hir/rust-hir-dump.cc                           |  5 +----
 gcc/rust/hir/rust-hir-dump.h                            |  3 +--
 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 ++--------------
 gcc/rust/typecheck/rust-hir-type-check-stmt.cc          |  8 +-------
 gcc/rust/typecheck/rust-hir-type-check-stmt.h           |  3 +--
 gcc/rust/typecheck/rust-tycheck-dump.h                  |  7 +------
 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 93cf21be096..87251ea1c60 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 0f14ab2c3b6..5c1dbdbac2d 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 98cf17d042b..7b9e93d193d 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 1b75791dd60..6ec4de7c478 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 50fcf73efc2..e391642eee4 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 0858545e9bc..524374d9f3b 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 eb1cc4ef08f..8294f01aa93 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 d311366ad30..8725e780dc9 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 ec0db39d942..43995811265 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 6fb4467f12d..4d308471681 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 c2833132abb..b46b5dd3d9a 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 e8530fdcaa0..17c7634c598 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 db45d1958e2..07d29a5482d 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 c35db8ec1ae..38c74f675eb 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 e78ada1d0d9..ac047067f82 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);
 }
@@ -4953,12 +4947,6 @@ QualifiedPathInExpression::accept_vis (HIRPatternVisitor &vis)
   vis.visit (*this);
 }
 
-void
-ExprStmtWithBlock::accept_vis (HIRStmtVisitor &vis)
-{
-  vis.visit (*this);
-}
-
 void
 PathInExpression::accept_vis (HIRPatternVisitor &vis)
 {
diff --git a/gcc/rust/typecheck/rust-hir-type-check-stmt.cc b/gcc/rust/typecheck/rust-hir-type-check-stmt.cc
index b99e7318d97..141dd753ebf 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 a4663b68558..1c38416b6d5 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 50b57f6e7a6..393533f622c 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);
   }


More information about the Gcc-cvs mailing list