Skip to content

Commit b74e60b

Browse files
authored
cgen,markused: remove unused enum declarations too (#25033)
1 parent 3b7ada1 commit b74e60b

5 files changed

Lines changed: 6 additions & 2 deletions

File tree

‎cmd/tools/vast/vast.v‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -729,6 +729,7 @@ fn (t Tree) enum_decl(node ast.EnumDecl) &Node {
729729
obj.add('comments', t.array_node_comment(node.comments))
730730
obj.add_terse('attrs', t.array_node_attr(node.attrs))
731731
obj.add_terse('typ', t.type_node(node.typ))
732+
obj.add_terse('enum_typ', t.type_node(node.enum_typ))
732733
return obj
733734
}
734735

‎vlib/v/ast/ast.v‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1475,6 +1475,8 @@ pub:
14751475
typ Type // the default is `int`; can be changed by `enum Big as u64 { a = 5 }`
14761476
typ_pos token.Pos
14771477
pos token.Pos
1478+
pub mut:
1479+
enum_typ Type
14781480
}
14791481

14801482
pub struct AliasTypeDecl {

‎vlib/v/checker/checker.v‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2161,6 +2161,7 @@ fn (mut c Checker) enum_decl(mut node ast.EnumDecl) {
21612161
}
21622162
}
21632163
}
2164+
node.enum_typ = c.table.find_type_idx(node.name)
21642165
}
21652166

21662167
fn (mut c Checker) check_enum_field_integer_literal(expr ast.IntegerLiteral, is_signed bool, is_multi_allowed bool,

‎vlib/v/gen/c/cgen.v‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4771,7 +4771,7 @@ fn (mut g Gen) enum_decl(node ast.EnumDecl) {
47714771
}
47724772
return
47734773
}
4774-
if g.pref.skip_unused && node.typ.idx() !in g.table.used_features.used_syms {
4774+
if g.pref.skip_unused && node.enum_typ !in g.table.used_features.used_syms {
47754775
return
47764776
}
47774777
g.enum_typedefs.writeln('')

‎vlib/v/markused/walker.v‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -846,7 +846,7 @@ fn (mut w Walker) expr(node_ ast.Expr) {
846846
w.expr(filtered[0].expr)
847847
}
848848
}
849-
w.mark_by_sym_name(node.enum_name)
849+
w.mark_by_type(node.typ)
850850
}
851851
ast.LockExpr {
852852
w.uses_lock = true

0 commit comments

Comments
 (0)