mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
fmt: fix removal of comment before embed in struct (#11384)
This commit is contained in:
parent
91f7be98d0
commit
19a43db2de
@ -57,11 +57,16 @@ pub fn (mut f Fmt) struct_decl(node ast.StructDecl) {
|
||||
for embed in node.embeds {
|
||||
f.mark_types_import_as_used(embed.typ)
|
||||
styp := f.table.type_to_str_using_aliases(embed.typ, f.mod2alias)
|
||||
if embed.comments.len == 0 {
|
||||
|
||||
pre_comments := embed.comments.filter(it.pos.pos < embed.pos.pos)
|
||||
comments := embed.comments[pre_comments.len..]
|
||||
|
||||
f.comments_before_field(pre_comments)
|
||||
if comments.len == 0 {
|
||||
f.writeln('\t$styp')
|
||||
} else {
|
||||
f.write('\t$styp')
|
||||
f.comments(embed.comments, level: .indent)
|
||||
f.comments(comments, level: .indent)
|
||||
}
|
||||
}
|
||||
mut field_align_i := 0
|
||||
|
@ -5,7 +5,9 @@ struct Foo {
|
||||
struct Test {}
|
||||
|
||||
struct Bar {
|
||||
// comment before Fooo
|
||||
Foo // comment for Foo
|
||||
// comment before Test
|
||||
Test // comment for Test
|
||||
// another comment for Test
|
||||
y int
|
||||
|
@ -181,7 +181,7 @@ fn (mut p Parser) struct_decl() ast.StructDecl {
|
||||
// struct embedding
|
||||
type_pos = p.tok.position()
|
||||
typ = p.parse_type()
|
||||
ecomments := p.eat_comments()
|
||||
comments << p.eat_comments()
|
||||
type_pos = type_pos.extend(p.prev_tok.position())
|
||||
if !is_on_top {
|
||||
p.error_with_pos('struct embedding must be declared at the beginning of the struct body',
|
||||
@ -203,7 +203,7 @@ fn (mut p Parser) struct_decl() ast.StructDecl {
|
||||
embeds << ast.Embed{
|
||||
typ: typ
|
||||
pos: type_pos
|
||||
comments: ecomments
|
||||
comments: comments
|
||||
}
|
||||
} else {
|
||||
// struct field
|
||||
|
Loading…
Reference in New Issue
Block a user