@@ -1578,15 +1578,25 @@ mod tests {
1578
1578
fn ambiguity_detection ( ) {
1579
1579
use super :: { find_ambiguities, SystemContainer } ;
1580
1580
1581
- fn find_ambiguities_first_labels (
1581
+ fn find_ambiguities_first_str_labels (
1582
1582
systems : & [ impl SystemContainer ] ,
1583
1583
) -> Vec < ( BoxedSystemLabel , BoxedSystemLabel ) > {
1584
1584
find_ambiguities ( systems)
1585
1585
. drain ( ..)
1586
1586
. map ( |( index_a, index_b, _conflicts) | {
1587
1587
(
1588
- systems[ index_a] . labels ( ) [ 0 ] . clone ( ) ,
1589
- systems[ index_b] . labels ( ) [ 0 ] . clone ( ) ,
1588
+ systems[ index_a]
1589
+ . labels ( )
1590
+ . iter ( )
1591
+ . find ( |a| ( & * * * a) . type_id ( ) == std:: any:: TypeId :: of :: < & str > ( ) )
1592
+ . unwrap ( )
1593
+ . clone ( ) ,
1594
+ systems[ index_b]
1595
+ . labels ( )
1596
+ . iter ( )
1597
+ . find ( |a| ( & * * * a) . type_id ( ) == std:: any:: TypeId :: of :: < & str > ( ) )
1598
+ . unwrap ( )
1599
+ . clone ( ) ,
1590
1600
)
1591
1601
} )
1592
1602
. collect ( )
@@ -1616,7 +1626,7 @@ mod tests {
1616
1626
. with_system ( component. label ( "4" ) ) ;
1617
1627
stage. initialize_systems ( & mut world) ;
1618
1628
stage. rebuild_orders_and_dependencies ( ) ;
1619
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1629
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1620
1630
assert ! (
1621
1631
ambiguities. contains( & ( Box :: new( "1" ) , Box :: new( "4" ) ) )
1622
1632
|| ambiguities. contains( & ( Box :: new( "4" ) , Box :: new( "1" ) ) )
@@ -1631,7 +1641,7 @@ mod tests {
1631
1641
. with_system ( resource. label ( "4" ) ) ;
1632
1642
stage. initialize_systems ( & mut world) ;
1633
1643
stage. rebuild_orders_and_dependencies ( ) ;
1634
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1644
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1635
1645
assert ! (
1636
1646
ambiguities. contains( & ( Box :: new( "1" ) , Box :: new( "4" ) ) )
1637
1647
|| ambiguities. contains( & ( Box :: new( "4" ) , Box :: new( "1" ) ) )
@@ -1656,7 +1666,7 @@ mod tests {
1656
1666
. with_system ( resource. label ( "4" ) ) ;
1657
1667
stage. initialize_systems ( & mut world) ;
1658
1668
stage. rebuild_orders_and_dependencies ( ) ;
1659
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1669
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1660
1670
assert ! (
1661
1671
ambiguities. contains( & ( Box :: new( "0" ) , Box :: new( "3" ) ) )
1662
1672
|| ambiguities. contains( & ( Box :: new( "3" ) , Box :: new( "0" ) ) )
@@ -1675,7 +1685,7 @@ mod tests {
1675
1685
. with_system ( resource. label ( "4" ) . in_ambiguity_set ( "a" ) ) ;
1676
1686
stage. initialize_systems ( & mut world) ;
1677
1687
stage. rebuild_orders_and_dependencies ( ) ;
1678
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1688
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1679
1689
assert ! (
1680
1690
ambiguities. contains( & ( Box :: new( "0" ) , Box :: new( "3" ) ) )
1681
1691
|| ambiguities. contains( & ( Box :: new( "3" ) , Box :: new( "0" ) ) )
@@ -1688,7 +1698,7 @@ mod tests {
1688
1698
. with_system ( component. label ( "2" ) ) ;
1689
1699
stage. initialize_systems ( & mut world) ;
1690
1700
stage. rebuild_orders_and_dependencies ( ) ;
1691
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1701
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1692
1702
assert ! (
1693
1703
ambiguities. contains( & ( Box :: new( "0" ) , Box :: new( "1" ) ) )
1694
1704
|| ambiguities. contains( & ( Box :: new( "1" ) , Box :: new( "0" ) ) )
@@ -1701,7 +1711,7 @@ mod tests {
1701
1711
. with_system ( component. label ( "2" ) . after ( "0" ) ) ;
1702
1712
stage. initialize_systems ( & mut world) ;
1703
1713
stage. rebuild_orders_and_dependencies ( ) ;
1704
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1714
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1705
1715
assert ! (
1706
1716
ambiguities. contains( & ( Box :: new( "1" ) , Box :: new( "2" ) ) )
1707
1717
|| ambiguities. contains( & ( Box :: new( "2" ) , Box :: new( "1" ) ) )
@@ -1715,7 +1725,7 @@ mod tests {
1715
1725
. with_system ( component. label ( "3" ) . after ( "1" ) . after ( "2" ) ) ;
1716
1726
stage. initialize_systems ( & mut world) ;
1717
1727
stage. rebuild_orders_and_dependencies ( ) ;
1718
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1728
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1719
1729
assert ! (
1720
1730
ambiguities. contains( & ( Box :: new( "1" ) , Box :: new( "2" ) ) )
1721
1731
|| ambiguities. contains( & ( Box :: new( "2" ) , Box :: new( "1" ) ) )
@@ -1729,7 +1739,7 @@ mod tests {
1729
1739
. with_system ( component. label ( "3" ) . after ( "1" ) . after ( "2" ) ) ;
1730
1740
stage. initialize_systems ( & mut world) ;
1731
1741
stage. rebuild_orders_and_dependencies ( ) ;
1732
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1742
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1733
1743
assert_eq ! ( ambiguities. len( ) , 0 ) ;
1734
1744
1735
1745
let mut stage = SystemStage :: parallel ( )
@@ -1739,7 +1749,7 @@ mod tests {
1739
1749
. with_system ( component. label ( "3" ) . after ( "1" ) . after ( "2" ) ) ;
1740
1750
stage. initialize_systems ( & mut world) ;
1741
1751
stage. rebuild_orders_and_dependencies ( ) ;
1742
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1752
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1743
1753
assert ! (
1744
1754
ambiguities. contains( & ( Box :: new( "1" ) , Box :: new( "2" ) ) )
1745
1755
|| ambiguities. contains( & ( Box :: new( "2" ) , Box :: new( "1" ) ) )
@@ -1769,7 +1779,7 @@ mod tests {
1769
1779
) ;
1770
1780
stage. initialize_systems ( & mut world) ;
1771
1781
stage. rebuild_orders_and_dependencies ( ) ;
1772
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1782
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1773
1783
assert ! (
1774
1784
ambiguities. contains( & ( Box :: new( "1" ) , Box :: new( "2" ) ) )
1775
1785
|| ambiguities. contains( & ( Box :: new( "2" ) , Box :: new( "1" ) ) )
@@ -1819,7 +1829,7 @@ mod tests {
1819
1829
) ;
1820
1830
stage. initialize_systems ( & mut world) ;
1821
1831
stage. rebuild_orders_and_dependencies ( ) ;
1822
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1832
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1823
1833
assert_eq ! ( ambiguities. len( ) , 0 ) ;
1824
1834
1825
1835
let mut stage = SystemStage :: parallel ( )
@@ -1850,7 +1860,7 @@ mod tests {
1850
1860
) ;
1851
1861
stage. initialize_systems ( & mut world) ;
1852
1862
stage. rebuild_orders_and_dependencies ( ) ;
1853
- let ambiguities = find_ambiguities_first_labels ( & stage. parallel ) ;
1863
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. parallel ) ;
1854
1864
assert ! (
1855
1865
ambiguities. contains( & ( Box :: new( "1" ) , Box :: new( "4" ) ) )
1856
1866
|| ambiguities. contains( & ( Box :: new( "4" ) , Box :: new( "1" ) ) )
@@ -1884,7 +1894,7 @@ mod tests {
1884
1894
. with_system ( empty. exclusive_system ( ) . label ( "6" ) . after ( "2" ) . after ( "5" ) ) ;
1885
1895
stage. initialize_systems ( & mut world) ;
1886
1896
stage. rebuild_orders_and_dependencies ( ) ;
1887
- let ambiguities = find_ambiguities_first_labels ( & stage. exclusive_at_start ) ;
1897
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. exclusive_at_start ) ;
1888
1898
assert ! (
1889
1899
ambiguities. contains( & ( Box :: new( "1" ) , Box :: new( "3" ) ) )
1890
1900
|| ambiguities. contains( & ( Box :: new( "3" ) , Box :: new( "1" ) ) )
@@ -1921,7 +1931,7 @@ mod tests {
1921
1931
. with_system ( empty. exclusive_system ( ) . label ( "6" ) . after ( "2" ) . after ( "5" ) ) ;
1922
1932
stage. initialize_systems ( & mut world) ;
1923
1933
stage. rebuild_orders_and_dependencies ( ) ;
1924
- let ambiguities = find_ambiguities_first_labels ( & stage. exclusive_at_start ) ;
1934
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. exclusive_at_start ) ;
1925
1935
assert ! (
1926
1936
ambiguities. contains( & ( Box :: new( "2" ) , Box :: new( "3" ) ) )
1927
1937
|| ambiguities. contains( & ( Box :: new( "3" ) , Box :: new( "2" ) ) )
@@ -1947,7 +1957,7 @@ mod tests {
1947
1957
. with_system ( empty. exclusive_system ( ) . label ( "3" ) . in_ambiguity_set ( "a" ) ) ;
1948
1958
stage. initialize_systems ( & mut world) ;
1949
1959
stage. rebuild_orders_and_dependencies ( ) ;
1950
- let ambiguities = find_ambiguities_first_labels ( & stage. exclusive_at_start ) ;
1960
+ let ambiguities = find_ambiguities_first_str_labels ( & stage. exclusive_at_start ) ;
1951
1961
assert_eq ! ( ambiguities. len( ) , 0 ) ;
1952
1962
}
1953
1963
0 commit comments