@@ -722,6 +722,7 @@ impl TomlManifest {
722
722
. unwrap ( )
723
723
. clone ( ) ;
724
724
package. workspace = None ;
725
+ let all = |_d : & TomlDependency | true ;
725
726
return Ok ( TomlManifest {
726
727
package : Some ( package) ,
727
728
project : None ,
@@ -731,19 +732,21 @@ impl TomlManifest {
731
732
example : self . example . clone ( ) ,
732
733
test : self . test . clone ( ) ,
733
734
bench : self . bench . clone ( ) ,
734
- dependencies : map_deps ( config, self . dependencies . as_ref ( ) ) ?,
735
+ dependencies : map_deps ( config, self . dependencies . as_ref ( ) , all ) ?,
735
736
dev_dependencies : map_deps (
736
737
config,
737
738
self . dev_dependencies
738
739
. as_ref ( )
739
740
. or_else ( || self . dev_dependencies2 . as_ref ( ) ) ,
741
+ TomlDependency :: is_version_specified,
740
742
) ?,
741
743
dev_dependencies2 : None ,
742
744
build_dependencies : map_deps (
743
745
config,
744
746
self . build_dependencies
745
747
. as_ref ( )
746
748
. or_else ( || self . build_dependencies2 . as_ref ( ) ) ,
749
+ all,
747
750
) ?,
748
751
build_dependencies2 : None ,
749
752
features : self . features . clone ( ) ,
@@ -754,19 +757,21 @@ impl TomlManifest {
754
757
Ok ( (
755
758
k. clone ( ) ,
756
759
TomlPlatform {
757
- dependencies : map_deps ( config, v. dependencies . as_ref ( ) ) ?,
760
+ dependencies : map_deps ( config, v. dependencies . as_ref ( ) , all ) ?,
758
761
dev_dependencies : map_deps (
759
762
config,
760
763
v. dev_dependencies
761
764
. as_ref ( )
762
765
. or_else ( || v. dev_dependencies2 . as_ref ( ) ) ,
766
+ TomlDependency :: is_version_specified,
763
767
) ?,
764
768
dev_dependencies2 : None ,
765
769
build_dependencies : map_deps (
766
770
config,
767
771
v. build_dependencies
768
772
. as_ref ( )
769
773
. or_else ( || v. build_dependencies2 . as_ref ( ) ) ,
774
+ all,
770
775
) ?,
771
776
build_dependencies2 : None ,
772
777
} ,
@@ -788,13 +793,15 @@ impl TomlManifest {
788
793
fn map_deps (
789
794
config : & Config ,
790
795
deps : Option < & BTreeMap < String , TomlDependency > > ,
796
+ filter : impl Fn ( & TomlDependency ) -> bool ,
791
797
) -> CargoResult < Option < BTreeMap < String , TomlDependency > > > {
792
798
let deps = match deps {
793
799
Some ( deps) => deps,
794
800
None => return Ok ( None ) ,
795
801
} ;
796
802
let deps = deps
797
803
. iter ( )
804
+ . filter ( |( _k, v) | filter ( v) )
798
805
. map ( |( k, v) | Ok ( ( k. clone ( ) , map_dependency ( config, v) ?) ) )
799
806
. collect :: < CargoResult < BTreeMap < _ , _ > > > ( ) ?;
800
807
Ok ( Some ( deps) )
@@ -1221,11 +1228,7 @@ impl TomlManifest {
1221
1228
spec. set_url ( CRATES_IO_INDEX . parse ( ) . unwrap ( ) ) ;
1222
1229
}
1223
1230
1224
- let version_specified = match * replacement {
1225
- TomlDependency :: Detailed ( ref d) => d. version . is_some ( ) ,
1226
- TomlDependency :: Simple ( ..) => true ,
1227
- } ;
1228
- if version_specified {
1231
+ if replacement. is_version_specified ( ) {
1229
1232
bail ! (
1230
1233
"replacements cannot specify a version \
1231
1234
requirement, but found one for `{}`",
@@ -1330,6 +1333,13 @@ impl TomlDependency {
1330
1333
TomlDependency :: Detailed ( ref details) => details. to_dependency ( name, cx, kind) ,
1331
1334
}
1332
1335
}
1336
+
1337
+ fn is_version_specified ( & self ) -> bool {
1338
+ match self {
1339
+ TomlDependency :: Detailed ( d) => d. version . is_some ( ) ,
1340
+ TomlDependency :: Simple ( ..) => true ,
1341
+ }
1342
+ }
1333
1343
}
1334
1344
1335
1345
impl DetailedTomlDependency {
0 commit comments