@@ -1017,19 +1017,16 @@ pub enum MaybeWorkspace<T> {
1017
1017
impl < T > MaybeWorkspace < T > {
1018
1018
fn resolve < ' a > (
1019
1019
self ,
1020
- cargo_features : & Features ,
1021
1020
label : & str ,
1022
1021
get_ws_field : impl FnOnce ( ) -> CargoResult < T > ,
1023
1022
) -> CargoResult < T > {
1024
1023
match self {
1025
1024
MaybeWorkspace :: Defined ( value) => Ok ( value) ,
1026
- MaybeWorkspace :: Workspace ( TomlWorkspaceField { workspace : true } ) => {
1027
- cargo_features. require ( Feature :: workspace_inheritance ( ) ) ?;
1028
- get_ws_field ( ) . context ( format ! (
1025
+ MaybeWorkspace :: Workspace ( TomlWorkspaceField { workspace : true } ) => get_ws_field ( )
1026
+ . context ( format ! (
1029
1027
"error inheriting `{}` from workspace root manifest's `workspace.package.{}`" ,
1030
1028
label, label
1031
- ) )
1032
- }
1029
+ ) ) ,
1033
1030
MaybeWorkspace :: Workspace ( TomlWorkspaceField { workspace : false } ) => Err ( anyhow ! (
1034
1031
"`workspace=false` is unsupported for `package.{}`" ,
1035
1032
label,
@@ -1592,15 +1589,15 @@ impl TomlManifest {
1592
1589
let version = project
1593
1590
. version
1594
1591
. clone ( )
1595
- . resolve ( & features , "version" , || inherit ( ) ?. version ( ) ) ?;
1592
+ . resolve ( "version" , || inherit ( ) ?. version ( ) ) ?;
1596
1593
1597
1594
project. version = MaybeWorkspace :: Defined ( version. clone ( ) ) ;
1598
1595
1599
1596
let pkgid = project. to_package_id ( source_id, version) ?;
1600
1597
1601
1598
let edition = if let Some ( edition) = project. edition . clone ( ) {
1602
1599
let edition: Edition = edition
1603
- . resolve ( & features , "edition" , || inherit ( ) ?. edition ( ) ) ?
1600
+ . resolve ( "edition" , || inherit ( ) ?. edition ( ) ) ?
1604
1601
. parse ( )
1605
1602
. with_context ( || "failed to parse the `edition` key" ) ?;
1606
1603
project. edition = Some ( MaybeWorkspace :: Defined ( edition. to_string ( ) ) ) ;
@@ -1625,7 +1622,7 @@ impl TomlManifest {
1625
1622
let rust_version = if let Some ( rust_version) = & project. rust_version {
1626
1623
let rust_version = rust_version
1627
1624
. clone ( )
1628
- . resolve ( & features , "rust_version" , || inherit ( ) ?. rust_version ( ) ) ?;
1625
+ . resolve ( "rust_version" , || inherit ( ) ?. rust_version ( ) ) ?;
1629
1626
let req = match semver:: VersionReq :: parse ( & rust_version) {
1630
1627
// Exclude semver operators like `^` and pre-release identifiers
1631
1628
Ok ( req) if rust_version. chars ( ) . all ( |c| c. is_ascii_digit ( ) || c == '.' ) => req,
@@ -1716,7 +1713,6 @@ impl TomlManifest {
1716
1713
} ;
1717
1714
1718
1715
fn process_dependencies (
1719
- features : & Features ,
1720
1716
cx : & mut Context < ' _ , ' _ > ,
1721
1717
new_deps : Option < & BTreeMap < String , TomlDependency > > ,
1722
1718
kind : Option < DepKind > ,
@@ -1736,7 +1732,7 @@ impl TomlManifest {
1736
1732
1737
1733
let mut deps: BTreeMap < String , TomlDependency > = BTreeMap :: new ( ) ;
1738
1734
for ( n, v) in dependencies. iter ( ) {
1739
- let resolved = v. clone ( ) . resolve ( features , n, cx, || inherit ( ) ) ?;
1735
+ let resolved = v. clone ( ) . resolve ( n, cx, || inherit ( ) ) ?;
1740
1736
let dep = resolved. to_dependency ( n, cx, kind) ?;
1741
1737
validate_package_name ( dep. name_in_toml ( ) . as_str ( ) , "dependency name" , "" ) ?;
1742
1738
cx. deps . push ( dep) ;
@@ -1747,7 +1743,6 @@ impl TomlManifest {
1747
1743
1748
1744
// Collect the dependencies.
1749
1745
let dependencies = process_dependencies (
1750
- & features,
1751
1746
& mut cx,
1752
1747
me. dependencies . as_ref ( ) ,
1753
1748
None ,
@@ -1762,7 +1757,6 @@ impl TomlManifest {
1762
1757
. as_ref ( )
1763
1758
. or_else ( || me. dev_dependencies2 . as_ref ( ) ) ;
1764
1759
let dev_deps = process_dependencies (
1765
- & features,
1766
1760
& mut cx,
1767
1761
dev_deps,
1768
1762
Some ( DepKind :: Development ) ,
@@ -1777,7 +1771,6 @@ impl TomlManifest {
1777
1771
. as_ref ( )
1778
1772
. or_else ( || me. build_dependencies2 . as_ref ( ) ) ;
1779
1773
let build_deps = process_dependencies (
1780
- & features,
1781
1774
& mut cx,
1782
1775
build_deps,
1783
1776
Some ( DepKind :: Build ) ,
@@ -1793,7 +1786,6 @@ impl TomlManifest {
1793
1786
Some ( platform)
1794
1787
} ;
1795
1788
let deps = process_dependencies (
1796
- & features,
1797
1789
& mut cx,
1798
1790
platform. dependencies . as_ref ( ) ,
1799
1791
None ,
@@ -1809,7 +1801,6 @@ impl TomlManifest {
1809
1801
. as_ref ( )
1810
1802
. or_else ( || platform. build_dependencies2 . as_ref ( ) ) ;
1811
1803
let build_deps = process_dependencies (
1812
- & features,
1813
1804
& mut cx,
1814
1805
build_deps,
1815
1806
Some ( DepKind :: Build ) ,
@@ -1825,7 +1816,6 @@ impl TomlManifest {
1825
1816
. as_ref ( )
1826
1817
. or_else ( || platform. dev_dependencies2 . as_ref ( ) ) ;
1827
1818
let dev_deps = process_dependencies (
1828
- & features,
1829
1819
& mut cx,
1830
1820
dev_deps,
1831
1821
Some ( DepKind :: Development ) ,
@@ -1872,13 +1862,13 @@ impl TomlManifest {
1872
1862
let exclude = project
1873
1863
. exclude
1874
1864
. clone ( )
1875
- . map ( |mw| mw. resolve ( & features , "exclude" , || inherit ( ) ?. exclude ( ) ) )
1865
+ . map ( |mw| mw. resolve ( "exclude" , || inherit ( ) ?. exclude ( ) ) )
1876
1866
. transpose ( ) ?
1877
1867
. unwrap_or_default ( ) ;
1878
1868
let include = project
1879
1869
. include
1880
1870
. clone ( )
1881
- . map ( |mw| mw. resolve ( & features , "include" , || inherit ( ) ?. include ( ) ) )
1871
+ . map ( |mw| mw. resolve ( "include" , || inherit ( ) ?. include ( ) ) )
1882
1872
. transpose ( ) ?
1883
1873
. unwrap_or_default ( ) ;
1884
1874
let empty_features = BTreeMap :: new ( ) ;
@@ -1895,67 +1885,63 @@ impl TomlManifest {
1895
1885
description : project
1896
1886
. description
1897
1887
. clone ( )
1898
- . map ( |mw| mw. resolve ( & features , "description" , || inherit ( ) ?. description ( ) ) )
1888
+ . map ( |mw| mw. resolve ( "description" , || inherit ( ) ?. description ( ) ) )
1899
1889
. transpose ( ) ?,
1900
1890
homepage : project
1901
1891
. homepage
1902
1892
. clone ( )
1903
- . map ( |mw| mw. resolve ( & features , "homepage" , || inherit ( ) ?. homepage ( ) ) )
1893
+ . map ( |mw| mw. resolve ( "homepage" , || inherit ( ) ?. homepage ( ) ) )
1904
1894
. transpose ( ) ?,
1905
1895
documentation : project
1906
1896
. documentation
1907
1897
. clone ( )
1908
- . map ( |mw| mw. resolve ( & features , "documentation" , || inherit ( ) ?. documentation ( ) ) )
1898
+ . map ( |mw| mw. resolve ( "documentation" , || inherit ( ) ?. documentation ( ) ) )
1909
1899
. transpose ( ) ?,
1910
1900
readme : readme_for_project (
1911
1901
package_root,
1912
1902
project
1913
1903
. readme
1914
1904
. clone ( )
1915
- . map ( |mw| mw. resolve ( & features , "readme" , || inherit ( ) ?. readme ( package_root) ) )
1905
+ . map ( |mw| mw. resolve ( "readme" , || inherit ( ) ?. readme ( package_root) ) )
1916
1906
. transpose ( ) ?,
1917
1907
) ,
1918
1908
authors : project
1919
1909
. authors
1920
1910
. clone ( )
1921
- . map ( |mw| mw. resolve ( & features , "authors" , || inherit ( ) ?. authors ( ) ) )
1911
+ . map ( |mw| mw. resolve ( "authors" , || inherit ( ) ?. authors ( ) ) )
1922
1912
. transpose ( ) ?
1923
1913
. unwrap_or_default ( ) ,
1924
1914
license : project
1925
1915
. license
1926
1916
. clone ( )
1927
- . map ( |mw| mw. resolve ( & features , "license" , || inherit ( ) ?. license ( ) ) )
1917
+ . map ( |mw| mw. resolve ( "license" , || inherit ( ) ?. license ( ) ) )
1928
1918
. transpose ( ) ?,
1929
1919
license_file : project
1930
1920
. license_file
1931
1921
. clone ( )
1932
- . map ( |mw| {
1933
- mw. resolve ( & features, "license" , || {
1934
- inherit ( ) ?. license_file ( package_root)
1935
- } )
1936
- } )
1922
+ . map ( |mw| mw. resolve ( "license" , || inherit ( ) ?. license_file ( package_root) ) )
1937
1923
. transpose ( ) ?,
1938
1924
repository : project
1939
1925
. repository
1940
1926
. clone ( )
1941
- . map ( |mw| mw. resolve ( & features , "repository" , || inherit ( ) ?. repository ( ) ) )
1927
+ . map ( |mw| mw. resolve ( "repository" , || inherit ( ) ?. repository ( ) ) )
1942
1928
. transpose ( ) ?,
1943
1929
keywords : project
1944
1930
. keywords
1945
1931
. clone ( )
1946
- . map ( |mw| mw. resolve ( & features , "keywords" , || inherit ( ) ?. keywords ( ) ) )
1932
+ . map ( |mw| mw. resolve ( "keywords" , || inherit ( ) ?. keywords ( ) ) )
1947
1933
. transpose ( ) ?
1948
1934
. unwrap_or_default ( ) ,
1949
1935
categories : project
1950
1936
. categories
1951
1937
. clone ( )
1952
- . map ( |mw| mw. resolve ( & features , "categories" , || inherit ( ) ?. categories ( ) ) )
1938
+ . map ( |mw| mw. resolve ( "categories" , || inherit ( ) ?. categories ( ) ) )
1953
1939
. transpose ( ) ?
1954
1940
. unwrap_or_default ( ) ,
1955
1941
badges : me
1956
1942
. badges
1957
1943
. clone ( )
1958
- . map ( |mw| mw. resolve ( & features , "badges" , || inherit ( ) ?. badges ( ) ) )
1944
+ . map ( |mw| mw. resolve ( "badges" , || inherit ( ) ?. badges ( ) ) )
1959
1945
. transpose ( ) ?
1960
1946
. unwrap_or_default ( ) ,
1961
1947
links : project. links . clone ( ) ,
@@ -2015,11 +2001,10 @@ impl TomlManifest {
2015
2001
profiles. validate ( & features, & mut warnings) ?;
2016
2002
}
2017
2003
2018
- let publish = project. publish . clone ( ) . map ( |publish| {
2019
- publish
2020
- . resolve ( & features, "publish" , || inherit ( ) ?. publish ( ) )
2021
- . unwrap ( )
2022
- } ) ;
2004
+ let publish = project
2005
+ . publish
2006
+ . clone ( )
2007
+ . map ( |publish| publish. resolve ( "publish" , || inherit ( ) ?. publish ( ) ) . unwrap ( ) ) ;
2023
2008
2024
2009
project. publish = publish. clone ( ) . map ( |p| MaybeWorkspace :: Defined ( p) ) ;
2025
2010
@@ -2479,7 +2464,6 @@ impl<P: ResolveToPath + Clone> TomlDependency<P> {
2479
2464
impl TomlDependency {
2480
2465
fn resolve < ' a > (
2481
2466
self ,
2482
- cargo_features : & Features ,
2483
2467
label : & str ,
2484
2468
cx : & mut Context < ' _ , ' _ > ,
2485
2469
get_inheritable : impl FnOnce ( ) -> CargoResult < & ' a InheritableFields > ,
@@ -2492,7 +2476,6 @@ impl TomlDependency {
2492
2476
features,
2493
2477
optional,
2494
2478
} ) => {
2495
- cargo_features. require ( Feature :: workspace_inheritance ( ) ) ?;
2496
2479
let inheritable = get_inheritable ( ) ?;
2497
2480
inheritable. get_dependency ( label) . context ( format ! (
2498
2481
"error reading `dependencies.{}` from workspace root manifest's `workspace.dependencies.{}`" ,
0 commit comments