@@ -22,8 +22,10 @@ pub fn expand_option_env<'cx>(
2222 } ;
2323
2424 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 => {
2729 let lt = cx. lifetime ( sp, Ident :: new ( kw:: StaticLifetime , sp) ) ;
2830 cx. expr_path ( cx. path_all (
2931 sp,
@@ -37,10 +39,10 @@ pub fn expand_option_env<'cx>(
3739 ) ) ] ,
3840 ) )
3941 }
40- Ok ( s ) => cx. expr_call_global (
42+ Some ( value ) => cx. expr_call_global (
4143 sp,
4244 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 ) ] ,
4446 ) ,
4547 } ;
4648 MacEager :: expr ( e)
@@ -78,12 +80,14 @@ pub fn expand_env<'cx>(
7880 }
7981
8082 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 => {
8387 cx. span_err ( sp, & msg. as_str ( ) ) ;
8488 return DummyResult :: any ( sp) ;
8589 }
86- Ok ( s ) => cx. expr_str ( sp, Symbol :: intern ( & s ) ) ,
90+ Some ( value ) => cx. expr_str ( sp, value ) ,
8791 } ;
8892 MacEager :: expr ( e)
8993}
0 commit comments