From 218caa410aa38c29984be31a5229b9fa717560ee Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:13 +0200 Subject: Merging upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- tests/ui/macro_backtrace/auxiliary/ping.rs | 30 +++++++++ .../macro_backtrace/main.-Zmacro-backtrace.stderr | 72 ++++++++++++++++++++++ tests/ui/macro_backtrace/main.default.stderr | 35 +++++++++++ tests/ui/macro_backtrace/main.rs | 23 +++++++ 4 files changed, 160 insertions(+) create mode 100644 tests/ui/macro_backtrace/auxiliary/ping.rs create mode 100644 tests/ui/macro_backtrace/main.-Zmacro-backtrace.stderr create mode 100644 tests/ui/macro_backtrace/main.default.stderr create mode 100644 tests/ui/macro_backtrace/main.rs (limited to 'tests/ui/macro_backtrace') diff --git a/tests/ui/macro_backtrace/auxiliary/ping.rs b/tests/ui/macro_backtrace/auxiliary/ping.rs new file mode 100644 index 000000000..25b9efbc9 --- /dev/null +++ b/tests/ui/macro_backtrace/auxiliary/ping.rs @@ -0,0 +1,30 @@ +// Test that the macro backtrace facility works (supporting file) + +// a non-local macro +#[macro_export] +macro_rules! ping { + () => { + pong!(); + } +} + +#[macro_export] +macro_rules! deep { + () => { + foo!(); + } +} + +#[macro_export] +macro_rules! foo { + () => { + bar!(); + } +} + +#[macro_export] +macro_rules! bar { + () => { + ping!(); + } +} diff --git a/tests/ui/macro_backtrace/main.-Zmacro-backtrace.stderr b/tests/ui/macro_backtrace/main.-Zmacro-backtrace.stderr new file mode 100644 index 000000000..bf85a2d75 --- /dev/null +++ b/tests/ui/macro_backtrace/main.-Zmacro-backtrace.stderr @@ -0,0 +1,72 @@ +error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` + --> $DIR/main.rs:10:20 + | +LL | / macro_rules! pong { +LL | | () => { syntax error }; + | | ^^^^^ expected one of 8 possible tokens +LL | | } + | |_- in this expansion of `pong!` +... +LL | pong!(); + | ------- in this macro invocation + +error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` + --> $DIR/main.rs:10:20 + | +LL | / macro_rules! pong { +LL | | () => { syntax error }; + | | ^^^^^ expected one of 8 possible tokens +LL | | } + | |_- in this expansion of `pong!` (#2) +... +LL | ping!(); + | ------- in this macro invocation (#1) + | + ::: $DIR/auxiliary/ping.rs:5:1 + | +LL | macro_rules! ping { + | ----------------- in this expansion of `ping!` (#1) +LL | () => { +LL | pong!(); + | ------- in this macro invocation (#2) + +error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` + --> $DIR/main.rs:10:20 + | +LL | / macro_rules! pong { +LL | | () => { syntax error }; + | | ^^^^^ expected one of 8 possible tokens +LL | | } + | |_- in this expansion of `pong!` (#5) +... +LL | deep!(); + | ------- in this macro invocation (#1) + | + ::: $DIR/auxiliary/ping.rs:5:1 + | +LL | macro_rules! ping { + | ----------------- in this expansion of `ping!` (#4) +LL | () => { +LL | pong!(); + | ------- in this macro invocation (#5) +... +LL | macro_rules! deep { + | ----------------- in this expansion of `deep!` (#1) +LL | () => { +LL | foo!(); + | ------ in this macro invocation (#2) +... +LL | macro_rules! foo { + | ---------------- in this expansion of `foo!` (#2) +LL | () => { +LL | bar!(); + | ------ in this macro invocation (#3) +... +LL | macro_rules! bar { + | ---------------- in this expansion of `bar!` (#3) +LL | () => { +LL | ping!(); + | ------- in this macro invocation (#4) + +error: aborting due to 3 previous errors + diff --git a/tests/ui/macro_backtrace/main.default.stderr b/tests/ui/macro_backtrace/main.default.stderr new file mode 100644 index 000000000..9ed4b3525 --- /dev/null +++ b/tests/ui/macro_backtrace/main.default.stderr @@ -0,0 +1,35 @@ +error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` + --> $DIR/main.rs:10:20 + | +LL | () => { syntax error }; + | ^^^^^ expected one of 8 possible tokens +... +LL | pong!(); + | ------- in this macro invocation + | + = note: this error originates in the macro `pong` (in Nightly builds, run with -Z macro-backtrace for more info) + +error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` + --> $DIR/main.rs:10:20 + | +LL | () => { syntax error }; + | ^^^^^ expected one of 8 possible tokens +... +LL | ping!(); + | ------- in this macro invocation + | + = note: this error originates in the macro `pong` which comes from the expansion of the macro `ping` (in Nightly builds, run with -Z macro-backtrace for more info) + +error: expected one of `!`, `.`, `::`, `;`, `?`, `{`, `}`, or an operator, found `error` + --> $DIR/main.rs:10:20 + | +LL | () => { syntax error }; + | ^^^^^ expected one of 8 possible tokens +... +LL | deep!(); + | ------- in this macro invocation + | + = note: this error originates in the macro `pong` which comes from the expansion of the macro `deep` (in Nightly builds, run with -Z macro-backtrace for more info) + +error: aborting due to 3 previous errors + diff --git a/tests/ui/macro_backtrace/main.rs b/tests/ui/macro_backtrace/main.rs new file mode 100644 index 000000000..6cee3b4cd --- /dev/null +++ b/tests/ui/macro_backtrace/main.rs @@ -0,0 +1,23 @@ +// Test that the macro backtrace facility works +// aux-build:ping.rs +// revisions: default -Zmacro-backtrace +//[-Zmacro-backtrace] compile-flags: -Z macro-backtrace + +#[macro_use] extern crate ping; + +// a local macro +macro_rules! pong { + () => { syntax error }; +} +//~^^ ERROR expected one of +//~| ERROR expected one of +//~| ERROR expected one of + +#[allow(non_camel_case_types)] +struct syntax; + +fn main() { + pong!(); + ping!(); + deep!(); +} -- cgit v1.2.3