@@ -2672,147 +2672,138 @@ fn same_target_transitive_dependency_decouple_from_hostdep_lib() {
2672
2672
}
2673
2673
2674
2674
#[ cargo_test]
2675
- fn issue_10525 ( ) {
2675
+ fn same_target_transitive_dependency_decouple_from_hostdep_10525 ( ) {
2676
+ // See https://github.com/rust-lang/cargo/issues/10525
2676
2677
let target = rustc_host ( ) ;
2677
2678
let p = project ( )
2678
2679
. file (
2679
2680
"Cargo.toml" ,
2680
2681
& format ! (
2681
2682
r#"
2682
2683
[package]
2683
- name = "mycrate "
2684
+ name = "foo "
2684
2685
version = "0.0.0"
2685
2686
edition = "2021"
2686
2687
2687
2688
[dependencies]
2688
- structopt-derive = {{ path = "structopt-derive " }}
2689
- mybindep = {{ path = "mybindep ", artifact = "bin", target = "{target}" }}
2689
+ e = {{ path = "e " }}
2690
+ bar = {{ path = "bar ", artifact = "bin", target = "{target}" }}
2690
2691
"#
2691
2692
) ,
2692
2693
)
2693
2694
. file (
2694
2695
"src/main.rs" ,
2695
2696
r#"
2696
- fn main() {
2697
- env!("CARGO_BIN_FILE_MYBINDEP");
2698
- }
2697
+ fn main() {}
2699
2698
"# ,
2700
2699
)
2701
2700
. file (
2702
- "mybindep /Cargo.toml" ,
2701
+ "bar /Cargo.toml" ,
2703
2702
r#"
2704
2703
[package]
2705
- name = "mybindep "
2704
+ name = "bar "
2706
2705
version = "0.0.0"
2707
- edition = "2021"
2708
2706
2709
2707
[dependencies]
2710
- clap_derive = { path = "../clap_derive " }
2708
+ b = { path = "../b " }
2711
2709
"# ,
2712
2710
)
2713
- . file ( "mybindep /src/main.rs" , "fn main() {}" )
2711
+ . file ( "bar /src/main.rs" , "fn main() {}" )
2714
2712
. file (
2715
- "clap_derive /Cargo.toml" ,
2713
+ "b /Cargo.toml" ,
2716
2714
r#"
2717
2715
[package]
2718
- name = "clap_derive "
2716
+ name = "b "
2719
2717
version = "0.0.0"
2720
- edition = "2021"
2721
2718
2722
2719
[dependencies]
2723
- proc-macro-error = { path = "../proc-macro-error" }
2724
-
2725
- [lib]
2726
- proc-macro = true
2720
+ c = { path = "../c" }
2727
2721
"# ,
2728
2722
)
2729
- . file ( "clap_derive /src/lib.rs" , "" )
2723
+ . file ( "b /src/lib.rs" , "" )
2730
2724
. file (
2731
- "structopt-derive/Cargo.toml" ,
2725
+ // NOTE: Calling this package `a` does not trigger
2726
+ // https://github.com/rust-lang/cargo/issues/10525
2727
+ "e/Cargo.toml" ,
2732
2728
r#"
2733
2729
[package]
2734
- name = "structopt-derive "
2730
+ name = "e "
2735
2731
version = "0.0.0"
2736
2732
edition = "2021"
2737
2733
2738
2734
[dependencies]
2739
- syn = { path = "../syn", features = ["parsing"] }
2740
- proc-macro-error = { path = "../proc-macro-error" }
2741
-
2742
- [lib]
2743
- proc-macro = true
2735
+ c = { path = "../c" }
2736
+ d = { path = "../d", features = ["feature"] }
2744
2737
"# ,
2745
2738
)
2746
2739
. file (
2747
- "structopt-derive /src/lib.rs" ,
2740
+ "e /src/lib.rs" ,
2748
2741
r#"
2749
- use proc_macro_error::ResultExt ;
2742
+ use c::Trait ;
2750
2743
2751
- fn _parse_structopt_attributes () {
2752
- Ok::<(), syn::Error>(()).unwrap_or_abort()
2744
+ pub fn b () {
2745
+ d::D.c();
2753
2746
}
2754
2747
"# ,
2755
2748
)
2756
2749
. file (
2757
- "proc-macro-error /Cargo.toml" ,
2750
+ "c /Cargo.toml" ,
2758
2751
r#"
2759
2752
[package]
2760
- name = "proc-macro-error "
2753
+ name = "c "
2761
2754
version = "0.0.0"
2762
- edition = "2021"
2763
2755
2764
2756
[dependencies]
2765
- syn = { path = "../syn " }
2757
+ d = { path = "../d " }
2766
2758
"# ,
2767
2759
)
2768
2760
. file (
2769
- "proc-macro-error /src/lib.rs" ,
2761
+ "c /src/lib.rs" ,
2770
2762
r#"
2771
- pub trait ResultExt <T> {
2772
- fn unwrap_or_abort (self) -> T;
2763
+ pub trait Trait <T> {
2764
+ fn c (self) -> T;
2773
2765
}
2774
2766
2775
- impl<T, E : Into<Diagnostic >> ResultExt <T> for Result<T, E> {
2776
- fn unwrap_or_abort (self) -> T {
2777
- panic!()
2767
+ impl<T: Into<C >> Trait <T> for T {
2768
+ fn c (self) -> T {
2769
+ self
2778
2770
}
2779
2771
}
2780
2772
2781
- pub struct Diagnostic ;
2773
+ pub struct C ;
2782
2774
2783
- impl From<syn::Error > for Diagnostic {
2784
- fn from(_: syn::Error ) -> Self {
2785
- panic!()
2775
+ impl From<d::D > for C {
2776
+ fn from(_: d::D ) -> Self {
2777
+ Self
2786
2778
}
2787
2779
}
2788
2780
"# ,
2789
2781
)
2790
2782
. file (
2791
- "syn /Cargo.toml" ,
2783
+ "d /Cargo.toml" ,
2792
2784
r#"
2793
2785
[package]
2794
- name = "syn "
2786
+ name = "d "
2795
2787
version = "0.0.0"
2796
- edition = "2021"
2797
2788
2798
2789
[features]
2799
- parsing = []
2790
+ feature = []
2800
2791
"# ,
2801
2792
)
2802
- . file ( "syn /src/lib.rs" , "pub struct Error ;" )
2793
+ . file ( "d /src/lib.rs" , "pub struct D ;" )
2803
2794
. build ( ) ;
2804
2795
2805
2796
p. cargo ( "build -Z bindeps" )
2806
2797
. masquerade_as_nightly_cargo ( & [ "bindeps" ] )
2807
- . with_stderr_unordered (
2798
+ . with_stderr (
2808
2799
"\
2809
- [COMPILING] mycrate v0.0.0 ([CWD])
2810
- [COMPILING] mybindep v0.0.0 ([CWD]/mybindep )
2811
- [COMPILING] clap_derive v0.0.0 ([CWD]/clap_derive )
2812
- [COMPILING] structopt-derive v0.0.0 ([CWD]/structopt-derive )
2813
- [COMPILING] proc-macro-error v0.0.0 ([CWD]/proc-macro-error )
2814
- [COMPILING] syn v0.0.0 ([CWD]/syn )
2815
- [FINISHED] dev [..]
2800
+ [COMPILING] d v0.0.0 ([CWD]/d )
2801
+ [COMPILING] c v0.0.0 ([CWD]/c )
2802
+ [COMPILING] b v0.0.0 ([CWD]/b )
2803
+ [COMPILING] e v0.0.0 ([CWD]/e )
2804
+ [COMPILING] bar v0.0.0 ([CWD]/bar )
2805
+ [COMPILING] foo v0.0.0 ([CWD])
2806
+ [FINISHED] dev [unoptimized + debuginfo] target(s) in [ ..]
2816
2807
" ,
2817
2808
)
2818
2809
. run ( ) ;
0 commit comments