]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: TyTy: add common SubstitutionRef API
authorJakub Dupak <dev@jakubdupak.com>
Fri, 2 Feb 2024 11:11:45 +0000 (12:11 +0100)
committerArthur Cohen <arthur.cohen@embecosm.com>
Thu, 1 Aug 2024 11:12:16 +0000 (13:12 +0200)
gcc/rust/ChangeLog:

* typecheck/rust-tyty-subst.cc (SubstitutionRef::get_arg_at):
Add unified API.

Signed-off-by: Jakub Dupak <dev@jakubdupak.com>
gcc/rust/typecheck/rust-tyty-subst.cc

index 5a753566d48a5cd390a40117e1c6c4c3625bd59b..71d41d6f79603a73ec846210b231b95efd05b7ea 100644 (file)
@@ -589,6 +589,17 @@ SubstitutionRef::get_used_arguments () const
   return used_arguments;
 }
 
+tl::optional<SubstitutionArg>
+SubstitutionRef::get_arg_at (size_t i) const
+{
+  auto param_ty = get_substs ().at (i).get_param_ty ();
+  SubstitutionArg arg = SubstitutionArg::error ();
+  get_used_arguments ().get_argument_for_symbol (param_ty, &arg);
+  if (arg.is_error ())
+    return tl::nullopt;
+  return arg;
+}
+
 const RegionConstraints &
 SubstitutionRef::get_region_constraints () const
 {