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;
