aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Dupak <dev@jakubdupak.com>2024-02-02 12:11:45 +0100
committerArthur Cohen <arthur.cohen@embecosm.com>2024-08-01 13:12:16 +0200
commit54d8f97ee172d8a7dd434d44fdbfbd1666de8b34 (patch)
tree9a74fe4fd3ea107cd574c140889667a7c865eb68 /gcc
parent302ad5de0792978683f3599e13fdf0a75dacc051 (diff)
downloadgcc-54d8f97ee172d8a7dd434d44fdbfbd1666de8b34.zip
gcc-54d8f97ee172d8a7dd434d44fdbfbd1666de8b34.tar.gz
gcc-54d8f97ee172d8a7dd434d44fdbfbd1666de8b34.tar.bz2
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 <dev@jakubdupak.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/typecheck/rust-tyty-subst.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/rust/typecheck/rust-tyty-subst.cc b/gcc/rust/typecheck/rust-tyty-subst.cc
index 5a75356..71d41d6 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
{