This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +72
-0
lines changed
tests/incremental/derive_macro_expansion Expand file tree Collapse file tree 2 files changed +72
-0
lines changed Original file line number Diff line number Diff line change 1+ //@ force-host
2+ //@ no-prefer-dynamic
3+
4+ #![ crate_type = "proc-macro" ]
5+
6+ extern crate proc_macro;
7+ use proc_macro:: TokenStream ;
8+
9+ #[ proc_macro_derive( Nothing ) ]
10+ pub fn derive ( input : TokenStream ) -> TokenStream {
11+ eprintln ! ( "invoked" ) ;
12+
13+ r#"
14+ pub mod nothing_mod {
15+ // #[cfg(cfail1)]
16+ pub fn nothing() {
17+ eprintln!("nothing");
18+ }
19+
20+ // #[cfg(cfail2)]
21+ // fn nothingx() {}
22+ }
23+ "# . parse ( ) . unwrap ( )
24+ }
Original file line number Diff line number Diff line change 1+ //@ aux-build:derive_nothing.rs
2+ //@ revisions:cfail1 cfail2
3+ //@ compile-flags: -Z query-dep-graph
4+ //@ check-pass (FIXME(62277): could be check-pass?)
5+
6+ // TODO(pr-time): do these revisions make sense? only "check" required?
7+
8+ #![ feature( rustc_attrs) ]
9+ #![ feature( stmt_expr_attributes) ]
10+ #![ allow( dead_code) ]
11+ #![ crate_type = "rlib" ]
12+
13+ #![ rustc_partition_codegened( module="item_changed-foo" , cfg="cfail1" ) ]
14+ // #![rustc_partition_reused(module="item_changed-foo", cfg="cfail2")]
15+ #![ rustc_partition_reused( module="item_changed-foo-nothing_mod" , cfg="cfail2" ) ]
16+
17+ #[ macro_use]
18+ extern crate derive_nothing;
19+
20+ pub mod foo {
21+ // #[rustc_clean(cfg="cfail2")]
22+ #[ derive( Nothing ) ]
23+ pub struct Foo ;
24+
25+ #[ cfg( cfail2) ]
26+ pub fn second_fn ( ) {
27+ eprintln ! ( "just forcing codegen" ) ;
28+ }
29+
30+ pub fn use_foo ( _f : Foo ) {
31+ // #[cfg(cfail1)]
32+ nothing_mod:: nothing ( ) ;
33+
34+ // #[cfg(cfail2)]
35+ // nothingx();
36+
37+ eprintln ! ( "foo used" ) ;
38+ }
39+ }
40+
41+ // fn main() {
42+ // Foo;
43+ //
44+ // nothing();
45+ //
46+ // #[cfg(rpass2)]
47+ // Bar;
48+ // }
You can’t perform that action at this time.
0 commit comments