@@ -983,57 +983,47 @@ fn inner_dependency_inherit_with<'a>(
983
983
) )
984
984
}
985
985
inherit ( ) ?. get_dependency ( name, package_root) . map ( |ws_dep| {
986
- match ws_dep {
987
- manifest:: TomlDependency :: Simple ( ws_version) => {
988
- if let Some ( false ) = pkg_dep. default_features ( ) {
989
- default_features_msg ( name, None , warnings) ;
990
- }
991
- manifest:: TomlDependency :: Detailed ( manifest:: TomlDetailedDependency {
992
- version : Some ( ws_version) ,
993
- optional : pkg_dep. optional ,
994
- features : pkg_dep. features . clone ( ) ,
995
- public : pkg_dep. public ,
996
- ..Default :: default ( )
997
- } )
986
+ let mut merged_dep = match ws_dep {
987
+ manifest:: TomlDependency :: Simple ( ws_version) => manifest:: TomlDetailedDependency {
988
+ version : Some ( ws_version) ,
989
+ ..Default :: default ( )
990
+ } ,
991
+ manifest:: TomlDependency :: Detailed ( ws_dep) => ws_dep. clone ( ) ,
992
+ } ;
993
+ match ( pkg_dep. default_features ( ) , merged_dep. default_features ( ) ) {
994
+ // member: default-features = true and
995
+ // workspace: default-features = false should turn on
996
+ // default-features
997
+ ( Some ( true ) , Some ( false ) ) => {
998
+ merged_dep. default_features = Some ( true ) ;
998
999
}
999
- manifest:: TomlDependency :: Detailed ( ws_dep) => {
1000
- let mut merged_dep = ws_dep. clone ( ) ;
1001
- match ( pkg_dep. default_features ( ) , merged_dep. default_features ( ) ) {
1002
- // member: default-features = true and
1003
- // workspace: default-features = false should turn on
1004
- // default-features
1005
- ( Some ( true ) , Some ( false ) ) => {
1006
- merged_dep. default_features = Some ( true ) ;
1007
- }
1008
- // member: default-features = false and
1009
- // workspace: default-features = true should ignore member
1010
- // default-features
1011
- ( Some ( false ) , Some ( true ) ) => {
1012
- default_features_msg ( name, Some ( true ) , warnings) ;
1013
- }
1014
- // member: default-features = false and
1015
- // workspace: dep = "1.0" should ignore member default-features
1016
- ( Some ( false ) , None ) => {
1017
- default_features_msg ( name, None , warnings) ;
1018
- }
1019
- _ => { }
1020
- }
1021
- merged_dep. features = match ( merged_dep. features . clone ( ) , pkg_dep. features . clone ( ) )
1022
- {
1023
- ( Some ( dep_feat) , Some ( inherit_feat) ) => Some (
1024
- dep_feat
1025
- . into_iter ( )
1026
- . chain ( inherit_feat)
1027
- . collect :: < Vec < String > > ( ) ,
1028
- ) ,
1029
- ( Some ( dep_fet) , None ) => Some ( dep_fet) ,
1030
- ( None , Some ( inherit_feat) ) => Some ( inherit_feat) ,
1031
- ( None , None ) => None ,
1032
- } ;
1033
- merged_dep. optional = pkg_dep. optional ;
1034
- manifest:: TomlDependency :: Detailed ( merged_dep)
1000
+ // member: default-features = false and
1001
+ // workspace: default-features = true should ignore member
1002
+ // default-features
1003
+ ( Some ( false ) , Some ( true ) ) => {
1004
+ default_features_msg ( name, Some ( true ) , warnings) ;
1035
1005
}
1006
+ // member: default-features = false and
1007
+ // workspace: dep = "1.0" should ignore member default-features
1008
+ ( Some ( false ) , None ) => {
1009
+ default_features_msg ( name, None , warnings) ;
1010
+ }
1011
+ _ => { }
1036
1012
}
1013
+ merged_dep. features = match ( merged_dep. features . clone ( ) , pkg_dep. features . clone ( ) ) {
1014
+ ( Some ( dep_feat) , Some ( inherit_feat) ) => Some (
1015
+ dep_feat
1016
+ . into_iter ( )
1017
+ . chain ( inherit_feat)
1018
+ . collect :: < Vec < String > > ( ) ,
1019
+ ) ,
1020
+ ( Some ( dep_fet) , None ) => Some ( dep_fet) ,
1021
+ ( None , Some ( inherit_feat) ) => Some ( inherit_feat) ,
1022
+ ( None , None ) => None ,
1023
+ } ;
1024
+ merged_dep. optional = pkg_dep. optional ;
1025
+ merged_dep. public = pkg_dep. public ;
1026
+ manifest:: TomlDependency :: Detailed ( merged_dep)
1037
1027
} )
1038
1028
}
1039
1029
0 commit comments