error: the `?` macro repetition operator does not take a separator --> $DIR/macro-at-most-once-rep-2018.rs:11:10 | LL | ($(a),?) => {}; | ^ error: no rules expected the token `?` --> $DIR/macro-at-most-once-rep-2018.rs:25:11 | LL | macro_rules! foo { | ---------------- when calling this macro ... LL | foo!(a?); | ^ no rules expected this token in macro call | = note: while trying to match sequence end error: no rules expected the token `?` --> $DIR/macro-at-most-once-rep-2018.rs:26:11 | LL | macro_rules! foo { | ---------------- when calling this macro ... LL | foo!(a?a); | ^ no rules expected this token in macro call | = note: while trying to match sequence end error: no rules expected the token `?` --> $DIR/macro-at-most-once-rep-2018.rs:27:11 | LL | macro_rules! foo { | ---------------- when calling this macro ... LL | foo!(a?a?a); | ^ no rules expected this token in macro call | = note: while trying to match sequence end error: unexpected end of macro invocation --> $DIR/macro-at-most-once-rep-2018.rs:29:5 | LL | macro_rules! barplus { | -------------------- when calling this macro ... LL | barplus!(); | ^^^^^^^^^^ missing tokens in macro arguments | note: while trying to match `+` --> $DIR/macro-at-most-once-rep-2018.rs:15:11 | LL | ($(a)?+) => {}; // ok. matches "a+" and "+" | ^ error: unexpected end of macro invocation --> $DIR/macro-at-most-once-rep-2018.rs:30:15 | LL | macro_rules! barplus { | -------------------- when calling this macro ... LL | barplus!(a); | ^ missing tokens in macro arguments | note: while trying to match `+` --> $DIR/macro-at-most-once-rep-2018.rs:15:11 | LL | ($(a)?+) => {}; // ok. matches "a+" and "+" | ^ error: no rules expected the token `?` --> $DIR/macro-at-most-once-rep-2018.rs:31:15 | LL | macro_rules! barplus { | -------------------- when calling this macro ... LL | barplus!(a?); | ^ no rules expected this token in macro call | note: while trying to match `+` --> $DIR/macro-at-most-once-rep-2018.rs:15:11 | LL | ($(a)?+) => {}; // ok. matches "a+" and "+" | ^ error: no rules expected the token `?` --> $DIR/macro-at-most-once-rep-2018.rs:32:15 | LL | macro_rules! barplus { | -------------------- when calling this macro ... LL | barplus!(a?a); | ^ no rules expected this token in macro call | note: while trying to match `+` --> $DIR/macro-at-most-once-rep-2018.rs:15:11 | LL | ($(a)?+) => {}; // ok. matches "a+" and "+" | ^ error: unexpected end of macro invocation --> $DIR/macro-at-most-once-rep-2018.rs:36:5 | LL | macro_rules! barstar { | -------------------- when calling this macro ... LL | barstar!(); | ^^^^^^^^^^ missing tokens in macro arguments | note: while trying to match `*` --> $DIR/macro-at-most-once-rep-2018.rs:19:11 | LL | ($(a)?*) => {}; // ok. matches "a*" and "*" | ^ error: unexpected end of macro invocation --> $DIR/macro-at-most-once-rep-2018.rs:37:15 | LL | macro_rules! barstar { | -------------------- when calling this macro ... LL | barstar!(a); | ^ missing tokens in macro arguments | note: while trying to match `*` --> $DIR/macro-at-most-once-rep-2018.rs:19:11 | LL | ($(a)?*) => {}; // ok. matches "a*" and "*" | ^ error: no rules expected the token `?` --> $DIR/macro-at-most-once-rep-2018.rs:38:15 | LL | macro_rules! barstar { | -------------------- when calling this macro ... LL | barstar!(a?); | ^ no rules expected this token in macro call | note: while trying to match `*` --> $DIR/macro-at-most-once-rep-2018.rs:19:11 | LL | ($(a)?*) => {}; // ok. matches "a*" and "*" | ^ error: no rules expected the token `?` --> $DIR/macro-at-most-once-rep-2018.rs:39:15 | LL | macro_rules! barstar { | -------------------- when calling this macro ... LL | barstar!(a?a); | ^ no rules expected this token in macro call | note: while trying to match `*` --> $DIR/macro-at-most-once-rep-2018.rs:19:11 | LL | ($(a)?*) => {}; // ok. matches "a*" and "*" | ^ error: aborting due to 12 previous errors