File tree 2 files changed +9
-4
lines changed
2 files changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -31,8 +31,9 @@ pub(crate) fn get_variant_constructors(
31
31
32
32
let fields = match & variant. fields {
33
33
EnumVariantFields :: Unit => & [ ] ,
34
- EnumVariantFields :: Named ( fields) => fields. as_slice ( ) ,
35
- EnumVariantFields :: Unnamed ( fields) => fields. as_slice ( ) ,
34
+ EnumVariantFields :: Named ( fields) | EnumVariantFields :: Unnamed ( fields) => {
35
+ fields. as_slice ( )
36
+ }
36
37
} ;
37
38
let mut reflect_index: usize = 0 ;
38
39
let constructor_fields = fields. iter ( ) . enumerate ( ) . map ( |( declar_index, field) | {
Original file line number Diff line number Diff line change @@ -287,12 +287,16 @@ impl Reflect for DynamicEnum {
287
287
VariantType :: Struct => {
288
288
for field in value. iter_fields ( ) {
289
289
let name = field. name ( ) . unwrap ( ) ;
290
- Enum :: field_mut ( self , name) . map ( |v| v. apply ( field. value ( ) ) ) ;
290
+ if let Some ( v) = Enum :: field_mut ( self , name) {
291
+ v. apply ( field. value ( ) ) ;
292
+ }
291
293
}
292
294
}
293
295
VariantType :: Tuple => {
294
296
for ( index, field) in value. iter_fields ( ) . enumerate ( ) {
295
- Enum :: field_at_mut ( self , index) . map ( |v| v. apply ( field. value ( ) ) ) ;
297
+ if let Some ( v) = Enum :: field_at_mut ( self , index) {
298
+ v. apply ( field. value ( ) ) ;
299
+ }
296
300
}
297
301
}
298
302
_ => { }
You can’t perform that action at this time.
0 commit comments