Skip to content

Commit 267d826

Browse files
authored
parser,markused: support @[markused] for interface declarations too (#24963)
1 parent 93a1989 commit 267d826

6 files changed

Lines changed: 11 additions & 0 deletions

File tree

‎vlib/v/ast/types.v‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@ pub mut:
208208
conversions shared map[int][]Type
209209
// generic interface support
210210
is_generic bool
211+
is_markused bool
211212
generic_types []Type
212213
concrete_types []Type
213214
parent_type Type

‎vlib/v/markused/walker.v‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,8 @@ pub fn (mut w Walker) mark_markused_syms() {
169169
for sym in w.table.type_symbols {
170170
if sym.info is ast.Struct && sym.info.is_markused {
171171
w.mark_by_sym(sym)
172+
} else if sym.info is ast.Interface && sym.info.is_markused {
173+
w.mark_by_sym(sym)
172174
}
173175
}
174176
}

‎vlib/v/parser/struct.v‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -640,6 +640,7 @@ fn (mut p Parser) interface_decl() ast.InterfaceDecl {
640640
info: ast.Interface{
641641
types: []
642642
is_generic: generic_types.len > 0
643+
is_markused: attrs.contains('markused')
643644
generic_types: generic_types
644645
}
645646
language: language

‎vlib/v/tests/skip_unused/interface_struct_unused.run.out‎

Whitespace-only changes.

‎vlib/v/tests/skip_unused/interface_struct_unused.skip_unused.run.out‎

Whitespace-only changes.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
@[markused]
2+
struct Foo {}
3+
4+
@[markused]
5+
interface Bar {
6+
a Foo
7+
}

0 commit comments

Comments
 (0)