summaryrefslogtreecommitdiffstats
path: root/tests/incremental/issue-85197-invalid-span/auxiliary/invalid-span-helper-mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/incremental/issue-85197-invalid-span/auxiliary/invalid-span-helper-mod.rs')
-rw-r--r--tests/incremental/issue-85197-invalid-span/auxiliary/invalid-span-helper-mod.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/incremental/issue-85197-invalid-span/auxiliary/invalid-span-helper-mod.rs b/tests/incremental/issue-85197-invalid-span/auxiliary/invalid-span-helper-mod.rs
new file mode 100644
index 000000000..747174b1e
--- /dev/null
+++ b/tests/incremental/issue-85197-invalid-span/auxiliary/invalid-span-helper-mod.rs
@@ -0,0 +1,14 @@
+#[macro_export]
+macro_rules! helper {
+ // Use `:tt` instead of `:ident` so that we don't get a `None`-delimited group
+ ($first:tt) => {
+ pub fn foo<T>() {
+ // The span of `$first` comes from another file,
+ // so the expression `1 + $first` ends up with an
+ // 'invalid' span that starts and ends in different files.
+ // We use the `respan!` macro to give all tokens the same
+ // `SyntaxContext`, so that the parser will try to merge the spans.
+ respan::respan!(let a = 1 + $first;);
+ }
+ }
+}