File tree Expand file tree Collapse file tree 3 files changed +9
-1
lines changed
compiler/rustc_expand/src Expand file tree Collapse file tree 3 files changed +9
-1
lines changed Original file line number Diff line number Diff line change @@ -375,6 +375,10 @@ impl server::Types for Rustc<'_, '_> {
375
375
}
376
376
377
377
impl server:: FreeFunctions for Rustc < ' _ , ' _ > {
378
+ fn injected_env_var ( & mut self , var : & str ) -> Option < String > {
379
+ self . ecx . sess . opts . injected_env_vars . get ( var) . cloned ( )
380
+ }
381
+
378
382
fn track_env_var ( & mut self , var : & str , value : Option < & str > ) {
379
383
self . sess ( )
380
384
. env_depinfo
Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ macro_rules! with_api {
54
54
$m! {
55
55
FreeFunctions {
56
56
fn drop( $self: $S:: FreeFunctions ) ;
57
+ fn injected_env_var( var: & str ) -> Option <String >;
57
58
fn track_env_var( var: & str , value: Option <& str >) ;
58
59
fn track_path( path: & str ) ;
59
60
fn literal_from_str( s: & str ) -> Result <Literal <$S:: Span , $S:: Symbol >, ( ) >;
Original file line number Diff line number Diff line change @@ -1505,7 +1505,10 @@ pub mod tracked_env {
1505
1505
#[ unstable( feature = "proc_macro_tracked_env" , issue = "99515" ) ]
1506
1506
pub fn var < K : AsRef < OsStr > + AsRef < str > > ( key : K ) -> Result < String , VarError > {
1507
1507
let key: & str = key. as_ref ( ) ;
1508
- let value = env:: var ( key) ;
1508
+ let injected_value = crate :: bridge:: client:: FreeFunctions :: injected_env_var ( key) ;
1509
+ let env_value = env:: var ( key) ;
1510
+
1511
+ let value = injected_value. map_or_else ( env_value, Ok ) ;
1509
1512
crate :: bridge:: client:: FreeFunctions :: track_env_var ( key, value. as_deref ( ) . ok ( ) ) ;
1510
1513
value
1511
1514
}
You can’t perform that action at this time.
0 commit comments