Add failing tests (fmt panic) on weird doc comments.
Isolated doc comments causes the compiler to panic with: ``` 'no consecutive empty lines' ``` This is reproducible when doc comments are wrapped in sandwich between comments and newlines.
This commit is contained in:
parent
0feb2df0a0
commit
57e217e81c
|
@ -322,6 +322,25 @@ fn utf8_hex_literal_warning() {
|
||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn weird_comments() {
|
||||||
|
let source_code = r#"
|
||||||
|
// A
|
||||||
|
|
||||||
|
/// B
|
||||||
|
|
||||||
|
// C
|
||||||
|
fn foo () {
|
||||||
|
todo
|
||||||
|
}
|
||||||
|
"#;
|
||||||
|
|
||||||
|
assert!(matches!(
|
||||||
|
check(parse(source_code)),
|
||||||
|
Err((_, Error::UnexpectedDocComment { .. }))
|
||||||
|
))
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn discarded_let_bindings() {
|
fn discarded_let_bindings() {
|
||||||
let source_code = r#"
|
let source_code = r#"
|
||||||
|
|
|
@ -629,3 +629,29 @@ fn test_preserve_pipe() {
|
||||||
|
|
||||||
assert_fmt(src, expected);
|
assert_fmt(src, expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn weird_comments() {
|
||||||
|
let src = indoc! { r#"
|
||||||
|
// A
|
||||||
|
|
||||||
|
/// B
|
||||||
|
|
||||||
|
/// C
|
||||||
|
fn bar () {
|
||||||
|
todo
|
||||||
|
}
|
||||||
|
"#};
|
||||||
|
|
||||||
|
let expected = indoc! { r#"
|
||||||
|
// A
|
||||||
|
|
||||||
|
/// B
|
||||||
|
/// C
|
||||||
|
fn bar () {
|
||||||
|
todo
|
||||||
|
}
|
||||||
|
"#};
|
||||||
|
|
||||||
|
assert_fmt(src, expected);
|
||||||
|
}
|
||||||
|
|
|
@ -892,6 +892,13 @@ The best thing to do from here is to remove it."#))]
|
||||||
#[label("{} arguments", if *count < 2 { "not enough" } else { "too many" })]
|
#[label("{} arguments", if *count < 2 { "not enough" } else { "too many" })]
|
||||||
location: Span,
|
location: Span,
|
||||||
},
|
},
|
||||||
|
|
||||||
|
#[error("I ran into a lonely doc comment not attached to any function definition.")]
|
||||||
|
#[diagnostic(code("unexpected::doc_comment"))]
|
||||||
|
UnexpectedDocComment {
|
||||||
|
#[label("unexpected doc comment")]
|
||||||
|
location: Span,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Error {
|
impl Error {
|
||||||
|
|
Loading…
Reference in New Issue