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;

Reply via email to