@@ -825,6 +825,7 @@ impl TomlManifest {
825825 . unwrap ( )
826826 . clone ( ) ;
827827 package. workspace = None ;
828+ let all = |_d : & TomlDependency | true ;
828829 return Ok ( TomlManifest {
829830 package : Some ( package) ,
830831 project : None ,
@@ -834,19 +835,21 @@ impl TomlManifest {
834835 example : self . example . clone ( ) ,
835836 test : self . test . clone ( ) ,
836837 bench : self . bench . clone ( ) ,
837- dependencies : map_deps ( config, self . dependencies . as_ref ( ) ) ?,
838+ dependencies : map_deps ( config, self . dependencies . as_ref ( ) , all ) ?,
838839 dev_dependencies : map_deps (
839840 config,
840841 self . dev_dependencies
841842 . as_ref ( )
842843 . or_else ( || self . dev_dependencies2 . as_ref ( ) ) ,
844+ TomlDependency :: is_version_specified,
843845 ) ?,
844846 dev_dependencies2 : None ,
845847 build_dependencies : map_deps (
846848 config,
847849 self . build_dependencies
848850 . as_ref ( )
849851 . or_else ( || self . build_dependencies2 . as_ref ( ) ) ,
852+ all,
850853 ) ?,
851854 build_dependencies2 : None ,
852855 features : self . features . clone ( ) ,
@@ -857,19 +860,21 @@ impl TomlManifest {
857860 Ok ( (
858861 k. clone ( ) ,
859862 TomlPlatform {
860- dependencies : map_deps ( config, v. dependencies . as_ref ( ) ) ?,
863+ dependencies : map_deps ( config, v. dependencies . as_ref ( ) , all ) ?,
861864 dev_dependencies : map_deps (
862865 config,
863866 v. dev_dependencies
864867 . as_ref ( )
865868 . or_else ( || v. dev_dependencies2 . as_ref ( ) ) ,
869+ TomlDependency :: is_version_specified,
866870 ) ?,
867871 dev_dependencies2 : None ,
868872 build_dependencies : map_deps (
869873 config,
870874 v. build_dependencies
871875 . as_ref ( )
872876 . or_else ( || v. build_dependencies2 . as_ref ( ) ) ,
877+ all,
873878 ) ?,
874879 build_dependencies2 : None ,
875880 } ,
@@ -891,13 +896,15 @@ impl TomlManifest {
891896 fn map_deps (
892897 config : & Config ,
893898 deps : Option < & BTreeMap < String , TomlDependency > > ,
899+ filter : impl Fn ( & TomlDependency ) -> bool ,
894900 ) -> CargoResult < Option < BTreeMap < String , TomlDependency > > > {
895901 let deps = match deps {
896902 Some ( deps) => deps,
897903 None => return Ok ( None ) ,
898904 } ;
899905 let deps = deps
900906 . iter ( )
907+ . filter ( |( _k, v) | filter ( v) )
901908 . map ( |( k, v) | Ok ( ( k. clone ( ) , map_dependency ( config, v) ?) ) )
902909 . collect :: < CargoResult < BTreeMap < _ , _ > > > ( ) ?;
903910 Ok ( Some ( deps) )
@@ -1324,11 +1331,7 @@ impl TomlManifest {
13241331 spec. set_url ( CRATES_IO_INDEX . parse ( ) . unwrap ( ) ) ;
13251332 }
13261333
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 ( ) {
13321335 bail ! (
13331336 "replacements cannot specify a version \
13341337 requirement, but found one for `{}`",
@@ -1433,6 +1436,13 @@ impl TomlDependency {
14331436 TomlDependency :: Detailed ( ref details) => details. to_dependency ( name, cx, kind) ,
14341437 }
14351438 }
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+ }
14361446}
14371447
14381448impl DetailedTomlDependency {
0 commit comments