https://gcc.gnu.org/g:54d8f97ee172d8a7dd434d44fdbfbd1666de8b34

commit r15-2530-g54d8f97ee172d8a7dd434d44fdbfbd1666de8b34
Author: Jakub Dupak <d...@jakubdupak.com>
Date:   Fri Feb 2 12:11:45 2024 +0100

    gccrs: TyTy: add common SubstitutionRef API
    
    gcc/rust/ChangeLog:
    
            * typecheck/rust-tyty-subst.cc (SubstitutionRef::get_arg_at):
            Add unified API.
    
    Signed-off-by: Jakub Dupak <d...@jakubdupak.com>

Diff:
---
 gcc/rust/typecheck/rust-tyty-subst.cc | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/gcc/rust/typecheck/rust-tyty-subst.cc 
b/gcc/rust/typecheck/rust-tyty-subst.cc
index 5a753566d48a..71d41d6f7960 100644
--- a/gcc/rust/typecheck/rust-tyty-subst.cc
+++ b/gcc/rust/typecheck/rust-tyty-subst.cc
@@ -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
 {

Reply via email to