Skip to content

Commit

Permalink
builtin_macros: expect raw strings too
Browse files Browse the repository at this point in the history
`expr_to_string` allows raw strings through so this code should be
expected to handle those.

Signed-off-by: David Wood <[email protected]>
  • Loading branch information
davidtwco committed Jul 24, 2023
1 parent ced592a commit c06a7eb
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 1 deletion.
2 changes: 1 addition & 1 deletion compiler/rustc_builtin_macros/src/env.rs
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ pub fn expand_env<'cx>(
// Use the string literal in the code in the diagnostic to avoid confusing diagnostics,
// e.g. when the literal contains escape sequences.
let ast::ExprKind::Lit(ast::token::Lit {
kind: ast::token::LitKind::Str,
kind: ast::token::LitKind::Str | ast::token::LitKind::StrRaw(..),
symbol: original_var,
..
}) = &var_expr.kind
Expand Down
6 changes: 6 additions & 0 deletions tests/ui/macros/builtin-env-issue-114010.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
// unset-rustc-env:oopsie

env![r#"oopsie"#];
//~^ ERROR environment variable `oopsie` not defined at compile time

fn main() {}
11 changes: 11 additions & 0 deletions tests/ui/macros/builtin-env-issue-114010.stderr
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
error: environment variable `oopsie` not defined at compile time
--> $DIR/builtin-env-issue-114010.rs:3:1
|
LL | env![r#"oopsie"#];
| ^^^^^^^^^^^^^^^^^
|
= help: use `std::env::var("oopsie")` to read the variable at run time
= note: this error originates in the macro `env` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to previous error

0 comments on commit c06a7eb

Please sign in to comment.