]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Unify HIR::ExprStmt derived class visiting
authorOwen Avery <powerboat9.gamer@gmail.com>
Sat, 8 Apr 2023 05:37:56 +0000 (01:37 -0400)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 17:28:46 +0000 (18:28 +0100)
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>
18 files changed:
gcc/rust/backend/rust-compile-item.h
gcc/rust/backend/rust-compile-stmt.cc
gcc/rust/backend/rust-compile-stmt.h
gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
gcc/rust/checks/errors/rust-const-checker.cc
gcc/rust/checks/errors/rust-const-checker.h
gcc/rust/checks/errors/rust-unsafe-checker.cc
gcc/rust/checks/errors/rust-unsafe-checker.h
gcc/rust/checks/lints/rust-lint-marklive.h
gcc/rust/hir/rust-hir-dump.cc
gcc/rust/hir/rust-hir-dump.h
gcc/rust/hir/tree/rust-hir-stmt.h
gcc/rust/hir/tree/rust-hir-visitor.h
gcc/rust/hir/tree/rust-hir.cc
gcc/rust/typecheck/rust-hir-type-check-stmt.cc
gcc/rust/typecheck/rust-hir-type-check-stmt.h
gcc/rust/typecheck/rust-tycheck-dump.h

index 93cf21be096b36b5ec1e32a38b8b562393f4ad13..87251ea1c60e970b210be9567f750246484faecd 100644 (file)
@@ -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)
index 0f14ab2c3b688233e83d6b061984442b829fe9b1..5c1dbdbac2d2f1b0de71fd5c27ecca32e467583d 100644 (file)
@@ -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);
 }
index 98cf17d042bca659068db6b26b7b8a30f8832729..7b9e93d193db8290a4eaf2abec54fabe26ac8cf4 100644 (file)
@@ -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.
index 1b75791dd6003a6e9ba3f0cb87d8a5e6299549a3..6ec4de7c478f73847bde5d6bf6398b46d70cc421 100644 (file)
@@ -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);
 }
index 50fcf73efc2d74949d150b3b88987e931bf674f5..e391642eee444385d58edaa65d6a1f5a5ecf734c 100644 (file)
@@ -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;
index 0858545e9bc6682e4931a5f89924d66616f73b62..524374d9f3b920fd1bfde25fc8db32da947b74fb 100644 (file)
@@ -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);
 }
index eb1cc4ef08fd44a20fd7083b29b035499eaecef5..8294f01aa93eb1b64488d766663ca5e94548bdd4 100644 (file)
@@ -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;
index d311366ad30a9265660f2dd05e20d2ba39bd01ba..8725e780dc94cb6901094974639df3d4ad41309f 100644 (file)
@@ -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);
 }
index ec0db39d942b0425969e94067f2bbe48d44b35fb..43995811265a2ec389e267dbcc3336ae08cc0510 100644 (file)
@@ -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;
index 6fb4467f12ddcf9a55cdb303293d533c8bf376bd..4d308471681fc27392d1f1e77910fc9f283d3f3f 100644 (file)
@@ -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);
   }
index c2833132abbf6c9af56f7ad87ab0e0103a0784d5..b46b5dd3d9ad656e177ede77b3696149c8f8fa0a 100644 (file)
@@ -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 &)
index e8530fdcaa0be9c22b0f72613882c5ccc296307c..17c7634c59833fc7e1e6edcdc501655f50c44966 100644 (file)
@@ -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;
index db45d1958e2d21b0c2f3f8f9647c7dc240975aed..07d29a5482d9256801eef31e3ecbfebeb243d48a 100644 (file)
@@ -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:
index c35db8ec1aee5a0a4e56c0926448180323bce7ec..38c74f675eb0b5b1b449e3b2241631684f503cb6 100644 (file)
@@ -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
index e78ada1d0d9004b4d2e1e72b76b7134ae3cae58d..ac047067f82f29c50972c0b88175a26cc9ae1fb6 100644 (file)
@@ -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)
 {
index b99e7318d97d7f18c3599582fa18161892c363a0..141dd753ebfe6573f04edde3cc30e800dcd4f6f0 100644 (file)
@@ -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 ());
 }
index a4663b685584646dcbece153a0468083e86be83c..1c38416b6d5eed08041d9af565af30db63e60548 100644 (file)
@@ -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;
index 50b57f6e7a6987834789c3a134b0800e9bb757b7..393533f622c26098cc06de450b422f17ef9e0afe 100644 (file)
@@ -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);
   }