From 6df4740e85ab28a5400bffeb3db88c96734a05a6 Mon Sep 17 00:00:00 2001 From: Jakob Degen Date: Sun, 23 Feb 2025 06:37:35 -0800 Subject: [PATCH] patterns: Fix default coercion error on `transition_dep` Summary: From previous diff Reviewed By: IanChilds Differential Revision: D69713862 fbshipit-source-id: 742a2afa171313172fc5258a12a434d54904809e --- .../src/attrs/attrs_global.rs | 30 +++++++------------ .../golden/default_not_a_label.golden.stderr | 6 ++-- 2 files changed, 14 insertions(+), 22 deletions(-) diff --git a/app/buck2_interpreter_for_build/src/attrs/attrs_global.rs b/app/buck2_interpreter_for_build/src/attrs/attrs_global.rs index 8b75cf27a3fe..2d26d7c327a8 100644 --- a/app/buck2_interpreter_for_build/src/attrs/attrs_global.rs +++ b/app/buck2_interpreter_for_build/src/attrs/attrs_global.rs @@ -217,16 +217,11 @@ fn attr_module(registry: &mut GlobalsBuilder) { let coerced_default = match default { None => None, - Some(default) => { - match coercer.coerce( - AttrIsConfigurable::Yes, - &attr_coercion_context_for_bzl(eval)?, - default, - ) { - Ok(coerced_default) => Some(coerced_default), - Err(_) => return Err(ValueError::IncorrectParameterType.into()), - } - } + Some(default) => Some(coercer.coerce( + AttrIsConfigurable::Yes, + &attr_coercion_context_for_bzl(eval)?, + default, + )?), }; Ok(StarlarkAttribute::new(Attribute::new( @@ -262,16 +257,11 @@ fn attr_module(registry: &mut GlobalsBuilder) { let coerced_default = match default { None => None, - Some(default) => { - match coercer.coerce( - AttrIsConfigurable::Yes, - &attr_coercion_context_for_bzl(eval)?, - default, - ) { - Ok(coerced_default) => Some(coerced_default), - Err(_) => return Err(ValueError::IncorrectParameterType.into()), - } - } + Some(default) => Some(coercer.coerce( + AttrIsConfigurable::Yes, + &attr_coercion_context_for_bzl(eval)?, + default, + )?), }; Ok(StarlarkAttribute::new(Attribute::new( diff --git a/tests/core/interpreter/test_attr_default_coercion_data/golden/default_not_a_label.golden.stderr b/tests/core/interpreter/test_attr_default_coercion_data/golden/default_not_a_label.golden.stderr index a00b962cbf75..e98cd9775e76 100644 --- a/tests/core/interpreter/test_attr_default_coercion_data/golden/default_not_a_label.golden.stderr +++ b/tests/core/interpreter/test_attr_default_coercion_data/golden/default_not_a_label.golden.stderr @@ -12,10 +12,12 @@ Caused by: 2: Traceback (most recent call last): * error_rule.bzl:22, in "someattr": attrs.transition_dep(default = "notaproperlabel", cfg = _transiti... - error: Type of parameters mismatch + + error: Error coercing "notaproperlabel" --> error_rule.bzl:22:21 | 22 | "someattr": attrs.transition_dep(default = "notaproperlabel", cfg = _transition), | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | - + 3: Invalid target pattern `notaproperlabel` is not allowed + 4: Expected a `:`, a trailing `/...` or the literal `...`.