diff options
author | Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com> | 2024-11-20 01:28:04 +0100 |
---|---|---|
committer | P-E-P <32375388+P-E-P@users.noreply.github.com> | 2024-11-20 13:36:42 +0000 |
commit | e4b68a6cd5349ad153ac30cc2ddf668498255e2e (patch) | |
tree | 45358ac0b68172f5a698c606c4b7daa15222acde /gcc | |
parent | 690eb22f6cac7be9de759dd336b042304b27fe72 (diff) | |
download | gcc-e4b68a6cd5349ad153ac30cc2ddf668498255e2e.zip gcc-e4b68a6cd5349ad153ac30cc2ddf668498255e2e.tar.gz gcc-e4b68a6cd5349ad153ac30cc2ddf668498255e2e.tar.bz2 |
Fix FnParam pattern location ternary logic
Condition was inverted, we should retrieve the locus only if we have a
pattern.
gcc/rust/ChangeLog:
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit): Do not
get a reference if the pattern does not exist.
(TypeCheckMethodCallExpr::check): Likewise.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/typecheck/rust-tyty-call.cc | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/rust/typecheck/rust-tyty-call.cc b/gcc/rust/typecheck/rust-tyty-call.cc index da1c383..dbb0379 100644 --- a/gcc/rust/typecheck/rust-tyty-call.cc +++ b/gcc/rust/typecheck/rust-tyty-call.cc @@ -152,12 +152,11 @@ TypeCheckCallExpr::visit (FnType &type) if (i < type.num_params ()) { auto &fnparam = type.param_at (i); - auto &fn_param_pattern = fnparam.get_pattern (); BaseType *param_ty = fnparam.get_type (); location_t param_locus = fnparam.has_pattern () - ? mappings.lookup_location (param_ty->get_ref ()) - : fn_param_pattern.get_locus (); + ? fnparam.get_pattern ().get_locus () + : mappings.lookup_location (param_ty->get_ref ()); HirId coercion_side_id = argument->get_mappings ().get_hirid (); auto resolved_argument_type @@ -375,12 +374,11 @@ TypeCheckMethodCallExpr::check (FnType &type) location_t arg_locus = argument.get_locus (); auto &fnparam = type.param_at (i); - HIR::Pattern &fn_param_pattern = fnparam.get_pattern (); BaseType *param_ty = fnparam.get_type (); location_t param_locus = fnparam.has_pattern () - ? mappings.lookup_location (param_ty->get_ref ()) - : fn_param_pattern.get_locus (); + ? fnparam.get_pattern ().get_locus () + : mappings.lookup_location (param_ty->get_ref ()); auto argument_expr_tyty = argument.get_argument_type (); HirId coercion_side_id = argument.get_mappings ().get_hirid (); |