debug
This commit is contained in:
parent
9f401bda53
commit
bb8fa818d2
9 changed files with 1322 additions and 78 deletions
|
|
@ -82,6 +82,7 @@ mod private {
|
|||
match self {
|
||||
Separator::Eq => cx.push("=", Kind::Separator),
|
||||
Separator::Colon => cx.push(":", Kind::Separator),
|
||||
Separator::DoubleColon => cx.push("::", Kind::Separator),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -166,7 +167,12 @@ mod private {
|
|||
space_before,
|
||||
separator,
|
||||
after,
|
||||
} => todo!(),
|
||||
} => {
|
||||
before.into_spans(cx);
|
||||
space_before.into_spans(cx);
|
||||
separator.into_spans(cx);
|
||||
after.into_spans(cx);
|
||||
}
|
||||
Token::Delimited(delimited) => {
|
||||
delimited.into_spans(cx);
|
||||
}
|
||||
|
|
@ -210,7 +216,8 @@ mod private {
|
|||
} = self;
|
||||
|
||||
match prefix {
|
||||
Atom::Text(text) => cx.push(text, Kind::Constructor),
|
||||
Some(Atom::Text(text)) => cx.push(text, Kind::Constructor),
|
||||
None => {}
|
||||
}
|
||||
|
||||
match delimiter {
|
||||
|
|
@ -233,3 +240,736 @@ mod private {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use insta::assert_debug_snapshot;
|
||||
|
||||
use super::Kind;
|
||||
use crate::format_debug_output::{Config, into_spans, parse_input};
|
||||
|
||||
fn spans(input: &str) -> Vec<(String, Kind)> {
|
||||
let res = parse_input(input).unwrap();
|
||||
into_spans(
|
||||
res,
|
||||
Config {
|
||||
collapse_space: true,
|
||||
},
|
||||
)
|
||||
.into_iter()
|
||||
.map(|i| (i.text.into_owned(), i.kind))
|
||||
.collect()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn spans_ex1() {
|
||||
assert_debug_snapshot!(spans(
|
||||
r#"def_id=DefId(0:3 ~ unsized_coercion[10fa]::Trait)"#
|
||||
), @r#"
|
||||
[
|
||||
(
|
||||
"def_id",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"=",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"DefId",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"(",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
(
|
||||
"0",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
":",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"3",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"~",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"unsized_coercion",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"[",
|
||||
Delimiter(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"10fa",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"]",
|
||||
Delimiter(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"::",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"Trait",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
")",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
]
|
||||
"#)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn spans_ex2() {
|
||||
assert_debug_snapshot!(spans(
|
||||
r#"data=TypeNs("MetaSized") visible_parent=DefId(2:3984 ~ core[bcc4]::marker) actual_parent=Some(DefId(2:3984 ~ core[bcc4]::marker))"#
|
||||
), @r#"
|
||||
[
|
||||
(
|
||||
"data",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"=",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"TypeNs",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"(",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
(
|
||||
"",
|
||||
StringSurroundings,
|
||||
),
|
||||
(
|
||||
"\"",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"MetaSized",
|
||||
String,
|
||||
),
|
||||
(
|
||||
"\"",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"",
|
||||
StringSurroundings,
|
||||
),
|
||||
(
|
||||
")",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"visible_parent",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"=",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"DefId",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"(",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
(
|
||||
"2",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
":",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"3984",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"~",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"core",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"[",
|
||||
Delimiter(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"bcc4",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"]",
|
||||
Delimiter(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"::",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"marker",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
")",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"actual_parent",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"=",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"Some",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"(",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
(
|
||||
"DefId",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"(",
|
||||
Delimiter(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"2",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
":",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"3984",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"~",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"core",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"[",
|
||||
Delimiter(
|
||||
2,
|
||||
),
|
||||
),
|
||||
(
|
||||
"bcc4",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"]",
|
||||
Delimiter(
|
||||
2,
|
||||
),
|
||||
),
|
||||
(
|
||||
"::",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"marker",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
")",
|
||||
Delimiter(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
")",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
]
|
||||
"#)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn spans_ex3() {
|
||||
assert_debug_snapshot!(spans(
|
||||
r#"insert(DefId(0:4 ~ unsized_coercion[10fa]::{impl#0})): inserting TraitRef <u32 as Trait> into specialization graph"#
|
||||
), @r#"
|
||||
[
|
||||
(
|
||||
"insert",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"(",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
(
|
||||
"DefId",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"(",
|
||||
Delimiter(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"0",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
":",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"4",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"~",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"unsized_coercion",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"[",
|
||||
Delimiter(
|
||||
2,
|
||||
),
|
||||
),
|
||||
(
|
||||
"10fa",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"]",
|
||||
Delimiter(
|
||||
2,
|
||||
),
|
||||
),
|
||||
(
|
||||
"::",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"{",
|
||||
Delimiter(
|
||||
2,
|
||||
),
|
||||
),
|
||||
(
|
||||
"impl#0",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"}",
|
||||
Delimiter(
|
||||
2,
|
||||
),
|
||||
),
|
||||
(
|
||||
")",
|
||||
Delimiter(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
")",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
(
|
||||
":",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"inserting",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"TraitRef",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"<u32",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"as",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"Trait>",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"into",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"specialization",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"graph",
|
||||
Text,
|
||||
),
|
||||
]
|
||||
"#)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn spans_ex4() {
|
||||
assert_debug_snapshot!(spans(
|
||||
r#"inspecting def_id=DefId(3:662 ~ alloc[ef11]::boxed::Box) span=tests/ui/impl-trait/unsized_coercion.rs:12:15: 12:30 (#0)"#
|
||||
), @r##"
|
||||
[
|
||||
(
|
||||
"inspecting",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"def_id",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"=",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"DefId",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"(",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
(
|
||||
"3",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
":",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"662",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"~",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"alloc",
|
||||
Constructor,
|
||||
),
|
||||
(
|
||||
"[",
|
||||
Delimiter(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"ef11",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"]",
|
||||
Delimiter(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"::",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"boxed",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"::",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"Box",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
")",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"span",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
"=",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"tests/ui/impl-trait/unsized_coercion.rs",
|
||||
Path,
|
||||
),
|
||||
(
|
||||
":",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"12",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
":",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"15",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
":",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"12",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
":",
|
||||
Separator,
|
||||
),
|
||||
(
|
||||
"30",
|
||||
Number,
|
||||
),
|
||||
(
|
||||
" ",
|
||||
Space(
|
||||
1,
|
||||
),
|
||||
),
|
||||
(
|
||||
"(",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
(
|
||||
"#0",
|
||||
Text,
|
||||
),
|
||||
(
|
||||
")",
|
||||
Delimiter(
|
||||
0,
|
||||
),
|
||||
),
|
||||
]
|
||||
"##)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue