@@ -1160,7 +1160,7 @@ fn quote_trait_impls_for_archetype(obj: &Object) -> TokenStream {
1160
1160
. map ( |field| format_ident ! ( "{}" , field. name) )
1161
1161
. collect :: < Vec < _ > > ( ) ;
1162
1162
1163
- // TODO(cmc ): This goes away once all archetypes have been made eager.
1163
+ // TODO(#7245 ): This goes away once all archetypes have been made eager.
1164
1164
let all_native_component_batches = {
1165
1165
std:: iter:: once ( quote ! {
1166
1166
Some ( Self :: indicator( ) )
@@ -1249,7 +1249,7 @@ fn quote_trait_impls_for_archetype(obj: &Object) -> TokenStream {
1249
1249
}
1250
1250
} ;
1251
1251
1252
- // TODO(cmc ): This goes away once all archetypes have been made eager.
1252
+ // TODO(#7245 ): This goes away once all archetypes have been made eager.
1253
1253
let all_native_deserializers = {
1254
1254
obj. fields . iter ( ) . map ( |obj_field| {
1255
1255
let obj_field_fqname = obj_field. fqname . as_str ( ) ;
@@ -1624,21 +1624,19 @@ fn quote_builder_from_obj(reporter: &Reporter, objects: &Objects, obj: &Object)
1624
1624
// fn new()
1625
1625
let quoted_params = required. iter ( ) . map ( |field| {
1626
1626
let field_name = format_ident ! ( "{}" , field. name) ;
1627
- let ( typ, unwrapped) = quote_field_type_from_typ ( & field. typ , true ) ;
1628
- if unwrapped {
1629
- // This was originally a vec/array!
1627
+ let ( typ, is_many_component) = quote_field_type_from_typ ( & field. typ , true ) ;
1628
+ if is_many_component {
1630
1629
quote ! ( #field_name: impl IntoIterator <Item = impl Into <#typ>>)
1631
1630
} else {
1632
1631
quote ! ( #field_name: impl Into <#typ>)
1633
1632
}
1634
1633
} ) ;
1635
1634
1636
- // TODO(cmc ): This goes away once all archetypes have been made eager.
1635
+ // TODO(#7245 ): This goes away once all archetypes have been made eager.
1637
1636
let quoted_native_required = required. iter ( ) . map ( |field| {
1638
1637
let field_name = format_ident ! ( "{}" , field. name) ;
1639
- let ( _, unwrapped) = quote_field_type_from_typ ( & field. typ , true ) ;
1640
- if unwrapped {
1641
- // This was originally a vec/array!
1638
+ let ( _, is_many_component) = quote_field_type_from_typ ( & field. typ , true ) ;
1639
+ if is_many_component {
1642
1640
quote ! ( #field_name: #field_name. into_iter( ) . map( Into :: into) . collect( ) )
1643
1641
} else {
1644
1642
quote ! ( #field_name: #field_name. into( ) )
@@ -1649,9 +1647,8 @@ fn quote_builder_from_obj(reporter: &Reporter, objects: &Objects, obj: &Object)
1649
1647
let field_name = format_ident ! ( "{}" , field. name) ;
1650
1648
let descr_fn_name = format_ident ! ( "descriptor_{field_name}" ) ;
1651
1649
1652
- let ( _, unwrapped) = quote_field_type_from_typ ( & field. typ , true ) ;
1653
- if unwrapped {
1654
- // This was originally a vec/array!
1650
+ let ( _, is_many_component) = quote_field_type_from_typ ( & field. typ , true ) ;
1651
+ if is_many_component {
1655
1652
quote ! ( #field_name: try_serialize_field( Self :: #descr_fn_name( ) , #field_name) )
1656
1653
} else {
1657
1654
quote ! ( #field_name: try_serialize_field( Self :: #descr_fn_name( ) , [ #field_name] ) )
@@ -1705,16 +1702,15 @@ fn quote_builder_from_obj(reporter: &Reporter, objects: &Objects, obj: &Object)
1705
1702
}
1706
1703
} ;
1707
1704
1708
- // TODO(cmc ): This goes away once all archetypes have been made eager.
1705
+ // TODO(#7245 ): This goes away once all archetypes have been made eager.
1709
1706
let native_with_methods = optional. iter ( ) . map ( |field| {
1710
1707
// fn with_*()
1711
1708
let field_name = format_ident ! ( "{}" , field. name) ;
1712
1709
let method_name = format_ident ! ( "with_{field_name}" ) ;
1713
- let ( typ, unwrapped ) = quote_field_type_from_typ ( & field. typ , true ) ;
1710
+ let ( typ, is_many_component ) = quote_field_type_from_typ ( & field. typ , true ) ;
1714
1711
let docstring = quote_field_docs ( reporter, objects, field) ;
1715
1712
1716
- if unwrapped {
1717
- // This was originally a vec/array!
1713
+ if is_many_component {
1718
1714
quote ! {
1719
1715
#docstring
1720
1716
#[ inline]
@@ -1740,11 +1736,10 @@ fn quote_builder_from_obj(reporter: &Reporter, objects: &Objects, obj: &Object)
1740
1736
let field_name = format_ident ! ( "{}" , field. name) ;
1741
1737
let descr_fn_name = format_ident ! ( "descriptor_{field_name}" ) ;
1742
1738
let method_name = format_ident ! ( "with_{field_name}" ) ;
1743
- let ( typ, unwrapped ) = quote_field_type_from_typ ( & field. typ , true ) ;
1739
+ let ( typ, is_many_component ) = quote_field_type_from_typ ( & field. typ , true ) ;
1744
1740
let docstring = quote_field_docs ( reporter, objects, field) ;
1745
1741
1746
- if unwrapped {
1747
- // This was originally a vec/array!
1742
+ if is_many_component {
1748
1743
quote ! {
1749
1744
#docstring
1750
1745
#[ inline]
0 commit comments