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 {