@@ -532,135 +532,8 @@ fn resolve_toml(
532
532
} ;
533
533
534
534
let resolved_package = if let Some ( original_package) = original_toml. package ( ) {
535
- let resolved_package = manifest:: TomlPackage {
536
- edition : original_package
537
- . edition
538
- . clone ( )
539
- . map ( |value| field_inherit_with ( value, "edition" , || inherit ( ) ?. edition ( ) ) )
540
- . transpose ( ) ?
541
- . map ( manifest:: InheritableField :: Value ) ,
542
- rust_version : original_package
543
- . rust_version
544
- . clone ( )
545
- . map ( |value| {
546
- field_inherit_with ( value, "rust-version" , || inherit ( ) ?. rust_version ( ) )
547
- } )
548
- . transpose ( ) ?
549
- . map ( manifest:: InheritableField :: Value ) ,
550
- name : original_package. name . clone ( ) ,
551
- version : original_package
552
- . version
553
- . clone ( )
554
- . map ( |value| field_inherit_with ( value, "version" , || inherit ( ) ?. version ( ) ) )
555
- . transpose ( ) ?
556
- . map ( manifest:: InheritableField :: Value ) ,
557
- authors : original_package
558
- . authors
559
- . clone ( )
560
- . map ( |value| field_inherit_with ( value, "authors" , || inherit ( ) ?. authors ( ) ) )
561
- . transpose ( ) ?
562
- . map ( manifest:: InheritableField :: Value ) ,
563
- build : original_package. build . clone ( ) ,
564
- metabuild : original_package. metabuild . clone ( ) ,
565
- default_target : original_package. default_target . clone ( ) ,
566
- forced_target : original_package. forced_target . clone ( ) ,
567
- links : original_package. links . clone ( ) ,
568
- exclude : original_package
569
- . exclude
570
- . clone ( )
571
- . map ( |value| field_inherit_with ( value, "exclude" , || inherit ( ) ?. exclude ( ) ) )
572
- . transpose ( ) ?
573
- . map ( manifest:: InheritableField :: Value ) ,
574
- include : original_package
575
- . include
576
- . clone ( )
577
- . map ( |value| field_inherit_with ( value, "include" , || inherit ( ) ?. include ( ) ) )
578
- . transpose ( ) ?
579
- . map ( manifest:: InheritableField :: Value ) ,
580
- publish : original_package
581
- . publish
582
- . clone ( )
583
- . map ( |value| field_inherit_with ( value, "publish" , || inherit ( ) ?. publish ( ) ) )
584
- . transpose ( ) ?
585
- . map ( manifest:: InheritableField :: Value ) ,
586
- workspace : original_package. workspace . clone ( ) ,
587
- im_a_teapot : original_package. im_a_teapot . clone ( ) ,
588
- autobins : original_package. autobins . clone ( ) ,
589
- autoexamples : original_package. autoexamples . clone ( ) ,
590
- autotests : original_package. autotests . clone ( ) ,
591
- autobenches : original_package. autobenches . clone ( ) ,
592
- default_run : original_package. default_run . clone ( ) ,
593
- description : original_package
594
- . description
595
- . clone ( )
596
- . map ( |value| field_inherit_with ( value, "description" , || inherit ( ) ?. description ( ) ) )
597
- . transpose ( ) ?
598
- . map ( manifest:: InheritableField :: Value ) ,
599
- homepage : original_package
600
- . homepage
601
- . clone ( )
602
- . map ( |value| field_inherit_with ( value, "homepage" , || inherit ( ) ?. homepage ( ) ) )
603
- . transpose ( ) ?
604
- . map ( manifest:: InheritableField :: Value ) ,
605
- documentation : original_package
606
- . documentation
607
- . clone ( )
608
- . map ( |value| {
609
- field_inherit_with ( value, "documentation" , || inherit ( ) ?. documentation ( ) )
610
- } )
611
- . transpose ( ) ?
612
- . map ( manifest:: InheritableField :: Value ) ,
613
- readme : readme_for_package (
614
- package_root,
615
- original_package
616
- . readme
617
- . clone ( )
618
- . map ( |value| {
619
- field_inherit_with ( value, "readme" , || inherit ( ) ?. readme ( package_root) )
620
- } )
621
- . transpose ( ) ?
622
- . as_ref ( ) ,
623
- )
624
- . map ( |s| manifest:: InheritableField :: Value ( StringOrBool :: String ( s) ) ) ,
625
- keywords : original_package
626
- . keywords
627
- . clone ( )
628
- . map ( |value| field_inherit_with ( value, "keywords" , || inherit ( ) ?. keywords ( ) ) )
629
- . transpose ( ) ?
630
- . map ( manifest:: InheritableField :: Value ) ,
631
- categories : original_package
632
- . categories
633
- . clone ( )
634
- . map ( |value| field_inherit_with ( value, "categories" , || inherit ( ) ?. categories ( ) ) )
635
- . transpose ( ) ?
636
- . map ( manifest:: InheritableField :: Value ) ,
637
- license : original_package
638
- . license
639
- . clone ( )
640
- . map ( |value| field_inherit_with ( value, "license" , || inherit ( ) ?. license ( ) ) )
641
- . transpose ( ) ?
642
- . map ( manifest:: InheritableField :: Value ) ,
643
- license_file : original_package
644
- . license_file
645
- . clone ( )
646
- . map ( |value| {
647
- field_inherit_with ( value, "license-file" , || {
648
- inherit ( ) ?. license_file ( package_root)
649
- } )
650
- } )
651
- . transpose ( ) ?
652
- . map ( manifest:: InheritableField :: Value ) ,
653
- repository : original_package
654
- . repository
655
- . clone ( )
656
- . map ( |value| field_inherit_with ( value, "repository" , || inherit ( ) ?. repository ( ) ) )
657
- . transpose ( ) ?
658
- . map ( manifest:: InheritableField :: Value ) ,
659
- resolver : original_package. resolver . clone ( ) ,
660
- metadata : original_package. metadata . clone ( ) ,
661
- _invalid_cargo_features : Default :: default ( ) ,
662
- } ;
663
- Some ( Box :: new ( resolved_package) )
535
+ let resolved_package = resolve_package_toml ( original_package, package_root, & inherit) ?;
536
+ Some ( resolved_package)
664
537
} else {
665
538
None
666
539
} ;
@@ -773,6 +646,139 @@ fn resolve_toml(
773
646
Ok ( resolved_toml)
774
647
}
775
648
649
+ #[ tracing:: instrument( skip_all) ]
650
+ fn resolve_package_toml < ' a > (
651
+ original_package : & manifest:: TomlPackage ,
652
+ package_root : & Path ,
653
+ inherit : & dyn Fn ( ) -> CargoResult < & ' a InheritableFields > ,
654
+ ) -> CargoResult < Box < manifest:: TomlPackage > > {
655
+ let resolved_package = manifest:: TomlPackage {
656
+ edition : original_package
657
+ . edition
658
+ . clone ( )
659
+ . map ( |value| field_inherit_with ( value, "edition" , || inherit ( ) ?. edition ( ) ) )
660
+ . transpose ( ) ?
661
+ . map ( manifest:: InheritableField :: Value ) ,
662
+ rust_version : original_package
663
+ . rust_version
664
+ . clone ( )
665
+ . map ( |value| field_inherit_with ( value, "rust-version" , || inherit ( ) ?. rust_version ( ) ) )
666
+ . transpose ( ) ?
667
+ . map ( manifest:: InheritableField :: Value ) ,
668
+ name : original_package. name . clone ( ) ,
669
+ version : original_package
670
+ . version
671
+ . clone ( )
672
+ . map ( |value| field_inherit_with ( value, "version" , || inherit ( ) ?. version ( ) ) )
673
+ . transpose ( ) ?
674
+ . map ( manifest:: InheritableField :: Value ) ,
675
+ authors : original_package
676
+ . authors
677
+ . clone ( )
678
+ . map ( |value| field_inherit_with ( value, "authors" , || inherit ( ) ?. authors ( ) ) )
679
+ . transpose ( ) ?
680
+ . map ( manifest:: InheritableField :: Value ) ,
681
+ build : original_package. build . clone ( ) ,
682
+ metabuild : original_package. metabuild . clone ( ) ,
683
+ default_target : original_package. default_target . clone ( ) ,
684
+ forced_target : original_package. forced_target . clone ( ) ,
685
+ links : original_package. links . clone ( ) ,
686
+ exclude : original_package
687
+ . exclude
688
+ . clone ( )
689
+ . map ( |value| field_inherit_with ( value, "exclude" , || inherit ( ) ?. exclude ( ) ) )
690
+ . transpose ( ) ?
691
+ . map ( manifest:: InheritableField :: Value ) ,
692
+ include : original_package
693
+ . include
694
+ . clone ( )
695
+ . map ( |value| field_inherit_with ( value, "include" , || inherit ( ) ?. include ( ) ) )
696
+ . transpose ( ) ?
697
+ . map ( manifest:: InheritableField :: Value ) ,
698
+ publish : original_package
699
+ . publish
700
+ . clone ( )
701
+ . map ( |value| field_inherit_with ( value, "publish" , || inherit ( ) ?. publish ( ) ) )
702
+ . transpose ( ) ?
703
+ . map ( manifest:: InheritableField :: Value ) ,
704
+ workspace : original_package. workspace . clone ( ) ,
705
+ im_a_teapot : original_package. im_a_teapot . clone ( ) ,
706
+ autobins : original_package. autobins . clone ( ) ,
707
+ autoexamples : original_package. autoexamples . clone ( ) ,
708
+ autotests : original_package. autotests . clone ( ) ,
709
+ autobenches : original_package. autobenches . clone ( ) ,
710
+ default_run : original_package. default_run . clone ( ) ,
711
+ description : original_package
712
+ . description
713
+ . clone ( )
714
+ . map ( |value| field_inherit_with ( value, "description" , || inherit ( ) ?. description ( ) ) )
715
+ . transpose ( ) ?
716
+ . map ( manifest:: InheritableField :: Value ) ,
717
+ homepage : original_package
718
+ . homepage
719
+ . clone ( )
720
+ . map ( |value| field_inherit_with ( value, "homepage" , || inherit ( ) ?. homepage ( ) ) )
721
+ . transpose ( ) ?
722
+ . map ( manifest:: InheritableField :: Value ) ,
723
+ documentation : original_package
724
+ . documentation
725
+ . clone ( )
726
+ . map ( |value| field_inherit_with ( value, "documentation" , || inherit ( ) ?. documentation ( ) ) )
727
+ . transpose ( ) ?
728
+ . map ( manifest:: InheritableField :: Value ) ,
729
+ readme : readme_for_package (
730
+ package_root,
731
+ original_package
732
+ . readme
733
+ . clone ( )
734
+ . map ( |value| {
735
+ field_inherit_with ( value, "readme" , || inherit ( ) ?. readme ( package_root) )
736
+ } )
737
+ . transpose ( ) ?
738
+ . as_ref ( ) ,
739
+ )
740
+ . map ( |s| manifest:: InheritableField :: Value ( StringOrBool :: String ( s) ) ) ,
741
+ keywords : original_package
742
+ . keywords
743
+ . clone ( )
744
+ . map ( |value| field_inherit_with ( value, "keywords" , || inherit ( ) ?. keywords ( ) ) )
745
+ . transpose ( ) ?
746
+ . map ( manifest:: InheritableField :: Value ) ,
747
+ categories : original_package
748
+ . categories
749
+ . clone ( )
750
+ . map ( |value| field_inherit_with ( value, "categories" , || inherit ( ) ?. categories ( ) ) )
751
+ . transpose ( ) ?
752
+ . map ( manifest:: InheritableField :: Value ) ,
753
+ license : original_package
754
+ . license
755
+ . clone ( )
756
+ . map ( |value| field_inherit_with ( value, "license" , || inherit ( ) ?. license ( ) ) )
757
+ . transpose ( ) ?
758
+ . map ( manifest:: InheritableField :: Value ) ,
759
+ license_file : original_package
760
+ . license_file
761
+ . clone ( )
762
+ . map ( |value| {
763
+ field_inherit_with ( value, "license-file" , || {
764
+ inherit ( ) ?. license_file ( package_root)
765
+ } )
766
+ } )
767
+ . transpose ( ) ?
768
+ . map ( manifest:: InheritableField :: Value ) ,
769
+ repository : original_package
770
+ . repository
771
+ . clone ( )
772
+ . map ( |value| field_inherit_with ( value, "repository" , || inherit ( ) ?. repository ( ) ) )
773
+ . transpose ( ) ?
774
+ . map ( manifest:: InheritableField :: Value ) ,
775
+ resolver : original_package. resolver . clone ( ) ,
776
+ metadata : original_package. metadata . clone ( ) ,
777
+ _invalid_cargo_features : Default :: default ( ) ,
778
+ } ;
779
+ Ok ( Box :: new ( resolved_package) )
780
+ }
781
+
776
782
#[ tracing:: instrument( skip_all) ]
777
783
pub fn to_real_manifest (
778
784
contents : String ,
0 commit comments