File tree Expand file tree Collapse file tree 1 file changed +13
-7
lines changed Expand file tree Collapse file tree 1 file changed +13
-7
lines changed Original file line number Diff line number Diff line change @@ -269,16 +269,24 @@ fn derive_set_fields<'a>(public_fields: impl Iterator<Item = &'a FieldOpts> + 'a
269
269
Err ( err) => return err. write_errors ( ) ,
270
270
} ;
271
271
272
- let variant_value = quote ! ( #godot_types:: prelude:: FromGodot :: from_variant ( & value) ) ;
272
+ let variant_value = quote ! ( #godot_types:: prelude:: FromGodot :: try_from_variant ( & value) ) ;
273
273
274
274
let assignment = match opts. set {
275
- Some ( setter) => quote_spanned ! ( setter. span( ) => #setter( self , #variant_value ) ) ,
276
- None => quote ! ( self . #field_ident = #variant_value ) ,
275
+ Some ( setter) => quote_spanned ! ( setter. span( ) => #setter( self , local_value ) ) ,
276
+ None => quote ! ( self . #field_ident = local_value ) ,
277
277
} ;
278
278
279
279
quote_spanned ! {
280
280
field_ident. span( ) =>
281
- #field_name => #assignment,
281
+ #field_name => {
282
+ let local_value = match #variant_value {
283
+ Ok ( v) => v,
284
+ Err ( _) => return false ,
285
+ } ;
286
+
287
+ #assignment;
288
+ true
289
+ } ,
282
290
}
283
291
} )
284
292
. collect ( ) ;
@@ -288,10 +296,8 @@ fn derive_set_fields<'a>(public_fields: impl Iterator<Item = &'a FieldOpts> + 'a
288
296
match name. to_string( ) . as_str( ) {
289
297
#set_field_dispatch
290
298
291
- _ => return false ,
299
+ _ => false ,
292
300
}
293
-
294
- true
295
301
}
296
302
}
297
303
}
You can’t perform that action at this time.
0 commit comments