@@ -825,6 +825,7 @@ impl TomlManifest {
825
825
. unwrap ( )
826
826
. clone ( ) ;
827
827
package. workspace = None ;
828
+ let all = |_d : & TomlDependency | true ;
828
829
return Ok ( TomlManifest {
829
830
package : Some ( package) ,
830
831
project : None ,
@@ -834,19 +835,21 @@ impl TomlManifest {
834
835
example : self . example . clone ( ) ,
835
836
test : self . test . clone ( ) ,
836
837
bench : self . bench . clone ( ) ,
837
- dependencies : map_deps ( config, self . dependencies . as_ref ( ) ) ?,
838
+ dependencies : map_deps ( config, self . dependencies . as_ref ( ) , all ) ?,
838
839
dev_dependencies : map_deps (
839
840
config,
840
841
self . dev_dependencies
841
842
. as_ref ( )
842
843
. or_else ( || self . dev_dependencies2 . as_ref ( ) ) ,
844
+ TomlDependency :: is_version_specified,
843
845
) ?,
844
846
dev_dependencies2 : None ,
845
847
build_dependencies : map_deps (
846
848
config,
847
849
self . build_dependencies
848
850
. as_ref ( )
849
851
. or_else ( || self . build_dependencies2 . as_ref ( ) ) ,
852
+ all,
850
853
) ?,
851
854
build_dependencies2 : None ,
852
855
features : self . features . clone ( ) ,
@@ -857,19 +860,21 @@ impl TomlManifest {
857
860
Ok ( (
858
861
k. clone ( ) ,
859
862
TomlPlatform {
860
- dependencies : map_deps ( config, v. dependencies . as_ref ( ) ) ?,
863
+ dependencies : map_deps ( config, v. dependencies . as_ref ( ) , all ) ?,
861
864
dev_dependencies : map_deps (
862
865
config,
863
866
v. dev_dependencies
864
867
. as_ref ( )
865
868
. or_else ( || v. dev_dependencies2 . as_ref ( ) ) ,
869
+ TomlDependency :: is_version_specified,
866
870
) ?,
867
871
dev_dependencies2 : None ,
868
872
build_dependencies : map_deps (
869
873
config,
870
874
v. build_dependencies
871
875
. as_ref ( )
872
876
. or_else ( || v. build_dependencies2 . as_ref ( ) ) ,
877
+ all,
873
878
) ?,
874
879
build_dependencies2 : None ,
875
880
} ,
@@ -891,13 +896,15 @@ impl TomlManifest {
891
896
fn map_deps (
892
897
config : & Config ,
893
898
deps : Option < & BTreeMap < String , TomlDependency > > ,
899
+ filter : impl Fn ( & TomlDependency ) -> bool ,
894
900
) -> CargoResult < Option < BTreeMap < String , TomlDependency > > > {
895
901
let deps = match deps {
896
902
Some ( deps) => deps,
897
903
None => return Ok ( None ) ,
898
904
} ;
899
905
let deps = deps
900
906
. iter ( )
907
+ . filter ( |( _k, v) | filter ( v) )
901
908
. map ( |( k, v) | Ok ( ( k. clone ( ) , map_dependency ( config, v) ?) ) )
902
909
. collect :: < CargoResult < BTreeMap < _ , _ > > > ( ) ?;
903
910
Ok ( Some ( deps) )
@@ -1324,11 +1331,7 @@ impl TomlManifest {
1324
1331
spec. set_url ( CRATES_IO_INDEX . parse ( ) . unwrap ( ) ) ;
1325
1332
}
1326
1333
1327
- let version_specified = match * replacement {
1328
- TomlDependency :: Detailed ( ref d) => d. version . is_some ( ) ,
1329
- TomlDependency :: Simple ( ..) => true ,
1330
- } ;
1331
- if version_specified {
1334
+ if replacement. is_version_specified ( ) {
1332
1335
bail ! (
1333
1336
"replacements cannot specify a version \
1334
1337
requirement, but found one for `{}`",
@@ -1433,6 +1436,13 @@ impl TomlDependency {
1433
1436
TomlDependency :: Detailed ( ref details) => details. to_dependency ( name, cx, kind) ,
1434
1437
}
1435
1438
}
1439
+
1440
+ fn is_version_specified ( & self ) -> bool {
1441
+ match self {
1442
+ TomlDependency :: Detailed ( d) => d. version . is_some ( ) ,
1443
+ TomlDependency :: Simple ( ..) => true ,
1444
+ }
1445
+ }
1436
1446
}
1437
1447
1438
1448
impl DetailedTomlDependency {
0 commit comments