summaryrefslogtreecommitdiffstats
path: root/tests/ui/parser/issues/issue-65846-rollback-gating-failing-matcher.rs
blob: b0e8f4d99885cf3b537519a1171c3cf8b9e0e833 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// run-pass

// Test that failing macro matchers will not cause pre-expansion errors
// even though they use a feature that is pre-expansion gated.

#[allow(unused_macro_rules)]
macro_rules! m {
    ($e:expr) => {
        0
    }; // This fails on the input below due to `, foo`.
    ($e:expr,) => {
        1
    }; // This also fails to match due to `foo`.
    (do yeet $e:expr, foo) => {
        2
    }; // Successful matcher, we should get `2`.
}

fn main() {
    assert_eq!(2, m!(do yeet 42, foo));
}