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