fix(rustfmt): fix struct field formatting with doc comments present (#5217)
* fix(rustfmt): fix struct field formatting with doc comments present Fixes #5215 * fix review feedbacks * add unit test without doc comment * move tests to a seperate file * add additional test cases * reintroduce a newline at the of test/souce/structs.rs
This commit is contained in:
parent
5ff7b632a9
commit
1dcdfb276d
@ -1771,7 +1771,7 @@ pub(crate) fn rewrite_struct_field(
|
||||
.offset_left(overhead + spacing.len())
|
||||
.and_then(|ty_shape| field.ty.rewrite(context, ty_shape));
|
||||
if let Some(ref ty) = orig_ty {
|
||||
if !ty.contains('\n') {
|
||||
if !ty.contains('\n') && !contains_comment(context.snippet(missing_span)) {
|
||||
return Some(attr_prefix + &spacing + ty);
|
||||
}
|
||||
}
|
||||
|
72
tests/source/struct_field_doc_comment.rs
Normal file
72
tests/source/struct_field_doc_comment.rs
Normal file
@ -0,0 +1,72 @@
|
||||
// #5215
|
||||
struct MyTuple(
|
||||
/// Doc Comments
|
||||
/* TODO note to add more to Doc Comments */ u32,
|
||||
/// Doc Comments
|
||||
// TODO note
|
||||
u64,
|
||||
);
|
||||
|
||||
struct MyTuple(
|
||||
#[cfg(unix)] // some comment
|
||||
u64,
|
||||
#[cfg(not(unix))] /*block comment */
|
||||
u32,
|
||||
);
|
||||
|
||||
struct MyTuple(
|
||||
#[cfg(unix)]
|
||||
// some comment
|
||||
u64,
|
||||
#[cfg(not(unix))]
|
||||
/*block comment */
|
||||
u32,
|
||||
);
|
||||
|
||||
struct MyTuple(
|
||||
#[cfg(unix)] // some comment
|
||||
pub u64,
|
||||
#[cfg(not(unix))] /*block comment */
|
||||
pub(crate) u32,
|
||||
);
|
||||
|
||||
struct MyTuple(
|
||||
/// Doc Comments
|
||||
/* TODO note to add more to Doc Comments */
|
||||
pub u32,
|
||||
/// Doc Comments
|
||||
// TODO note
|
||||
pub(crate) u64,
|
||||
);
|
||||
|
||||
struct MyStruct {
|
||||
#[cfg(unix)] // some comment
|
||||
a: u64,
|
||||
#[cfg(not(unix))] /*block comment */
|
||||
b: u32,
|
||||
}
|
||||
|
||||
struct MyStruct {
|
||||
#[cfg(unix)] // some comment
|
||||
pub a: u64,
|
||||
#[cfg(not(unix))] /*block comment */
|
||||
pub(crate) b: u32,
|
||||
}
|
||||
|
||||
struct MyStruct {
|
||||
/// Doc Comments
|
||||
/* TODO note to add more to Doc Comments */
|
||||
a: u32,
|
||||
/// Doc Comments
|
||||
// TODO note
|
||||
b: u64,
|
||||
}
|
||||
|
||||
struct MyStruct {
|
||||
/// Doc Comments
|
||||
/* TODO note to add more to Doc Comments */
|
||||
pub a: u32,
|
||||
/// Doc Comments
|
||||
// TODO note
|
||||
pub(crate) b: u64,
|
||||
}
|
69
tests/target/struct_field_doc_comment.rs
Normal file
69
tests/target/struct_field_doc_comment.rs
Normal file
@ -0,0 +1,69 @@
|
||||
// #5215
|
||||
struct MyTuple(
|
||||
/// Doc Comments
|
||||
/* TODO note to add more to Doc Comments */
|
||||
u32,
|
||||
/// Doc Comments
|
||||
// TODO note
|
||||
u64,
|
||||
);
|
||||
|
||||
struct MyTuple(
|
||||
#[cfg(unix)] // some comment
|
||||
u64,
|
||||
#[cfg(not(unix))] /*block comment */ u32,
|
||||
);
|
||||
|
||||
struct MyTuple(
|
||||
#[cfg(unix)]
|
||||
// some comment
|
||||
u64,
|
||||
#[cfg(not(unix))]
|
||||
/*block comment */
|
||||
u32,
|
||||
);
|
||||
|
||||
struct MyTuple(
|
||||
#[cfg(unix)] // some comment
|
||||
pub u64,
|
||||
#[cfg(not(unix))] /*block comment */ pub(crate) u32,
|
||||
);
|
||||
|
||||
struct MyTuple(
|
||||
/// Doc Comments
|
||||
/* TODO note to add more to Doc Comments */
|
||||
pub u32,
|
||||
/// Doc Comments
|
||||
// TODO note
|
||||
pub(crate) u64,
|
||||
);
|
||||
|
||||
struct MyStruct {
|
||||
#[cfg(unix)] // some comment
|
||||
a: u64,
|
||||
#[cfg(not(unix))] /*block comment */ b: u32,
|
||||
}
|
||||
|
||||
struct MyStruct {
|
||||
#[cfg(unix)] // some comment
|
||||
pub a: u64,
|
||||
#[cfg(not(unix))] /*block comment */ pub(crate) b: u32,
|
||||
}
|
||||
|
||||
struct MyStruct {
|
||||
/// Doc Comments
|
||||
/* TODO note to add more to Doc Comments */
|
||||
a: u32,
|
||||
/// Doc Comments
|
||||
// TODO note
|
||||
b: u64,
|
||||
}
|
||||
|
||||
struct MyStruct {
|
||||
/// Doc Comments
|
||||
/* TODO note to add more to Doc Comments */
|
||||
pub a: u32,
|
||||
/// Doc Comments
|
||||
// TODO note
|
||||
pub(crate) b: u64,
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user