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<'_, '_> {
375375}
376376
377377impl 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+
378382 fn track_env_var ( & mut self , var : & str , value : Option < & str > ) {
379383 self . sess ( )
380384 . env_depinfo
Original file line number Diff line number Diff line change @@ -54,6 +54,7 @@ macro_rules! with_api {
5454 $m! {
5555 FreeFunctions {
5656 fn drop( $self: $S:: FreeFunctions ) ;
57+ fn injected_env_var( var: & str ) -> Option <String >;
5758 fn track_env_var( var: & str , value: Option <& str >) ;
5859 fn track_path( path: & str ) ;
5960 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 {
15051505 #[ unstable( feature = "proc_macro_tracked_env" , issue = "99515" ) ]
15061506 pub fn var < K : AsRef < OsStr > + AsRef < str > > ( key : K ) -> Result < String , VarError > {
15071507 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 ) ;
15091512 crate :: bridge:: client:: FreeFunctions :: track_env_var ( key, value. as_deref ( ) . ok ( ) ) ;
15101513 value
15111514 }
You can’t perform that action at this time.
0 commit comments