[gcc r17-3120] gccrs: hir: Remove unnecessary HIR::RangeFromToInclExpr class

Arthur Cohen via Gcc-cvs <[email protected]>
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:372615294b6b55f3482bbc46f6080723a800c493

commit r17-3120-g372615294b6b55f3482bbc46f6080723a800c493
Author: Enes Cevik <[email protected]>
Date:   Tue Jul 14 15:22:11 2026 +0300

    gccrs: hir: Remove unnecessary HIR::RangeFromToInclExpr class
    
    This patch removes the unnecessary HIR::RangeFromToInclExpr class and its
    associated visitors across the compiler. Since inclusive ranges are now
    directly desugared into a CallExpr targeting the 'range_inclusive_new'
    lang item during AST-to-HIR lowering, this HIR node and its
    codegen/typecheck implementations are dead code.
    
    gcc/rust/ChangeLog:
    
            * backend/rust-compile-block.h: Remove RangeFromToInclExpr visit.
            * backend/rust-compile-expr.cc (CompileExpr::visit): Likewise.
            * backend/rust-compile-expr.h: Likewise.
            * checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
            (ExprStmtBuilder::visit): Likewise.
            * checks/errors/borrowck/rust-bir-builder-expr-stmt.h: Likewise.
            * checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h:
            Likewise.
            * checks/errors/borrowck/rust-bir-builder-struct.h: Likewise.
            * checks/errors/borrowck/rust-function-collector.h: Likewise.
            * checks/errors/privacy/rust-privacy-reporter.cc
            (PrivacyReporter::visit): Likewise.
            * checks/errors/privacy/rust-privacy-reporter.h: Likewise.
            * checks/errors/rust-const-checker.cc (ConstChecker::visit):
            Likewise.
            * checks/errors/rust-const-checker.h: Likewise.
            * checks/errors/rust-hir-pattern-analysis.cc
            (PatternChecker::visit): Likewise.
            * checks/errors/rust-hir-pattern-analysis.h: Likewise.
            * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit):
            Likewise.
            * checks/errors/rust-unsafe-checker.h: Likewise.
            * hir/rust-hir-dump.cc (Dump::visit): Likewise.
            * hir/rust-hir-dump.h: Likewise.
            * hir/tree/rust-hir-expr.cc
            (RangeFromToInclExpr::RangeFromToInclExpr): Likewise.
            (RangeFromToInclExpr::operator=): Likewise.
            * hir/tree/rust-hir-expr.h (class RangeFromToInclExpr): Remove
            class.
            * hir/tree/rust-hir-full-decls.h (class RangeFromToInclExpr):
            Remove forward declaration.
            * hir/tree/rust-hir-visitor.cc (DefaultHIRVisitor::walk): Remove
            RangeFromToInclExpr visit.
            * hir/tree/rust-hir-visitor.h: Likewise.
            * hir/tree/rust-hir.cc (RangeFromToInclExpr::to_string): Remove.
            (RangeFromToInclExpr::accept_vis): Remove.
            * typecheck/rust-hir-type-check-expr.cc (TypeCheckExpr::visit):
            Remove.
            * typecheck/rust-hir-type-check-expr.h: Remove
            RangeFromToInclExpr visit.
    
    Signed-off-by: Enes Cevik <[email protected]>

Diff:
---
 gcc/rust/backend/rust-compile-block.h              |  2 -
 gcc/rust/backend/rust-compile-expr.cc              | 23 ----------
 gcc/rust/backend/rust-compile-expr.h               |  1 -
 .../errors/borrowck/rust-bir-builder-expr-stmt.cc  |  9 ----
 .../errors/borrowck/rust-bir-builder-expr-stmt.h   |  1 -
 .../borrowck/rust-bir-builder-lazyboolexpr.h       |  1 -
 .../errors/borrowck/rust-bir-builder-struct.h      |  1 -
 .../errors/borrowck/rust-function-collector.h      |  1 -
 .../checks/errors/privacy/rust-privacy-reporter.cc |  7 ---
 .../checks/errors/privacy/rust-privacy-reporter.h  |  1 -
 gcc/rust/checks/errors/rust-const-checker.cc       |  7 ---
 gcc/rust/checks/errors/rust-const-checker.h        |  1 -
 .../checks/errors/rust-hir-pattern-analysis.cc     |  7 ---
 gcc/rust/checks/errors/rust-hir-pattern-analysis.h |  1 -
 gcc/rust/checks/errors/rust-unsafe-checker.cc      |  7 ---
 gcc/rust/checks/errors/rust-unsafe-checker.h       |  1 -
 gcc/rust/hir/rust-hir-dump.cc                      | 11 -----
 gcc/rust/hir/rust-hir-dump.h                       |  1 -
 gcc/rust/hir/tree/rust-hir-expr.cc                 | 23 ----------
 gcc/rust/hir/tree/rust-hir-expr.h                  | 47 --------------------
 gcc/rust/hir/tree/rust-hir-full-decls.h            |  1 -
 gcc/rust/hir/tree/rust-hir-visitor.cc              |  7 ---
 gcc/rust/hir/tree/rust-hir-visitor.h               |  5 ---
 gcc/rust/hir/tree/rust-hir.cc                      | 18 --------
 gcc/rust/typecheck/rust-hir-type-check-expr.cc     | 50 ----------------------
 gcc/rust/typecheck/rust-hir-type-check-expr.h      |  1 -
 26 files changed, 235 deletions(-)

diff --git a/gcc/rust/backend/rust-compile-block.h b/gcc/rust/backend/rust-compile-block.h
index 9d29e8fc504b..aafb50a85a84 100644
--- a/gcc/rust/backend/rust-compile-block.h
+++ b/gcc/rust/backend/rust-compile-block.h
@@ -92,7 +92,6 @@ public:
   void visit (HIR::RangeFromExpr &) override {}
   void visit (HIR::RangeToExpr &) override {}
   void visit (HIR::RangeFullExpr &) override {}
-  void visit (HIR::RangeFromToInclExpr &) override {}
   void visit (HIR::RangeToInclExpr &) override {}
   void visit (HIR::BoxExpr &) override {}
   void visit (HIR::ReturnExpr &) override {}
@@ -183,7 +182,6 @@ public:
   void visit (HIR::RangeFromExpr &) override {}
   void visit (HIR::RangeToExpr &) override {}
   void visit (HIR::RangeFullExpr &) override {}
-  void visit (HIR::RangeFromToInclExpr &) override {}
   void visit (HIR::RangeToInclExpr &) override {}
   void visit (HIR::BoxExpr &) override {}
   void visit (HIR::ReturnExpr &) override {}
diff --git a/gcc/rust/backend/rust-compile-expr.cc b/gcc/rust/backend/rust-compile-expr.cc
index 4be42161bfd2..2c901187da4a 100644
--- a/gcc/rust/backend/rust-compile-expr.cc
+++ b/gcc/rust/backend/rust-compile-expr.cc
@@ -2636,29 +2636,6 @@ CompileExpr::visit (HIR::RangeFullExpr &expr)
     = Backend::constructor_expression (adt, false, {}, -1, expr.get_locus ());
 }
 
-void
-CompileExpr::visit (HIR::RangeFromToInclExpr &expr)
-{
-  tree from = CompileExpr::Compile (expr.get_from_expr (), ctx);
-  tree to = CompileExpr::Compile (expr.get_to_expr (), ctx);
-  if (from == error_mark_node || to == error_mark_node)
-    {
-      translated = error_mark_node;
-      return;
-    }
-
-  TyTy::BaseType *tyty = nullptr;
-  bool ok
-    = ctx->get_tyctx ()->lookup_type (expr.get_mappings ().get_hirid (), &tyty);
-  rust_assert (ok);
-
-  tree adt = TyTyResolveCompile::compile (ctx, tyty);
-
-  // make the constructor
-  translated = Backend::constructor_expression (adt, false, {from, to}, -1,
-						expr.get_locus ());
-}
-
 void
 CompileExpr::visit (HIR::ArrayIndexExpr &expr)
 {
diff --git a/gcc/rust/backend/rust-compile-expr.h b/gcc/rust/backend/rust-compile-expr.h
index 452fa28cff05..9dd1e7b6b4b3 100644
--- a/gcc/rust/backend/rust-compile-expr.h
+++ b/gcc/rust/backend/rust-compile-expr.h
@@ -72,7 +72,6 @@ public:
   void visit (HIR::RangeFromExpr &expr) override;
   void visit (HIR::RangeToExpr &expr) override;
   void visit (HIR::RangeFullExpr &expr) override;
-  void visit (HIR::RangeFromToInclExpr &expr) override;
   void visit (HIR::ClosureExpr &expr) override;
   void visit (HIR::InlineAsm &expr) override;
   void visit (HIR::LlvmInlineAsm &expr) override;
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc b/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
index b1403609226b..b58f2cfe919b 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.cc
@@ -489,15 +489,6 @@ ExprStmtBuilder::visit (HIR::RangeFullExpr &expr)
   return_expr (new InitializerExpr ({}), lookup_type (expr), expr.get_locus ());
 }
 
-void
-ExprStmtBuilder::visit (HIR::RangeFromToInclExpr &expr)
-{
-  auto from = visit_expr (expr.get_from_expr ());
-  auto to = visit_expr (expr.get_to_expr ());
-  return_expr (new InitializerExpr ({from, to}), lookup_type (expr),
-	       expr.get_locus ());
-}
-
 void
 ExprStmtBuilder::visit (HIR::RangeToInclExpr &expr)
 {
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h b/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h
index 8d50b0715f95..7a6f911cadcd 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-expr-stmt.h
@@ -93,7 +93,6 @@ protected: // Expr
   void visit (HIR::RangeFromExpr &expr) override;
   void visit (HIR::RangeToExpr &expr) override;
   void visit (HIR::RangeFullExpr &expr) override;
-  void visit (HIR::RangeFromToInclExpr &expr) override;
   void visit (HIR::RangeToInclExpr &expr) override;
   void visit (HIR::BoxExpr &expr) override;
   void visit (HIR::ReturnExpr &ret) override;
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h b/gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h
index d360508efc95..c3be0f8a92f2 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-lazyboolexpr.h
@@ -237,7 +237,6 @@ protected: // Illegal at this position.
   void visit (HIR::RangeFromExpr &expr) override { rust_unreachable (); }
   void visit (HIR::RangeToExpr &expr) override { rust_unreachable (); }
   void visit (HIR::RangeFullExpr &expr) override { rust_unreachable (); }
-  void visit (HIR::RangeFromToInclExpr &expr) override { rust_unreachable (); }
   void visit (HIR::RangeToInclExpr &expr) override { rust_unreachable (); }
   void visit (HIR::ReturnExpr &expr) override { rust_unreachable (); }
   void visit (HIR::BoxExpr &expr) override { rust_unreachable (); }
diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h b/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h
index 7c669e1cc902..77d68749c3a8 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-struct.h
@@ -143,7 +143,6 @@ protected:
   void visit (HIR::RangeFromExpr &expr) override { rust_unreachable (); }
   void visit (HIR::RangeToExpr &expr) override { rust_unreachable (); }
   void visit (HIR::RangeFullExpr &expr) override { rust_unreachable (); }
-  void visit (HIR::RangeFromToInclExpr &expr) override { rust_unreachable (); }
   void visit (HIR::RangeToInclExpr &expr) override { rust_unreachable (); }
   void visit (HIR::BoxExpr &expr) override { rust_unreachable (); }
   void visit (HIR::ReturnExpr &expr) override { rust_unreachable (); }
diff --git a/gcc/rust/checks/errors/borrowck/rust-function-collector.h b/gcc/rust/checks/errors/borrowck/rust-function-collector.h
index 439f5b37b562..d3625b64fd74 100644
--- a/gcc/rust/checks/errors/borrowck/rust-function-collector.h
+++ b/gcc/rust/checks/errors/borrowck/rust-function-collector.h
@@ -113,7 +113,6 @@ public:
   void visit (HIR::RangeFromExpr &expr) override {}
   void visit (HIR::RangeToExpr &expr) override {}
   void visit (HIR::RangeFullExpr &expr) override {}
-  void visit (HIR::RangeFromToInclExpr &expr) override {}
   void visit (HIR::RangeToInclExpr &expr) override {}
   void visit (HIR::BoxExpr &expr) override {}
   void visit (HIR::ReturnExpr &expr) override {}
diff --git a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
index 2b4e87421de5..5531328ba4b4 100644
--- a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
+++ b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
@@ -575,13 +575,6 @@ void
 PrivacyReporter::visit (HIR::RangeFullExpr &)
 {}
 
-void
-PrivacyReporter::visit (HIR::RangeFromToInclExpr &expr)
-{
-  expr.get_from_expr ().accept_vis (*this);
-  expr.get_to_expr ().accept_vis (*this);
-}
-
 void
 PrivacyReporter::visit (HIR::RangeToInclExpr &)
 {
diff --git a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.h b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
index d8d37a537873..e6fcd7682c68 100644
--- a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
+++ b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
@@ -125,7 +125,6 @@ types
   virtual void visit (HIR::RangeFromExpr &expr);
   virtual void visit (HIR::RangeToExpr &expr);
   virtual void visit (HIR::RangeFullExpr &expr);
-  virtual void visit (HIR::RangeFromToInclExpr &expr);
   virtual void visit (HIR::RangeToInclExpr &expr);
   virtual void visit (HIR::BoxExpr &expr);
   virtual void visit (HIR::ReturnExpr &expr);
diff --git a/gcc/rust/checks/errors/rust-const-checker.cc b/gcc/rust/checks/errors/rust-const-checker.cc
index 7cfd81a4aa03..1a594bf9f0bd 100644
--- a/gcc/rust/checks/errors/rust-const-checker.cc
+++ b/gcc/rust/checks/errors/rust-const-checker.cc
@@ -459,13 +459,6 @@ void
 ConstChecker::visit (RangeFullExpr &)
 {}
 
-void
-ConstChecker::visit (RangeFromToInclExpr &expr)
-{
-  expr.get_from_expr ().accept_vis (*this);
-  expr.get_to_expr ().accept_vis (*this);
-}
-
 void
 ConstChecker::visit (RangeToInclExpr &)
 {
diff --git a/gcc/rust/checks/errors/rust-const-checker.h b/gcc/rust/checks/errors/rust-const-checker.h
index d2c9b1bf4317..a98bcc1620fc 100644
--- a/gcc/rust/checks/errors/rust-const-checker.h
+++ b/gcc/rust/checks/errors/rust-const-checker.h
@@ -121,7 +121,6 @@ private:
   virtual void visit (RangeFromExpr &expr) override;
   virtual void visit (RangeToExpr &expr) override;
   virtual void visit (RangeFullExpr &expr) override;
-  virtual void visit (RangeFromToInclExpr &expr) override;
   virtual void visit (RangeToInclExpr &expr) override;
   virtual void visit (BoxExpr &expr) override;
   virtual void visit (ReturnExpr &expr) override;
diff --git a/gcc/rust/checks/errors/rust-hir-pattern-analysis.cc b/gcc/rust/checks/errors/rust-hir-pattern-analysis.cc
index 81f872fdcc04..ef5ae34d3cbf 100644
--- a/gcc/rust/checks/errors/rust-hir-pattern-analysis.cc
+++ b/gcc/rust/checks/errors/rust-hir-pattern-analysis.cc
@@ -330,13 +330,6 @@ void
 PatternChecker::visit (RangeFullExpr &)
 {}
 
-void
-PatternChecker::visit (RangeFromToInclExpr &expr)
-{
-  expr.get_from_expr ().accept_vis (*this);
-  expr.get_to_expr ().accept_vis (*this);
-}
-
 void
 PatternChecker::visit (RangeToInclExpr &expr)
 {
diff --git a/gcc/rust/checks/errors/rust-hir-pattern-analysis.h b/gcc/rust/checks/errors/rust-hir-pattern-analysis.h
index eba88e306b72..639697b6fa21 100644
--- a/gcc/rust/checks/errors/rust-hir-pattern-analysis.h
+++ b/gcc/rust/checks/errors/rust-hir-pattern-analysis.h
@@ -95,7 +95,6 @@ private:
   virtual void visit (RangeFromExpr &expr) override;
   virtual void visit (RangeToExpr &expr) override;
   virtual void visit (RangeFullExpr &expr) override;
-  virtual void visit (RangeFromToInclExpr &expr) override;
   virtual void visit (RangeToInclExpr &expr) override;
   virtual void visit (BoxExpr &expr) override;
   virtual void visit (ReturnExpr &expr) override;
diff --git a/gcc/rust/checks/errors/rust-unsafe-checker.cc b/gcc/rust/checks/errors/rust-unsafe-checker.cc
index 0868aac3ae50..2eea755748b5 100644
--- a/gcc/rust/checks/errors/rust-unsafe-checker.cc
+++ b/gcc/rust/checks/errors/rust-unsafe-checker.cc
@@ -560,13 +560,6 @@ void
 UnsafeChecker::visit (RangeFullExpr &)
 {}
 
-void
-UnsafeChecker::visit (RangeFromToInclExpr &expr)
-{
-  expr.get_from_expr ().accept_vis (*this);
-  expr.get_to_expr ().accept_vis (*this);
-}
-
 void
 UnsafeChecker::visit (RangeToInclExpr &expr)
 {
diff --git a/gcc/rust/checks/errors/rust-unsafe-checker.h b/gcc/rust/checks/errors/rust-unsafe-checker.h
index c964837ec1d5..3382ae0f5761 100644
--- a/gcc/rust/checks/errors/rust-unsafe-checker.h
+++ b/gcc/rust/checks/errors/rust-unsafe-checker.h
@@ -103,7 +103,6 @@ private:
   virtual void visit (RangeFromExpr &expr) override;
   virtual void visit (RangeToExpr &expr) override;
   virtual void visit (RangeFullExpr &expr) override;
-  virtual void visit (RangeFromToInclExpr &expr) override;
   virtual void visit (RangeToInclExpr &expr) override;
   virtual void visit (BoxExpr &expr) override;
   virtual void visit (ReturnExpr &expr) override;
diff --git a/gcc/rust/hir/rust-hir-dump.cc b/gcc/rust/hir/rust-hir-dump.cc
index 4228788bcd44..29b3ff92a8b3 100644
--- a/gcc/rust/hir/rust-hir-dump.cc
+++ b/gcc/rust/hir/rust-hir-dump.cc
@@ -1391,17 +1391,6 @@ Dump::visit (RangeFullExpr &e)
   end ("RangeFullExpr");
 }
 
-void
-Dump::visit (RangeFromToInclExpr &e)
-{
-  begin ("RangeFromToInclExpr");
-
-  visit_field ("from", e.get_from_expr ());
-  visit_field ("to", e.get_to_expr ());
-
-  end ("RangeFromToInclExpr");
-}
-
 void
 Dump::visit (RangeToInclExpr &e)
 {
diff --git a/gcc/rust/hir/rust-hir-dump.h b/gcc/rust/hir/rust-hir-dump.h
index c6496497d2f7..7440f8cc0c66 100644
--- a/gcc/rust/hir/rust-hir-dump.h
+++ b/gcc/rust/hir/rust-hir-dump.h
@@ -154,7 +154,6 @@ private:
   virtual void visit (RangeFromExpr &) override;
   virtual void visit (RangeToExpr &) override;
   virtual void visit (RangeFullExpr &) override;
-  virtual void visit (RangeFromToInclExpr &) override;
   virtual void visit (RangeToInclExpr &) override;
   virtual void visit (BoxExpr &) override;
   virtual void visit (ReturnExpr &) override;
diff --git a/gcc/rust/hir/tree/rust-hir-expr.cc b/gcc/rust/hir/tree/rust-hir-expr.cc
index b93309cdc79f..e45178af4156 100644
--- a/gcc/rust/hir/tree/rust-hir-expr.cc
+++ b/gcc/rust/hir/tree/rust-hir-expr.cc
@@ -930,29 +930,6 @@ RangeFullExpr::RangeFullExpr (Analysis::NodeMapping mappings, location_t locus)
   : RangeExpr (std::move (mappings), locus)
 {}
 
-RangeFromToInclExpr::RangeFromToInclExpr (Analysis::NodeMapping mappings,
-					  std::unique_ptr<Expr> range_from,
-					  std::unique_ptr<Expr> range_to,
-					  location_t locus)
-  : RangeExpr (std::move (mappings), locus), from (std::move (range_from)),
-    to (std::move (range_to))
-{}
-
-RangeFromToInclExpr::RangeFromToInclExpr (RangeFromToInclExpr const &other)
-  : RangeExpr (other), from (other.from->clone_expr ()),
-    to (other.to->clone_expr ())
-{}
-
-RangeFromToInclExpr &
-RangeFromToInclExpr::operator= (RangeFromToInclExpr const &other)
-{
-  RangeExpr::operator= (other);
-  from = other.from->clone_expr ();
-  to = other.to->clone_expr ();
-
-  return *this;
-}
-
 RangeToInclExpr::RangeToInclExpr (Analysis::NodeMapping mappings,
 				  std::unique_ptr<Expr> range_to,
 				  location_t locus)
diff --git a/gcc/rust/hir/tree/rust-hir-expr.h b/gcc/rust/hir/tree/rust-hir-expr.h
index ad14764eba48..abd5e7d2dc5d 100644
--- a/gcc/rust/hir/tree/rust-hir-expr.h
+++ b/gcc/rust/hir/tree/rust-hir-expr.h
@@ -2176,53 +2176,6 @@ protected:
   }
 };
 
-// Range from (inclusive) and to (inclusive) expression HIR node object
-// aka RangeInclusiveExpr; constructs a std::ops::RangeInclusive object
-class RangeFromToInclExpr : public RangeExpr
-{
-  std::unique_ptr<Expr> from;
-  std::unique_ptr<Expr> to;
-
-public:
-  std::string to_string () const override;
-
-  RangeFromToInclExpr (Analysis::NodeMapping mappings,
-		       std::unique_ptr<Expr> range_from,
-		       std::unique_ptr<Expr> range_to, location_t locus);
-  // outer attributes not allowed
-
-  // Copy constructor with clone
-  RangeFromToInclExpr (RangeFromToInclExpr const &other);
-
-  // Overload assignment operator to use clone
-  RangeFromToInclExpr &operator= (RangeFromToInclExpr const &other);
-
-  // move constructors
-  RangeFromToInclExpr (RangeFromToInclExpr &&other) = default;
-  RangeFromToInclExpr &operator= (RangeFromToInclExpr &&other) = default;
-
-  void accept_vis (HIRFullVisitor &vis) override;
-  void accept_vis (HIRExpressionVisitor &vis) override;
-
-  Expr &get_from_expr () { return *from; }
-  Expr &get_to_expr () { return *to; }
-
-protected:
-  /* Use covariance to implement clone function as returning this object rather
-   * than base */
-  RangeFromToInclExpr *clone_expr_impl () const override
-  {
-    return new RangeFromToInclExpr (*this);
-  }
-
-  /* Use covariance to implement clone function as returning this object rather
-   * than base */
-  RangeFromToInclExpr *clone_expr_without_block_impl () const override
-  {
-    return new RangeFromToInclExpr (*this);
-  }
-};
-
 // Range to (inclusive) expression HIR node object
 // aka RangeToInclusiveExpr; constructs a std::ops::RangeToInclusive object
 class RangeToInclExpr : public RangeExpr
diff --git a/gcc/rust/hir/tree/rust-hir-full-decls.h b/gcc/rust/hir/tree/rust-hir-full-decls.h
index 33a1986bccdc..305dc7ef33c6 100644
--- a/gcc/rust/hir/tree/rust-hir-full-decls.h
+++ b/gcc/rust/hir/tree/rust-hir-full-decls.h
@@ -104,7 +104,6 @@ class RangeFromToExpr;
 class RangeFromExpr;
 class RangeToExpr;
 class RangeFullExpr;
-class RangeFromToInclExpr;
 class RangeToInclExpr;
 class BoxExpr;
 class ReturnExpr;
diff --git a/gcc/rust/hir/tree/rust-hir-visitor.cc b/gcc/rust/hir/tree/rust-hir-visitor.cc
index 5128ff4e1ca4..00b46e742f63 100644
--- a/gcc/rust/hir/tree/rust-hir-visitor.cc
+++ b/gcc/rust/hir/tree/rust-hir-visitor.cc
@@ -422,13 +422,6 @@ void
 DefaultHIRVisitor::walk (RangeFullExpr &)
 {}
 
-void
-DefaultHIRVisitor::walk (RangeFromToInclExpr &expr)
-{
-  expr.get_from_expr ().accept_vis (*this);
-  expr.get_to_expr ().accept_vis (*this);
-}
-
 void
 DefaultHIRVisitor::walk (RangeToInclExpr &expr)
 {
diff --git a/gcc/rust/hir/tree/rust-hir-visitor.h b/gcc/rust/hir/tree/rust-hir-visitor.h
index d39c84fbb29e..95e7bc53b5ec 100644
--- a/gcc/rust/hir/tree/rust-hir-visitor.h
+++ b/gcc/rust/hir/tree/rust-hir-visitor.h
@@ -74,7 +74,6 @@ public:
   virtual void visit (RangeFromExpr &expr) = 0;
   virtual void visit (RangeToExpr &expr) = 0;
   virtual void visit (RangeFullExpr &expr) = 0;
-  virtual void visit (RangeFromToInclExpr &expr) = 0;
   virtual void visit (RangeToInclExpr &expr) = 0;
   virtual void visit (BoxExpr &expr) = 0;
   virtual void visit (ReturnExpr &expr) = 0;
@@ -244,7 +243,6 @@ public:
   virtual void visit (RangeFromExpr &node) override { walk (node); }
   virtual void visit (RangeToExpr &node) override { walk (node); }
   virtual void visit (RangeFullExpr &node) override { walk (node); }
-  virtual void visit (RangeFromToInclExpr &node) override { walk (node); }
   virtual void visit (RangeToInclExpr &node) override { walk (node); }
   virtual void visit (BoxExpr &node) override { walk (node); }
   virtual void visit (ReturnExpr &node) override { walk (node); }
@@ -386,7 +384,6 @@ protected:
   virtual void walk (RangeFromExpr &) final;
   virtual void walk (RangeToExpr &) final;
   virtual void walk (RangeFullExpr &) final;
-  virtual void walk (RangeFromToInclExpr &) final;
   virtual void walk (RangeToInclExpr &) final;
   virtual void walk (BoxExpr &) final;
   virtual void walk (ReturnExpr &) final;
@@ -528,7 +525,6 @@ public:
   virtual void visit (RangeFromExpr &) override {}
   virtual void visit (RangeToExpr &) override {}
   virtual void visit (RangeFullExpr &) override {}
-  virtual void visit (RangeFromToInclExpr &) override {}
   virtual void visit (RangeToInclExpr &) override {}
   virtual void visit (BoxExpr &) override {}
   virtual void visit (ReturnExpr &) override {}
@@ -761,7 +757,6 @@ public:
   virtual void visit (RangeFromExpr &expr) = 0;
   virtual void visit (RangeToExpr &expr) = 0;
   virtual void visit (RangeFullExpr &expr) = 0;
-  virtual void visit (RangeFromToInclExpr &expr) = 0;
   virtual void visit (RangeToInclExpr &expr) = 0;
   virtual void visit (BoxExpr &expr) = 0;
   virtual void visit (ReturnExpr &expr) = 0;
diff --git a/gcc/rust/hir/tree/rust-hir.cc b/gcc/rust/hir/tree/rust-hir.cc
index 2b9bd5670146..51b588a0218c 100644
--- a/gcc/rust/hir/tree/rust-hir.cc
+++ b/gcc/rust/hir/tree/rust-hir.cc
@@ -1656,12 +1656,6 @@ IfExprConseqElse::to_string () const
   return str;
 }
 
-std::string
-RangeFromToInclExpr::to_string () const
-{
-  return from->to_string () + "..=" + to->to_string ();
-}
-
 std::string
 ErrorPropagationExpr::to_string () const
 {
@@ -4246,12 +4240,6 @@ RangeFullExpr::accept_vis (HIRFullVisitor &vis)
   vis.visit (*this);
 }
 
-void
-RangeFromToInclExpr::accept_vis (HIRFullVisitor &vis)
-{
-  vis.visit (*this);
-}
-
 void
 RangeToInclExpr::accept_vis (HIRFullVisitor &vis)
 {
@@ -5050,12 +5038,6 @@ CallExpr::accept_vis (HIRExpressionVisitor &vis)
   vis.visit (*this);
 }
 
-void
-RangeFromToInclExpr::accept_vis (HIRExpressionVisitor &vis)
-{
-  vis.visit (*this);
-}
-
 void
 IfExprConseqElse::accept_vis (HIRExpressionVisitor &vis)
 {
diff --git a/gcc/rust/typecheck/rust-hir-type-check-expr.cc b/gcc/rust/typecheck/rust-hir-type-check-expr.cc
index 62f4197668f0..41d71ccfda27 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-expr.cc
+++ b/gcc/rust/typecheck/rust-hir-type-check-expr.cc
@@ -1066,56 +1066,6 @@ TypeCheckExpr::visit (HIR::RangeFullExpr &expr)
   infered = item_type;
 }
 
-void
-TypeCheckExpr::visit (HIR::RangeFromToInclExpr &expr)
-{
-  auto lang_item_type = LangItem::Kind::RANGE_INCLUSIVE;
-
-  auto lang_item_defined = mappings.lookup_lang_item (lang_item_type);
-  // we need to have it maybe
-  if (!lang_item_defined)
-    {
-      rust_internal_error_at (expr.get_locus (),
-			      "unable to find relevant lang item: %s",
-			      LangItem::ToString (lang_item_type).c_str ());
-      return;
-    }
-  DefId respective_lang_item_id = lang_item_defined.value ();
-
-  // look it up and it _must_ be a struct definition
-  HIR::Item *item = mappings.lookup_defid (respective_lang_item_id).value ();
-
-  TyTy::BaseType *item_type = nullptr;
-  bool ok
-    = context->lookup_type (item->get_mappings ().get_hirid (), &item_type);
-  rust_assert (ok);
-  rust_assert (item_type->get_kind () == TyTy::TypeKind::ADT);
-  TyTy::ADTType *adt = static_cast<TyTy::ADTType *> (item_type);
-
-  // this is a single generic item lets assert that
-  rust_assert (adt->get_num_substitutions () == 1);
-
-  // resolve the range expressions and these types must unify then we use that
-  // type to substitute into the ADT
-  TyTy::BaseType *from_ty = TypeCheckExpr::Resolve (expr.get_from_expr ());
-  TyTy::BaseType *to_ty = TypeCheckExpr::Resolve (expr.get_to_expr ());
-  TyTy::BaseType *unified = unify_site (
-    expr.get_mappings ().get_hirid (),
-    TyTy::TyWithLocation (from_ty, expr.get_from_expr ().get_locus ()),
-    TyTy::TyWithLocation (to_ty, expr.get_to_expr ().get_locus ()),
-    expr.get_locus ());
-
-  // substitute it in
-  std::vector<TyTy::SubstitutionArg> subst_mappings;
-  const TyTy::SubstitutionParamMapping *param_ref = &adt->get_substs ().at (0);
-  subst_mappings.emplace_back (param_ref, unified);
-
-  TyTy::SubstitutionArgumentMappings subst (
-    subst_mappings, {}, adt->get_substitution_arguments ().get_regions (),
-    expr.get_locus ());
-  infered = SubstMapperInternal::Resolve (adt, subst);
-}
-
 void
 TypeCheckExpr::visit (HIR::ArrayIndexExpr &expr)
 {
diff --git a/gcc/rust/typecheck/rust-hir-type-check-expr.h b/gcc/rust/typecheck/rust-hir-type-check-expr.h
index 44e870697ce0..100dc0ccf35f 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-expr.h
+++ b/gcc/rust/typecheck/rust-hir-type-check-expr.h
@@ -74,7 +74,6 @@ public:
   void visit (HIR::RangeFromExpr &expr) override;
   void visit (HIR::RangeToExpr &expr) override;
   void visit (HIR::RangeFullExpr &expr) override;
-  void visit (HIR::RangeFromToInclExpr &expr) override;
   void visit (HIR::WhileLoopExpr &expr) override;
   void visit (HIR::ClosureExpr &expr) override;
   void visit (HIR::InlineAsm &expr) override;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.