@@ -1477,12 +1477,18 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
1477
1477
}
1478
1478
if let Some ( t) = single_contained {
1479
1479
if let syn:: Type :: Tuple ( syn:: TypeTuple { elems, .. } ) = t {
1480
- assert ! ( elems. is_empty( ) ) ;
1481
1480
let inner_name = self . get_c_mangled_container_type ( vec ! [ single_contained. unwrap( ) ] , generics, "Option" ) . unwrap ( ) ;
1482
- return Some ( ( "if " , vec ! [
1483
- ( format!( ".is_none() {{ {}::None }} else {{ {}::Some /*" ,
1484
- inner_name, inner_name) , format!( "" ) )
1485
- ] , " */}" , ContainerPrefixLocation :: PerConv ) ) ;
1481
+ if elems. is_empty ( ) {
1482
+ return Some ( ( "if " , vec ! [
1483
+ ( format!( ".is_none() {{ {}::None }} else {{ {}::Some /* " ,
1484
+ inner_name, inner_name) , format!( "" ) )
1485
+ ] , " */ }" , ContainerPrefixLocation :: PerConv ) ) ;
1486
+ } else {
1487
+ return Some ( ( "if " , vec ! [
1488
+ ( format!( ".is_none() {{ {}::None }} else {{ {}::Some(" ,
1489
+ inner_name, inner_name) , format!( "({}.unwrap())" , var_access) )
1490
+ ] , ") }" , ContainerPrefixLocation :: PerConv ) ) ;
1491
+ }
1486
1492
}
1487
1493
if let syn:: Type :: Reference ( syn:: TypeReference { elem, .. } ) = t {
1488
1494
if let syn:: Type :: Slice ( _) = & * * elem {
0 commit comments