@@ -22,8 +22,10 @@ pub fn expand_option_env<'cx>(
22
22
} ;
23
23
24
24
let sp = cx. with_def_site_ctxt ( sp) ;
25
- let e = match env:: var ( & var. as_str ( ) ) {
26
- Err ( ..) => {
25
+ let value = env:: var ( & var. as_str ( ) ) . ok ( ) . as_deref ( ) . map ( Symbol :: intern) ;
26
+ cx. parse_sess . env_depinfo . borrow_mut ( ) . insert ( ( Symbol :: intern ( & var) , value) ) ;
27
+ let e = match value {
28
+ None => {
27
29
let lt = cx. lifetime ( sp, Ident :: new ( kw:: StaticLifetime , sp) ) ;
28
30
cx. expr_path ( cx. path_all (
29
31
sp,
@@ -37,10 +39,10 @@ pub fn expand_option_env<'cx>(
37
39
) ) ] ,
38
40
) )
39
41
}
40
- Ok ( s ) => cx. expr_call_global (
42
+ Some ( value ) => cx. expr_call_global (
41
43
sp,
42
44
cx. std_path ( & [ sym:: option, sym:: Option , sym:: Some ] ) ,
43
- vec ! [ cx. expr_str( sp, Symbol :: intern ( & s ) ) ] ,
45
+ vec ! [ cx. expr_str( sp, value ) ] ,
44
46
) ,
45
47
} ;
46
48
MacEager :: expr ( e)
@@ -78,12 +80,14 @@ pub fn expand_env<'cx>(
78
80
}
79
81
80
82
let sp = cx. with_def_site_ctxt ( sp) ;
81
- let e = match env:: var ( & * var. as_str ( ) ) {
82
- Err ( _) => {
83
+ let value = env:: var ( & * var. as_str ( ) ) . ok ( ) . as_deref ( ) . map ( Symbol :: intern) ;
84
+ cx. parse_sess . env_depinfo . borrow_mut ( ) . insert ( ( var, value) ) ;
85
+ let e = match value {
86
+ None => {
83
87
cx. span_err ( sp, & msg. as_str ( ) ) ;
84
88
return DummyResult :: any ( sp) ;
85
89
}
86
- Ok ( s ) => cx. expr_str ( sp, Symbol :: intern ( & s ) ) ,
90
+ Some ( value ) => cx. expr_str ( sp, value ) ,
87
91
} ;
88
92
MacEager :: expr ( e)
89
93
}
0 commit comments