File tree 3 files changed +7
-1
lines changed
compiler/rustc_expand/src
3 files changed +7
-1
lines changed Original file line number Diff line number Diff line change @@ -426,6 +426,10 @@ impl server::Types for Rustc<'_, '_> {
426
426
}
427
427
428
428
impl server:: FreeFunctions for Rustc < ' _ , ' _ > {
429
+ fn injected_env_var ( & mut self , var : & str ) -> Option < String > {
430
+ self . ecx . sess . opts . logical_env . get ( var) . cloned ( )
431
+ }
432
+
429
433
fn track_env_var ( & mut self , var : & str , value : Option < & str > ) {
430
434
self . sess ( )
431
435
. env_depinfo
Original file line number Diff line number Diff line change @@ -55,6 +55,7 @@ macro_rules! with_api {
55
55
$m! {
56
56
FreeFunctions {
57
57
fn drop( $self: $S:: FreeFunctions ) ;
58
+ fn injected_env_var( var: & str ) -> Option <String >;
58
59
fn track_env_var( var: & str , value: Option <& str >) ;
59
60
fn track_path( path: & str ) ;
60
61
fn literal_from_str( s: & str ) -> Result <Literal <$S:: Span , $S:: Symbol >, ( ) >;
Original file line number Diff line number Diff line change @@ -1503,7 +1503,8 @@ pub mod tracked_env {
1503
1503
#[ unstable( feature = "proc_macro_tracked_env" , issue = "99515" ) ]
1504
1504
pub fn var < K : AsRef < OsStr > + AsRef < str > > ( key : K ) -> Result < String , VarError > {
1505
1505
let key: & str = key. as_ref ( ) ;
1506
- let value = env:: var ( key) ;
1506
+ let value = crate :: bridge:: client:: FreeFunctions :: injected_env_var ( key)
1507
+ . map_or_else ( || env:: var ( key) , Ok ) ;
1507
1508
crate :: bridge:: client:: FreeFunctions :: track_env_var ( key, value. as_deref ( ) . ok ( ) ) ;
1508
1509
value
1509
1510
}
You can’t perform that action at this time.
0 commit comments