From: Pierre-Emmanuel Patry Date: Wed, 20 Nov 2024 00:28:04 +0000 (+0100) Subject: gccrs: Fix FnParam pattern location ternary logic X-Git-Tag: basepoints/gcc-16~1020 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b3246d3ff22035cff465e75ebe42ff2be4ce46d2;p=thirdparty%2Fgcc.git gccrs: 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 --- diff --git a/gcc/rust/typecheck/rust-tyty-call.cc b/gcc/rust/typecheck/rust-tyty-call.cc index 725b8414671..5fea34de40a 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 ();