File tree Expand file tree Collapse file tree 2 files changed +45
-0
lines changed Expand file tree Collapse file tree 2 files changed +45
-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+ #![ feature( proc_macro_tracked_env) ]
6+
7+ extern crate proc_macro;
8+
9+ use proc_macro:: TokenStream ;
10+ use proc_macro:: tracked_env:: var;
11+
12+ #[ proc_macro]
13+ pub fn generate_const ( input : TokenStream ) -> TokenStream {
14+ let the_const = match var ( "THE_CONST" ) {
15+ Ok ( x) if x == "12" => {
16+ "const THE_CONST: u32 = 12;"
17+ }
18+ _ => {
19+ "const THE_CONST: u32 = 0;"
20+ }
21+ } ;
22+ let another = if var ( "ANOTHER" ) . is_ok ( ) {
23+ "const ANOTHER: u32 = 1;"
24+ } else {
25+ "const ANOTHER: u32 = 2;"
26+ } ;
27+ format ! ( "{the_const}{another}" ) . parse ( ) . unwrap ( )
28+ }
Original file line number Diff line number Diff line change 1+ // aux-build:env.rs
2+ // run-pass
3+ // rustc-env: THE_CONST=1
4+ // compile-flags: -Zunstable-options --env THE_CONST=12 --env ANOTHER=4
5+
6+ #![ crate_name = "foo" ]
7+
8+ extern crate env;
9+
10+ use env:: generate_const;
11+
12+ generate_const ! ( ) ;
13+
14+ fn main ( ) {
15+ assert_eq ! ( THE_CONST , 12 ) ;
16+ assert_eq ! ( ANOTHER , 1 ) ;
17+ }
You can’t perform that action at this time.
0 commit comments