summaryrefslogtreecommitdiffstats
path: root/src/test/ui/proc-macro/debug
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/proc-macro/debug')
-rw-r--r--src/test/ui/proc-macro/debug/auxiliary/macro-dump-debug.rs15
-rw-r--r--src/test/ui/proc-macro/debug/dump-debug-span-debug.rs41
-rw-r--r--src/test/ui/proc-macro/debug/dump-debug-span-debug.stderr166
-rw-r--r--src/test/ui/proc-macro/debug/dump-debug.rs40
-rw-r--r--src/test/ui/proc-macro/debug/dump-debug.stderr166
5 files changed, 428 insertions, 0 deletions
diff --git a/src/test/ui/proc-macro/debug/auxiliary/macro-dump-debug.rs b/src/test/ui/proc-macro/debug/auxiliary/macro-dump-debug.rs
new file mode 100644
index 000000000..56ad0612f
--- /dev/null
+++ b/src/test/ui/proc-macro/debug/auxiliary/macro-dump-debug.rs
@@ -0,0 +1,15 @@
+// force-host
+// no-prefer-dynamic
+
+#![crate_type = "proc-macro"]
+#![crate_name = "macro_dump_debug"]
+
+extern crate proc_macro;
+use proc_macro::TokenStream;
+
+#[proc_macro]
+pub fn dump_debug(tokens: TokenStream) -> TokenStream {
+ eprintln!("{:?}", tokens);
+ eprintln!("{:#?}", tokens);
+ TokenStream::new()
+}
diff --git a/src/test/ui/proc-macro/debug/dump-debug-span-debug.rs b/src/test/ui/proc-macro/debug/dump-debug-span-debug.rs
new file mode 100644
index 000000000..fd34eb974
--- /dev/null
+++ b/src/test/ui/proc-macro/debug/dump-debug-span-debug.rs
@@ -0,0 +1,41 @@
+// run-pass
+// aux-build:macro-dump-debug.rs
+// compile-flags: -Z span-debug
+
+extern crate macro_dump_debug;
+use macro_dump_debug::dump_debug;
+
+dump_debug! {
+ ident // ident
+ r#ident // raw ident
+ , // alone punct
+ ==> // joint punct
+ () // empty group
+ [_] // nonempty group
+
+ // unsuffixed literals
+ 0
+ 1.0
+ "S"
+ b"B"
+ r"R"
+ r##"R"##
+ br"BR"
+ br##"BR"##
+ 'C'
+ b'B'
+
+ // suffixed literals
+ 0q
+ 1.0q
+ "S"q
+ b"B"q
+ r"R"q
+ r##"R"##q
+ br"BR"q
+ br##"BR"##q
+ 'C'q
+ b'B'q
+}
+
+fn main() {}
diff --git a/src/test/ui/proc-macro/debug/dump-debug-span-debug.stderr b/src/test/ui/proc-macro/debug/dump-debug-span-debug.stderr
new file mode 100644
index 000000000..2c05bdbc4
--- /dev/null
+++ b/src/test/ui/proc-macro/debug/dump-debug-span-debug.stderr
@@ -0,0 +1,166 @@
+TokenStream [Ident { ident: "ident", span: $DIR/dump-debug-span-debug.rs:9:5: 9:10 (#0) }, Ident { ident: "r#ident", span: $DIR/dump-debug-span-debug.rs:10:5: 10:12 (#0) }, Punct { ch: ',', spacing: Alone, span: $DIR/dump-debug-span-debug.rs:11:5: 11:6 (#0) }, Punct { ch: '=', spacing: Joint, span: $DIR/dump-debug-span-debug.rs:12:5: 12:7 (#0) }, Punct { ch: '=', spacing: Joint, span: $DIR/dump-debug-span-debug.rs:12:5: 12:7 (#0) }, Punct { ch: '>', spacing: Alone, span: $DIR/dump-debug-span-debug.rs:12:7: 12:8 (#0) }, Group { delimiter: Parenthesis, stream: TokenStream [], span: $DIR/dump-debug-span-debug.rs:13:5: 13:7 (#0) }, Group { delimiter: Bracket, stream: TokenStream [Ident { ident: "_", span: $DIR/dump-debug-span-debug.rs:14:6: 14:7 (#0) }], span: $DIR/dump-debug-span-debug.rs:14:5: 14:8 (#0) }, Literal { kind: Integer, symbol: "0", suffix: None, span: $DIR/dump-debug-span-debug.rs:17:5: 17:6 (#0) }, Literal { kind: Float, symbol: "1.0", suffix: None, span: $DIR/dump-debug-span-debug.rs:18:5: 18:8 (#0) }, Literal { kind: Str, symbol: "S", suffix: None, span: $DIR/dump-debug-span-debug.rs:19:5: 19:8 (#0) }, Literal { kind: ByteStr, symbol: "B", suffix: None, span: $DIR/dump-debug-span-debug.rs:20:5: 20:9 (#0) }, Literal { kind: StrRaw(0), symbol: "R", suffix: None, span: $DIR/dump-debug-span-debug.rs:21:5: 21:9 (#0) }, Literal { kind: StrRaw(2), symbol: "R", suffix: None, span: $DIR/dump-debug-span-debug.rs:22:5: 22:13 (#0) }, Literal { kind: ByteStrRaw(0), symbol: "BR", suffix: None, span: $DIR/dump-debug-span-debug.rs:23:5: 23:11 (#0) }, Literal { kind: ByteStrRaw(2), symbol: "BR", suffix: None, span: $DIR/dump-debug-span-debug.rs:24:5: 24:15 (#0) }, Literal { kind: Char, symbol: "C", suffix: None, span: $DIR/dump-debug-span-debug.rs:25:5: 25:8 (#0) }, Literal { kind: Byte, symbol: "B", suffix: None, span: $DIR/dump-debug-span-debug.rs:26:5: 26:9 (#0) }, Literal { kind: Integer, symbol: "0", suffix: Some("q"), span: $DIR/dump-debug-span-debug.rs:29:5: 29:7 (#0) }, Literal { kind: Float, symbol: "1.0", suffix: Some("q"), span: $DIR/dump-debug-span-debug.rs:30:5: 30:9 (#0) }, Literal { kind: Str, symbol: "S", suffix: Some("q"), span: $DIR/dump-debug-span-debug.rs:31:5: 31:9 (#0) }, Literal { kind: ByteStr, symbol: "B", suffix: Some("q"), span: $DIR/dump-debug-span-debug.rs:32:5: 32:10 (#0) }, Literal { kind: StrRaw(0), symbol: "R", suffix: Some("q"), span: $DIR/dump-debug-span-debug.rs:33:5: 33:10 (#0) }, Literal { kind: StrRaw(2), symbol: "R", suffix: Some("q"), span: $DIR/dump-debug-span-debug.rs:34:5: 34:14 (#0) }, Literal { kind: ByteStrRaw(0), symbol: "BR", suffix: Some("q"), span: $DIR/dump-debug-span-debug.rs:35:5: 35:12 (#0) }, Literal { kind: ByteStrRaw(2), symbol: "BR", suffix: Some("q"), span: $DIR/dump-debug-span-debug.rs:36:5: 36:16 (#0) }, Literal { kind: Char, symbol: "C", suffix: Some("q"), span: $DIR/dump-debug-span-debug.rs:37:5: 37:9 (#0) }, Literal { kind: Byte, symbol: "B", suffix: Some("q"), span: $DIR/dump-debug-span-debug.rs:38:5: 38:10 (#0) }]
+TokenStream [
+ Ident {
+ ident: "ident",
+ span: $DIR/dump-debug-span-debug.rs:9:5: 9:10 (#0),
+ },
+ Ident {
+ ident: "r#ident",
+ span: $DIR/dump-debug-span-debug.rs:10:5: 10:12 (#0),
+ },
+ Punct {
+ ch: ',',
+ spacing: Alone,
+ span: $DIR/dump-debug-span-debug.rs:11:5: 11:6 (#0),
+ },
+ Punct {
+ ch: '=',
+ spacing: Joint,
+ span: $DIR/dump-debug-span-debug.rs:12:5: 12:7 (#0),
+ },
+ Punct {
+ ch: '=',
+ spacing: Joint,
+ span: $DIR/dump-debug-span-debug.rs:12:5: 12:7 (#0),
+ },
+ Punct {
+ ch: '>',
+ spacing: Alone,
+ span: $DIR/dump-debug-span-debug.rs:12:7: 12:8 (#0),
+ },
+ Group {
+ delimiter: Parenthesis,
+ stream: TokenStream [],
+ span: $DIR/dump-debug-span-debug.rs:13:5: 13:7 (#0),
+ },
+ Group {
+ delimiter: Bracket,
+ stream: TokenStream [
+ Ident {
+ ident: "_",
+ span: $DIR/dump-debug-span-debug.rs:14:6: 14:7 (#0),
+ },
+ ],
+ span: $DIR/dump-debug-span-debug.rs:14:5: 14:8 (#0),
+ },
+ Literal {
+ kind: Integer,
+ symbol: "0",
+ suffix: None,
+ span: $DIR/dump-debug-span-debug.rs:17:5: 17:6 (#0),
+ },
+ Literal {
+ kind: Float,
+ symbol: "1.0",
+ suffix: None,
+ span: $DIR/dump-debug-span-debug.rs:18:5: 18:8 (#0),
+ },
+ Literal {
+ kind: Str,
+ symbol: "S",
+ suffix: None,
+ span: $DIR/dump-debug-span-debug.rs:19:5: 19:8 (#0),
+ },
+ Literal {
+ kind: ByteStr,
+ symbol: "B",
+ suffix: None,
+ span: $DIR/dump-debug-span-debug.rs:20:5: 20:9 (#0),
+ },
+ Literal {
+ kind: StrRaw(0),
+ symbol: "R",
+ suffix: None,
+ span: $DIR/dump-debug-span-debug.rs:21:5: 21:9 (#0),
+ },
+ Literal {
+ kind: StrRaw(2),
+ symbol: "R",
+ suffix: None,
+ span: $DIR/dump-debug-span-debug.rs:22:5: 22:13 (#0),
+ },
+ Literal {
+ kind: ByteStrRaw(0),
+ symbol: "BR",
+ suffix: None,
+ span: $DIR/dump-debug-span-debug.rs:23:5: 23:11 (#0),
+ },
+ Literal {
+ kind: ByteStrRaw(2),
+ symbol: "BR",
+ suffix: None,
+ span: $DIR/dump-debug-span-debug.rs:24:5: 24:15 (#0),
+ },
+ Literal {
+ kind: Char,
+ symbol: "C",
+ suffix: None,
+ span: $DIR/dump-debug-span-debug.rs:25:5: 25:8 (#0),
+ },
+ Literal {
+ kind: Byte,
+ symbol: "B",
+ suffix: None,
+ span: $DIR/dump-debug-span-debug.rs:26:5: 26:9 (#0),
+ },
+ Literal {
+ kind: Integer,
+ symbol: "0",
+ suffix: Some("q"),
+ span: $DIR/dump-debug-span-debug.rs:29:5: 29:7 (#0),
+ },
+ Literal {
+ kind: Float,
+ symbol: "1.0",
+ suffix: Some("q"),
+ span: $DIR/dump-debug-span-debug.rs:30:5: 30:9 (#0),
+ },
+ Literal {
+ kind: Str,
+ symbol: "S",
+ suffix: Some("q"),
+ span: $DIR/dump-debug-span-debug.rs:31:5: 31:9 (#0),
+ },
+ Literal {
+ kind: ByteStr,
+ symbol: "B",
+ suffix: Some("q"),
+ span: $DIR/dump-debug-span-debug.rs:32:5: 32:10 (#0),
+ },
+ Literal {
+ kind: StrRaw(0),
+ symbol: "R",
+ suffix: Some("q"),
+ span: $DIR/dump-debug-span-debug.rs:33:5: 33:10 (#0),
+ },
+ Literal {
+ kind: StrRaw(2),
+ symbol: "R",
+ suffix: Some("q"),
+ span: $DIR/dump-debug-span-debug.rs:34:5: 34:14 (#0),
+ },
+ Literal {
+ kind: ByteStrRaw(0),
+ symbol: "BR",
+ suffix: Some("q"),
+ span: $DIR/dump-debug-span-debug.rs:35:5: 35:12 (#0),
+ },
+ Literal {
+ kind: ByteStrRaw(2),
+ symbol: "BR",
+ suffix: Some("q"),
+ span: $DIR/dump-debug-span-debug.rs:36:5: 36:16 (#0),
+ },
+ Literal {
+ kind: Char,
+ symbol: "C",
+ suffix: Some("q"),
+ span: $DIR/dump-debug-span-debug.rs:37:5: 37:9 (#0),
+ },
+ Literal {
+ kind: Byte,
+ symbol: "B",
+ suffix: Some("q"),
+ span: $DIR/dump-debug-span-debug.rs:38:5: 38:10 (#0),
+ },
+]
diff --git a/src/test/ui/proc-macro/debug/dump-debug.rs b/src/test/ui/proc-macro/debug/dump-debug.rs
new file mode 100644
index 000000000..0ed36b690
--- /dev/null
+++ b/src/test/ui/proc-macro/debug/dump-debug.rs
@@ -0,0 +1,40 @@
+// run-pass
+// aux-build:macro-dump-debug.rs
+
+extern crate macro_dump_debug;
+use macro_dump_debug::dump_debug;
+
+dump_debug! {
+ ident // ident
+ r#ident // raw ident
+ , // alone punct
+ ==> // joint punct
+ () // empty group
+ [_] // nonempty group
+
+ // unsuffixed literals
+ 0
+ 1.0
+ "S"
+ b"B"
+ r"R"
+ r##"R"##
+ br"BR"
+ br##"BR"##
+ 'C'
+ b'B'
+
+ // suffixed literals
+ 0q
+ 1.0q
+ "S"q
+ b"B"q
+ r"R"q
+ r##"R"##q
+ br"BR"q
+ br##"BR"##q
+ 'C'q
+ b'B'q
+}
+
+fn main() {}
diff --git a/src/test/ui/proc-macro/debug/dump-debug.stderr b/src/test/ui/proc-macro/debug/dump-debug.stderr
new file mode 100644
index 000000000..0aedefd4e
--- /dev/null
+++ b/src/test/ui/proc-macro/debug/dump-debug.stderr
@@ -0,0 +1,166 @@
+TokenStream [Ident { ident: "ident", span: #0 bytes(130..135) }, Ident { ident: "r#ident", span: #0 bytes(151..158) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(176..177) }, Punct { ch: '=', spacing: Joint, span: #0 bytes(203..205) }, Punct { ch: '=', spacing: Joint, span: #0 bytes(203..205) }, Punct { ch: '>', spacing: Alone, span: #0 bytes(205..206) }, Group { delimiter: Parenthesis, stream: TokenStream [], span: #0 bytes(230..232) }, Group { delimiter: Bracket, stream: TokenStream [Ident { ident: "_", span: #0 bytes(258..259) }], span: #0 bytes(257..260) }, Literal { kind: Integer, symbol: "0", suffix: None, span: #0 bytes(315..316) }, Literal { kind: Float, symbol: "1.0", suffix: None, span: #0 bytes(321..324) }, Literal { kind: Str, symbol: "S", suffix: None, span: #0 bytes(329..332) }, Literal { kind: ByteStr, symbol: "B", suffix: None, span: #0 bytes(337..341) }, Literal { kind: StrRaw(0), symbol: "R", suffix: None, span: #0 bytes(346..350) }, Literal { kind: StrRaw(2), symbol: "R", suffix: None, span: #0 bytes(355..363) }, Literal { kind: ByteStrRaw(0), symbol: "BR", suffix: None, span: #0 bytes(368..374) }, Literal { kind: ByteStrRaw(2), symbol: "BR", suffix: None, span: #0 bytes(379..389) }, Literal { kind: Char, symbol: "C", suffix: None, span: #0 bytes(394..397) }, Literal { kind: Byte, symbol: "B", suffix: None, span: #0 bytes(402..406) }, Literal { kind: Integer, symbol: "0", suffix: Some("q"), span: #0 bytes(437..439) }, Literal { kind: Float, symbol: "1.0", suffix: Some("q"), span: #0 bytes(444..448) }, Literal { kind: Str, symbol: "S", suffix: Some("q"), span: #0 bytes(453..457) }, Literal { kind: ByteStr, symbol: "B", suffix: Some("q"), span: #0 bytes(462..467) }, Literal { kind: StrRaw(0), symbol: "R", suffix: Some("q"), span: #0 bytes(472..477) }, Literal { kind: StrRaw(2), symbol: "R", suffix: Some("q"), span: #0 bytes(482..491) }, Literal { kind: ByteStrRaw(0), symbol: "BR", suffix: Some("q"), span: #0 bytes(496..503) }, Literal { kind: ByteStrRaw(2), symbol: "BR", suffix: Some("q"), span: #0 bytes(508..519) }, Literal { kind: Char, symbol: "C", suffix: Some("q"), span: #0 bytes(524..528) }, Literal { kind: Byte, symbol: "B", suffix: Some("q"), span: #0 bytes(533..538) }]
+TokenStream [
+ Ident {
+ ident: "ident",
+ span: #0 bytes(130..135),
+ },
+ Ident {
+ ident: "r#ident",
+ span: #0 bytes(151..158),
+ },
+ Punct {
+ ch: ',',
+ spacing: Alone,
+ span: #0 bytes(176..177),
+ },
+ Punct {
+ ch: '=',
+ spacing: Joint,
+ span: #0 bytes(203..205),
+ },
+ Punct {
+ ch: '=',
+ spacing: Joint,
+ span: #0 bytes(203..205),
+ },
+ Punct {
+ ch: '>',
+ spacing: Alone,
+ span: #0 bytes(205..206),
+ },
+ Group {
+ delimiter: Parenthesis,
+ stream: TokenStream [],
+ span: #0 bytes(230..232),
+ },
+ Group {
+ delimiter: Bracket,
+ stream: TokenStream [
+ Ident {
+ ident: "_",
+ span: #0 bytes(258..259),
+ },
+ ],
+ span: #0 bytes(257..260),
+ },
+ Literal {
+ kind: Integer,
+ symbol: "0",
+ suffix: None,
+ span: #0 bytes(315..316),
+ },
+ Literal {
+ kind: Float,
+ symbol: "1.0",
+ suffix: None,
+ span: #0 bytes(321..324),
+ },
+ Literal {
+ kind: Str,
+ symbol: "S",
+ suffix: None,
+ span: #0 bytes(329..332),
+ },
+ Literal {
+ kind: ByteStr,
+ symbol: "B",
+ suffix: None,
+ span: #0 bytes(337..341),
+ },
+ Literal {
+ kind: StrRaw(0),
+ symbol: "R",
+ suffix: None,
+ span: #0 bytes(346..350),
+ },
+ Literal {
+ kind: StrRaw(2),
+ symbol: "R",
+ suffix: None,
+ span: #0 bytes(355..363),
+ },
+ Literal {
+ kind: ByteStrRaw(0),
+ symbol: "BR",
+ suffix: None,
+ span: #0 bytes(368..374),
+ },
+ Literal {
+ kind: ByteStrRaw(2),
+ symbol: "BR",
+ suffix: None,
+ span: #0 bytes(379..389),
+ },
+ Literal {
+ kind: Char,
+ symbol: "C",
+ suffix: None,
+ span: #0 bytes(394..397),
+ },
+ Literal {
+ kind: Byte,
+ symbol: "B",
+ suffix: None,
+ span: #0 bytes(402..406),
+ },
+ Literal {
+ kind: Integer,
+ symbol: "0",
+ suffix: Some("q"),
+ span: #0 bytes(437..439),
+ },
+ Literal {
+ kind: Float,
+ symbol: "1.0",
+ suffix: Some("q"),
+ span: #0 bytes(444..448),
+ },
+ Literal {
+ kind: Str,
+ symbol: "S",
+ suffix: Some("q"),
+ span: #0 bytes(453..457),
+ },
+ Literal {
+ kind: ByteStr,
+ symbol: "B",
+ suffix: Some("q"),
+ span: #0 bytes(462..467),
+ },
+ Literal {
+ kind: StrRaw(0),
+ symbol: "R",
+ suffix: Some("q"),
+ span: #0 bytes(472..477),
+ },
+ Literal {
+ kind: StrRaw(2),
+ symbol: "R",
+ suffix: Some("q"),
+ span: #0 bytes(482..491),
+ },
+ Literal {
+ kind: ByteStrRaw(0),
+ symbol: "BR",
+ suffix: Some("q"),
+ span: #0 bytes(496..503),
+ },
+ Literal {
+ kind: ByteStrRaw(2),
+ symbol: "BR",
+ suffix: Some("q"),
+ span: #0 bytes(508..519),
+ },
+ Literal {
+ kind: Char,
+ symbol: "C",
+ suffix: Some("q"),
+ span: #0 bytes(524..528),
+ },
+ Literal {
+ kind: Byte,
+ symbol: "B",
+ suffix: Some("q"),
+ span: #0 bytes(533..538),
+ },
+]