[gccrs COMMIT] gccrs: remove unused callback substitution system

gerris.rs@gmail.com gerris.rs@gmail.com
Fri Sep 11 14:30:43 GMT 2026


From: Philip Herron <herron.philip@googlemail.com>

This was old code i used to badly figure out the generics on Index and
Iterator traits

gcc/rust/ChangeLog:

	* typecheck/rust-tyty-bounds.cc (TypeBoundPredicate::TypeBoundPredicate): remove.
	(TypeBoundPredicate::operator=): Likewise.
	(TypeBoundPredicateItem::get_tyty_for_receiver): Likewise.
	* typecheck/rust-tyty-subst.cc (SubstitutionArgumentMappings::error): Likewise.
	(SubstitutionArgumentMappings::empty): Likewise.
	(SubstitutionArgumentMappings::on_param_subst): Likewise.
	(SubstitutionArgumentMappings::get_subst_cb): Likewise.
	* typecheck/rust-tyty-subst.h (std::function<void): Likewise.
	* typecheck/rust-tyty.cc (ParamType::handle_substitions): Likewise.

Signed-off-by: Philip Herron <herron.philip@googlemail.com>
---
This change was merged into the gccrs repository and is posted here for
upstream visibility and potential drive-by review, as requested by GCC
release managers.
Each commit email contains a link to its details on github from where you can
find the Pull-Request and associated discussions.


Commit on github: https://github.com/Rust-GCC/gccrs/commit/938aa8e80f9b455b9f5236f92054a04380410dc5

The commit has NOT been mentioned in any issue.

The commit has been mentioned in the following pull-request(s):
 - https://github.com/Rust-GCC/gccrs/pull/4888

 gcc/rust/typecheck/rust-tyty-bounds.cc |  5 ++-
 gcc/rust/typecheck/rust-tyty-subst.cc  | 49 ++++++++------------------
 gcc/rust/typecheck/rust-tyty-subst.h   | 10 +-----
 gcc/rust/typecheck/rust-tyty.cc        |  2 --
 4 files changed, 18 insertions(+), 48 deletions(-)

diff --git a/gcc/rust/typecheck/rust-tyty-bounds.cc b/gcc/rust/typecheck/rust-tyty-bounds.cc
index bb2c5ed14..0d762c8c0 100644
--- a/gcc/rust/typecheck/rust-tyty-bounds.cc
+++ b/gcc/rust/typecheck/rust-tyty-bounds.cc
@@ -469,7 +469,7 @@ TypeBoundPredicate::TypeBoundPredicate (const TypeBoundPredicate &other)
   used_arguments = SubstitutionArgumentMappings (
     copied_arg_mappings, other.used_arguments.get_binding_args (),
     other.used_arguments.get_regions (), other.used_arguments.get_locus (),
-    nullptr, false, false, other.used_arguments.get_constraint_args ());
+    false, false, other.used_arguments.get_constraint_args ());
 }
 
 TypeBoundPredicate &
@@ -502,7 +502,7 @@ TypeBoundPredicate::operator= (const TypeBoundPredicate &other)
   used_arguments = SubstitutionArgumentMappings (
     copied_arg_mappings, other.used_arguments.get_binding_args (),
     other.used_arguments.get_regions (), other.used_arguments.get_locus (),
-    nullptr, false, false, other.used_arguments.get_constraint_args ());
+    false, false, other.used_arguments.get_constraint_args ());
   super_traits = other.super_traits;
 
   return *this;
@@ -724,7 +724,6 @@ TypeBoundPredicateItem::get_tyty_for_receiver (const TyTy::BaseType *receiver)
   SubstitutionArgumentMappings adjusted (adjusted_mappings, {},
 					 gargs.get_regions (),
 					 gargs.get_locus (),
-					 gargs.get_subst_cb (),
 					 true /* trait-mode-flag */);
   TyTy::BaseType *res
     = Resolver::SubstMapperInternal::Resolve (trait_item_tyty, adjusted);
diff --git a/gcc/rust/typecheck/rust-tyty-subst.cc b/gcc/rust/typecheck/rust-tyty-subst.cc
index bed285eee..73e4479fe 100644
--- a/gcc/rust/typecheck/rust-tyty-subst.cc
+++ b/gcc/rust/typecheck/rust-tyty-subst.cc
@@ -224,7 +224,6 @@ SubstitutionParamMapping::fill_param_ty (
 	  bound.handle_substitions (subst_mappings);
 
       param->set_ty_ref (type.get_ref ());
-      subst_mappings.on_param_subst (p, arg);
     }
 
   return true;
@@ -335,20 +334,19 @@ SubstitutionArgumentMappings::get_mut_regions ()
 SubstitutionArgumentMappings::SubstitutionArgumentMappings (
   std::vector<SubstitutionArg> mappings,
   std::map<std::string, BaseType *> binding_args, RegionParamList regions,
-  location_t locus, ParamSubstCb param_subst_cb, bool trait_item_flag,
-  bool error_flag, std::map<std::string, BaseType *> constraint_args)
+  location_t locus, bool trait_item_flag, bool error_flag,
+  std::map<std::string, BaseType *> constraint_args)
   : mappings (std::move (mappings)), binding_args (binding_args),
     constraint_args (constraint_args), regions (regions), locus (locus),
-    param_subst_cb (param_subst_cb), trait_item_flag (trait_item_flag),
-    error_flag (error_flag)
+    trait_item_flag (trait_item_flag), error_flag (error_flag)
 {}
 
 SubstitutionArgumentMappings::SubstitutionArgumentMappings (
   const SubstitutionArgumentMappings &other)
   : mappings (other.mappings), binding_args (other.binding_args),
     constraint_args (other.constraint_args), regions (other.regions),
-    locus (other.locus), param_subst_cb (nullptr),
-    trait_item_flag (other.trait_item_flag), error_flag (other.error_flag)
+    locus (other.locus), trait_item_flag (other.trait_item_flag),
+    error_flag (other.error_flag)
 {}
 
 SubstitutionArgumentMappings &
@@ -360,7 +358,6 @@ SubstitutionArgumentMappings::operator= (
   constraint_args = other.constraint_args;
   regions = other.regions;
   locus = other.locus;
-  param_subst_cb = nullptr;
   trait_item_flag = other.trait_item_flag;
   error_flag = other.error_flag;
 
@@ -370,15 +367,14 @@ SubstitutionArgumentMappings::operator= (
 SubstitutionArgumentMappings
 SubstitutionArgumentMappings::error ()
 {
-  return SubstitutionArgumentMappings ({}, {}, 0, UNDEF_LOCATION, nullptr,
-				       false, true);
+  return SubstitutionArgumentMappings ({}, {}, 0, UNDEF_LOCATION, false, true);
 }
 
 SubstitutionArgumentMappings
 SubstitutionArgumentMappings::empty (size_t num_regions)
 {
   return SubstitutionArgumentMappings ({}, {}, num_regions, UNDEF_LOCATION,
-				       nullptr, false, false);
+				       false, false);
 }
 
 bool
@@ -496,22 +492,6 @@ SubstitutionArgumentMappings::as_string () const
   return "<" + buffer + ">";
 }
 
-void
-SubstitutionArgumentMappings::on_param_subst (const ParamType &p,
-					      const SubstitutionArg &a) const
-{
-  if (param_subst_cb == nullptr)
-    return;
-
-  param_subst_cb (p, a);
-}
-
-ParamSubstCb
-SubstitutionArgumentMappings::get_subst_cb () const
-{
-  return param_subst_cb;
-}
-
 bool
 SubstitutionArgumentMappings::trait_item_mode () const
 {
@@ -965,7 +945,6 @@ SubstitutionRef::get_mappings_from_generic_args (
 	  RegionParamList::from_subst (used_arguments.get_regions ().size (),
 				       regions),
 	  args.get_locus (),
-	  nullptr,
 	  false,
 	  false,
 	  constraint_arguments};
@@ -1056,10 +1035,12 @@ SubstitutionRef::adjust_mappings_for_this (
   if (resolved_mappings.empty ())
     return SubstitutionArgumentMappings::error ();
 
-  return SubstitutionArgumentMappings (
-    resolved_mappings, mappings.get_binding_args (), mappings.get_regions (),
-    mappings.get_locus (), mappings.get_subst_cb (),
-    mappings.trait_item_mode (), false, mappings.get_constraint_args ());
+  return SubstitutionArgumentMappings (resolved_mappings,
+				       mappings.get_binding_args (),
+				       mappings.get_regions (),
+				       mappings.get_locus (),
+				       mappings.trait_item_mode (), false,
+				       mappings.get_constraint_args ());
 }
 
 bool
@@ -1119,8 +1100,8 @@ SubstitutionRef::solve_mappings_from_receiver_for_self (
   return SubstitutionArgumentMappings (resolved_mappings,
 				       mappings.get_binding_args (),
 				       mappings.get_regions (),
-				       mappings.get_locus (), nullptr, false,
-				       false, mappings.get_constraint_args ());
+				       mappings.get_locus (), false, false,
+				       mappings.get_constraint_args ());
 }
 
 bool
diff --git a/gcc/rust/typecheck/rust-tyty-subst.h b/gcc/rust/typecheck/rust-tyty-subst.h
index 947488afb..623593b9a 100644
--- a/gcc/rust/typecheck/rust-tyty-subst.h
+++ b/gcc/rust/typecheck/rust-tyty-subst.h
@@ -170,16 +170,13 @@ private:
   BaseType *argument;
 };
 
-typedef std::function<void (const ParamType &, const SubstitutionArg &)>
-  ParamSubstCb;
 class SubstitutionArgumentMappings
 {
 public:
   SubstitutionArgumentMappings (
     std::vector<SubstitutionArg> mappings,
     std::map<std::string, BaseType *> binding_args, RegionParamList regions,
-    location_t locus, ParamSubstCb param_subst_cb = nullptr,
-    bool trait_item_flag = false, bool error_flag = false,
+    location_t locus, bool trait_item_flag = false, bool error_flag = false,
     std::map<std::string, BaseType *> constraint_args = {});
 
   SubstitutionArgumentMappings (const SubstitutionArgumentMappings &other);
@@ -240,10 +237,6 @@ public:
 
   std::string as_string () const;
 
-  void on_param_subst (const ParamType &p, const SubstitutionArg &a) const;
-
-  ParamSubstCb get_subst_cb () const;
-
   bool trait_item_mode () const;
 
 private:
@@ -252,7 +245,6 @@ private:
   std::map<std::string, BaseType *> constraint_args;
   RegionParamList regions;
   location_t locus;
-  ParamSubstCb param_subst_cb;
   bool trait_item_flag;
   bool error_flag;
 };
diff --git a/gcc/rust/typecheck/rust-tyty.cc b/gcc/rust/typecheck/rust-tyty.cc
index bb7aae7a1..bc6844595 100644
--- a/gcc/rust/typecheck/rust-tyty.cc
+++ b/gcc/rust/typecheck/rust-tyty.cc
@@ -3841,8 +3841,6 @@ ParamType::handle_substitions (SubstitutionArgumentMappings &subst_mappings)
     return this;
 
   ParamType *p = static_cast<ParamType *> (clone ());
-  subst_mappings.on_param_subst (*p, arg);
-
   const BaseType *resolved = arg.get_tyty ();
   if (resolved->get_kind () == TyTy::TypeKind::PARAM)
     {

base-commit: 22a4c9474a1ac929c8b07b38ede5ddb7336e1ae9
-- 
2.55.0



More information about the Gcc-rust mailing list