aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2024-11-20 01:28:04 +0100
committerP-E-P <32375388+P-E-P@users.noreply.github.com>2024-11-20 13:36:42 +0000
commite4b68a6cd5349ad153ac30cc2ddf668498255e2e (patch)
tree45358ac0b68172f5a698c606c4b7daa15222acde
parent690eb22f6cac7be9de759dd336b042304b27fe72 (diff)
downloadgcc-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>
-rw-r--r--gcc/rust/typecheck/rust-tyty-call.cc10
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 ();