Skip to content

Commit 591409c

Browse files
authored
Merge pull request #986 from ranfdev/props_errors
Improve conversion errors for setters
2 parents 864702e + cfc42a2 commit 591409c

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

glib-macros/src/properties.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -415,13 +415,19 @@ fn expand_set_property_fn(props: &[PropDesc]) -> TokenStream2 {
415415
field_ident,
416416
member,
417417
set,
418+
ty,
418419
..
419420
} = p;
420421

421422
let crate_ident = crate_ident_new();
422423
let enum_ident = name_to_enum_ident(name.value());
423424
let span = p.attrs_span;
424-
let expect = quote!(.expect("Can't convert glib::value to property type"));
425+
let expect = quote!(.unwrap_or_else(
426+
|err| panic!(
427+
"Invalid conversion from `glib::value::Value` to `{}` inside setter for property `{}`: {:?}",
428+
::std::any::type_name::<<#ty as #crate_ident::Property>::Value>(), #name, err
429+
)
430+
));
425431
set.as_ref().map(|set| {
426432
let body = match (member, set) {
427433
(_, MaybeCustomFn::Custom(expr)) => quote!(

0 commit comments

Comments
 (0)