diff options
Diffstat (limited to 'src/libsyntax_ext/env.rs')
| -rw-r--r-- | src/libsyntax_ext/env.rs | 64 |
1 files changed, 33 insertions, 31 deletions
diff --git a/src/libsyntax_ext/env.rs b/src/libsyntax_ext/env.rs index 1ea202f630b..c9ecbabc8ff 100644 --- a/src/libsyntax_ext/env.rs +++ b/src/libsyntax_ext/env.rs @@ -3,18 +3,19 @@ // interface. // -use syntax::ast::{self, Ident, GenericArg}; -use syntax_expand::base::{self, *}; +use syntax::ast::{self, GenericArg, Ident}; use syntax::symbol::{kw, sym, Symbol}; -use syntax_pos::Span; use syntax::tokenstream::TokenStream; +use syntax_expand::base::{self, *}; +use syntax_pos::Span; use std::env; -pub fn expand_option_env<'cx>(cx: &'cx mut ExtCtxt<'_>, - sp: Span, - tts: TokenStream) - -> Box<dyn base::MacResult + 'cx> { +pub fn expand_option_env<'cx>( + cx: &'cx mut ExtCtxt<'_>, + sp: Span, + tts: TokenStream, +) -> Box<dyn base::MacResult + 'cx> { let var = match get_single_str_from_tts(cx, sp, tts, "option_env!") { None => return DummyResult::any(sp), Some(v) => v, @@ -24,29 +25,32 @@ pub fn expand_option_env<'cx>(cx: &'cx mut ExtCtxt<'_>, let e = match env::var(&var.as_str()) { Err(..) => { let lt = cx.lifetime(sp, Ident::new(kw::StaticLifetime, sp)); - cx.expr_path(cx.path_all(sp, - true, - cx.std_path(&[sym::option, sym::Option, sym::None]), - vec![GenericArg::Type(cx.ty_rptr(sp, - cx.ty_ident(sp, - Ident::new(sym::str, sp)), - Some(lt), - ast::Mutability::Not))], - )) - } - Ok(s) => { - cx.expr_call_global(sp, - cx.std_path(&[sym::option, sym::Option, sym::Some]), - vec![cx.expr_str(sp, Symbol::intern(&s))]) + cx.expr_path(cx.path_all( + sp, + true, + cx.std_path(&[sym::option, sym::Option, sym::None]), + vec![GenericArg::Type(cx.ty_rptr( + sp, + cx.ty_ident(sp, Ident::new(sym::str, sp)), + Some(lt), + ast::Mutability::Not, + ))], + )) } + Ok(s) => cx.expr_call_global( + sp, + cx.std_path(&[sym::option, sym::Option, sym::Some]), + vec![cx.expr_str(sp, Symbol::intern(&s))], + ), }; MacEager::expr(e) } -pub fn expand_env<'cx>(cx: &'cx mut ExtCtxt<'_>, - sp: Span, - tts: TokenStream) - -> Box<dyn base::MacResult + 'cx> { +pub fn expand_env<'cx>( + cx: &'cx mut ExtCtxt<'_>, + sp: Span, + tts: TokenStream, +) -> Box<dyn base::MacResult + 'cx> { let mut exprs = match get_exprs_from_tts(cx, sp, tts) { Some(ref exprs) if exprs.is_empty() => { cx.span_err(sp, "env! takes 1 or 2 arguments"); @@ -62,12 +66,10 @@ pub fn expand_env<'cx>(cx: &'cx mut ExtCtxt<'_>, }; let msg = match exprs.next() { None => Symbol::intern(&format!("environment variable `{}` not defined", var)), - Some(second) => { - match expr_to_string(cx, second, "expected string literal") { - None => return DummyResult::any(sp), - Some((s, _style)) => s, - } - } + Some(second) => match expr_to_string(cx, second, "expected string literal") { + None => return DummyResult::any(sp), + Some((s, _style)) => s, + }, }; if exprs.next().is_some() { |
