@@ -523,6 +523,31 @@ fn resolve_toml(
523
523
warnings : & mut Vec < String > ,
524
524
_errors : & mut Vec < String > ,
525
525
) -> CargoResult < manifest:: TomlManifest > {
526
+ let mut resolved_toml = manifest:: TomlManifest {
527
+ cargo_features : original_toml. cargo_features . clone ( ) ,
528
+ package : None ,
529
+ project : None ,
530
+ profile : original_toml. profile . clone ( ) ,
531
+ lib : original_toml. lib . clone ( ) ,
532
+ bin : original_toml. bin . clone ( ) ,
533
+ example : original_toml. example . clone ( ) ,
534
+ test : original_toml. test . clone ( ) ,
535
+ bench : original_toml. bench . clone ( ) ,
536
+ dependencies : None ,
537
+ dev_dependencies : None ,
538
+ dev_dependencies2 : None ,
539
+ build_dependencies : None ,
540
+ build_dependencies2 : None ,
541
+ features : original_toml. features . clone ( ) ,
542
+ target : None ,
543
+ replace : original_toml. replace . clone ( ) ,
544
+ patch : original_toml. patch . clone ( ) ,
545
+ workspace : original_toml. workspace . clone ( ) ,
546
+ badges : None ,
547
+ lints : None ,
548
+ _unused_keys : Default :: default ( ) ,
549
+ } ;
550
+
526
551
let package_root = manifest_file. parent ( ) . unwrap ( ) ;
527
552
528
553
let inherit_cell: LazyCell < InheritableFields > = LazyCell :: new ( ) ;
@@ -531,13 +556,11 @@ fn resolve_toml(
531
556
. try_borrow_with ( || load_inheritable_fields ( gctx, manifest_file, & workspace_config) )
532
557
} ;
533
558
534
- let resolved_package = if let Some ( original_package) = original_toml. package ( ) {
559
+ if let Some ( original_package) = original_toml. package ( ) {
535
560
let resolved_package = resolve_package_toml ( original_package, package_root, & inherit) ?;
536
- Some ( resolved_package)
537
- } else {
538
- None
539
- } ;
540
- let resolved_dependencies = resolve_dependencies (
561
+ resolved_toml. package = Some ( resolved_package) ;
562
+ }
563
+ resolved_toml. dependencies = resolve_dependencies (
541
564
gctx,
542
565
& features,
543
566
original_toml. dependencies . as_ref ( ) ,
@@ -546,7 +569,7 @@ fn resolve_toml(
546
569
package_root,
547
570
warnings,
548
571
) ?;
549
- let resolved_dev_dependencies = resolve_dependencies (
572
+ resolved_toml . dev_dependencies = resolve_dependencies (
550
573
gctx,
551
574
& features,
552
575
original_toml. dev_dependencies ( ) ,
@@ -555,7 +578,7 @@ fn resolve_toml(
555
578
package_root,
556
579
warnings,
557
580
) ?;
558
- let resolved_build_dependencies = resolve_dependencies (
581
+ resolved_toml . build_dependencies = resolve_dependencies (
559
582
gctx,
560
583
& features,
561
584
original_toml. build_dependencies ( ) ,
@@ -604,44 +627,24 @@ fn resolve_toml(
604
627
} ,
605
628
) ;
606
629
}
607
- let resolved_target = ( !resolved_target. is_empty ( ) ) . then_some ( resolved_target) ;
630
+ resolved_toml. target = ( !resolved_target. is_empty ( ) ) . then_some ( resolved_target) ;
631
+
608
632
let resolved_lints = original_toml
609
633
. lints
610
634
. clone ( )
611
635
. map ( |value| lints_inherit_with ( value, || inherit ( ) ?. lints ( ) ) )
612
636
. transpose ( ) ?;
637
+ resolved_toml. lints = resolved_lints. map ( |lints| manifest:: InheritableLints {
638
+ workspace : false ,
639
+ lints,
640
+ } ) ;
641
+
613
642
let resolved_badges = original_toml
614
643
. badges
615
644
. clone ( )
616
645
. map ( |mw| field_inherit_with ( mw, "badges" , || inherit ( ) ?. badges ( ) ) )
617
646
. transpose ( ) ?;
618
- let resolved_toml = manifest:: TomlManifest {
619
- cargo_features : original_toml. cargo_features . clone ( ) ,
620
- package : resolved_package,
621
- project : None ,
622
- profile : original_toml. profile . clone ( ) ,
623
- lib : original_toml. lib . clone ( ) ,
624
- bin : original_toml. bin . clone ( ) ,
625
- example : original_toml. example . clone ( ) ,
626
- test : original_toml. test . clone ( ) ,
627
- bench : original_toml. bench . clone ( ) ,
628
- dependencies : resolved_dependencies,
629
- dev_dependencies : resolved_dev_dependencies,
630
- dev_dependencies2 : None ,
631
- build_dependencies : resolved_build_dependencies,
632
- build_dependencies2 : None ,
633
- features : original_toml. features . clone ( ) ,
634
- target : resolved_target,
635
- replace : original_toml. replace . clone ( ) ,
636
- patch : original_toml. patch . clone ( ) ,
637
- workspace : original_toml. workspace . clone ( ) ,
638
- badges : resolved_badges. map ( manifest:: InheritableField :: Value ) ,
639
- lints : resolved_lints. map ( |lints| manifest:: InheritableLints {
640
- workspace : false ,
641
- lints,
642
- } ) ,
643
- _unused_keys : Default :: default ( ) ,
644
- } ;
647
+ resolved_toml. badges = resolved_badges. map ( manifest:: InheritableField :: Value ) ;
645
648
646
649
Ok ( resolved_toml)
647
650
}
0 commit comments