about summary refs log tree commit diff
path: root/compiler/rustc_span
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2024-06-14 16:41:39 +0000
committerbors <bors@rust-lang.org>2024-06-14 16:41:39 +0000
commitf8e566053207b4ecbcbc7a7d6ded82c43061e3da (patch)
treecf1ed832c3ef86f90448770fa7cfdb98c21b4f0c /compiler/rustc_span
parent7ac6c2fc685681824fbfc156b38035df743881dd (diff)
parent4b82afb40c91fafdc9e4d84d4782573f848d84d9 (diff)
downloadrust-f8e566053207b4ecbcbc7a7d6ded82c43061e3da.tar.gz
rust-f8e566053207b4ecbcbc7a7d6ded82c43061e3da.zip
Auto merge of #118958 - c410-f3r:concat-again, r=petrochenkov
Add a new concat metavar expr

Revival of #111930

Giving it another try now that #117050 was merged.

With the new rules, meta-variable expressions must be referenced with a dollar sign (`$`) and this can cause misunderstands with `$concat`.

```rust
macro_rules! foo {
    ( $bar:ident ) => {
        const ${concat(VAR, bar)}: i32 = 1;
    };
}

// Will produce `VARbar` instead of `VAR_123`
foo!(_123);
```

In other words, forgetting the dollar symbol can produce undesired outputs.

cc #29599
cc https://github.com/rust-lang/rust/issues/124225
Diffstat (limited to 'compiler/rustc_span')
-rw-r--r--compiler/rustc_span/src/symbol.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/rustc_span/src/symbol.rs b/compiler/rustc_span/src/symbol.rs
index c89323b7f16..f44fa1bcb4f 100644
--- a/compiler/rustc_span/src/symbol.rs
+++ b/compiler/rustc_span/src/symbol.rs
@@ -1118,6 +1118,7 @@ symbols! {
         macro_lifetime_matcher,
         macro_literal_matcher,
         macro_metavar_expr,
+        macro_metavar_expr_concat,
         macro_reexport,
         macro_use,
         macro_vis_matcher,