@@ -722,6 +722,7 @@ impl TomlManifest {
722722 . unwrap ( )
723723 . clone ( ) ;
724724 package. workspace = None ;
725+ let all = |_d : & TomlDependency | true ;
725726 return Ok ( TomlManifest {
726727 package : Some ( package) ,
727728 project : None ,
@@ -731,19 +732,21 @@ impl TomlManifest {
731732 example : self . example . clone ( ) ,
732733 test : self . test . clone ( ) ,
733734 bench : self . bench . clone ( ) ,
734- dependencies : map_deps ( config, self . dependencies . as_ref ( ) ) ?,
735+ dependencies : map_deps ( config, self . dependencies . as_ref ( ) , all ) ?,
735736 dev_dependencies : map_deps (
736737 config,
737738 self . dev_dependencies
738739 . as_ref ( )
739740 . or_else ( || self . dev_dependencies2 . as_ref ( ) ) ,
741+ TomlDependency :: is_version_specified,
740742 ) ?,
741743 dev_dependencies2 : None ,
742744 build_dependencies : map_deps (
743745 config,
744746 self . build_dependencies
745747 . as_ref ( )
746748 . or_else ( || self . build_dependencies2 . as_ref ( ) ) ,
749+ all,
747750 ) ?,
748751 build_dependencies2 : None ,
749752 features : self . features . clone ( ) ,
@@ -754,19 +757,21 @@ impl TomlManifest {
754757 Ok ( (
755758 k. clone ( ) ,
756759 TomlPlatform {
757- dependencies : map_deps ( config, v. dependencies . as_ref ( ) ) ?,
760+ dependencies : map_deps ( config, v. dependencies . as_ref ( ) , all ) ?,
758761 dev_dependencies : map_deps (
759762 config,
760763 v. dev_dependencies
761764 . as_ref ( )
762765 . or_else ( || v. dev_dependencies2 . as_ref ( ) ) ,
766+ TomlDependency :: is_version_specified,
763767 ) ?,
764768 dev_dependencies2 : None ,
765769 build_dependencies : map_deps (
766770 config,
767771 v. build_dependencies
768772 . as_ref ( )
769773 . or_else ( || v. build_dependencies2 . as_ref ( ) ) ,
774+ all,
770775 ) ?,
771776 build_dependencies2 : None ,
772777 } ,
@@ -788,13 +793,15 @@ impl TomlManifest {
788793 fn map_deps (
789794 config : & Config ,
790795 deps : Option < & BTreeMap < String , TomlDependency > > ,
796+ filter : impl Fn ( & TomlDependency ) -> bool ,
791797 ) -> CargoResult < Option < BTreeMap < String , TomlDependency > > > {
792798 let deps = match deps {
793799 Some ( deps) => deps,
794800 None => return Ok ( None ) ,
795801 } ;
796802 let deps = deps
797803 . iter ( )
804+ . filter ( |( _k, v) | filter ( v) )
798805 . map ( |( k, v) | Ok ( ( k. clone ( ) , map_dependency ( config, v) ?) ) )
799806 . collect :: < CargoResult < BTreeMap < _ , _ > > > ( ) ?;
800807 Ok ( Some ( deps) )
@@ -1221,11 +1228,7 @@ impl TomlManifest {
12211228 spec. set_url ( CRATES_IO_INDEX . parse ( ) . unwrap ( ) ) ;
12221229 }
12231230
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 ( ) {
12291232 bail ! (
12301233 "replacements cannot specify a version \
12311234 requirement, but found one for `{}`",
@@ -1330,6 +1333,13 @@ impl TomlDependency {
13301333 TomlDependency :: Detailed ( ref details) => details. to_dependency ( name, cx, kind) ,
13311334 }
13321335 }
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+ }
13331343}
13341344
13351345impl DetailedTomlDependency {
0 commit comments