rust/src/test/ui/macros/same-sequence-span.rs
Julien Cretin df4b23e721 Implement slow-path for FirstSets::first
When 2 or more sequences share the same span, we can't use the precomputed map
for their first set. So we compute it recursively.

Fixes #62831.
2019-07-25 23:28:47 +02:00

23 lines
830 B
Rust

// aux-build:proc_macro_sequence.rs
// Regression test for issue #62831: Check that multiple sequences with the same span in the
// left-hand side of a macro definition behave as if they had unique spans, and in particular that
// they don't crash the compiler.
#![feature(proc_macro_hygiene)]
#![allow(unused_macros)]
extern crate proc_macro_sequence;
// When ignoring spans, this macro has the same macro definition as `generated_foo` in
// `proc_macro_sequence.rs`.
macro_rules! manual_foo {
(1 $x:expr $($y:tt,)* //~ERROR `$x:expr` may be followed by `$y:tt`
$(= $z:tt)* //~ERROR `$x:expr` may be followed by `=`
) => {};
}
proc_macro_sequence::make_foo!(); //~ERROR `$x:expr` may be followed by `$y:tt`
//~^ERROR `$x:expr` may be followed by `=`
fn main() {}