Skip to content

Commit aa50f4e

Browse files
authored
checker: clean up sum_type_decl() (#17669)
1 parent 2e7dd85 commit aa50f4e

File tree

1 file changed

+4
-5
lines changed

1 file changed

+4
-5
lines changed

vlib/v/checker/checker.v

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -548,7 +548,7 @@ fn (mut c Checker) sum_type_decl(node ast.SumTypeDecl) {
548548
c.error('sum type cannot hold a reference type', variant.pos)
549549
}
550550
c.ensure_type_exists(variant.typ, variant.pos) or {}
551-
mut sym := c.table.sym(variant.typ)
551+
sym := c.table.sym(variant.typ)
552552
if sym.name in names_used {
553553
c.error('sum type ${node.name} cannot hold the type `${sym.name}` more than once',
554554
variant.pos)
@@ -558,7 +558,7 @@ fn (mut c Checker) sum_type_decl(node ast.SumTypeDecl) {
558558
c.error('sum type cannot hold an interface', variant.pos)
559559
} else if sym.kind == .struct_ && sym.language == .js {
560560
c.error('sum type cannot hold a JS struct', variant.pos)
561-
} else if mut sym.info is ast.Struct {
561+
} else if sym.info is ast.Struct {
562562
if sym.info.is_generic {
563563
if !variant.typ.has_flag(.generic) {
564564
c.error('generic struct `${sym.name}` must specify generic type names, e.g. ${sym.name}[T]',
@@ -581,11 +581,10 @@ fn (mut c Checker) sum_type_decl(node ast.SumTypeDecl) {
581581
}
582582
}
583583
} else if sym.info is ast.FnType {
584-
func := (sym.info as ast.FnType).func
585-
if c.table.sym(func.return_type).name.ends_with('.${node.name}') {
584+
if c.table.sym(sym.info.func.return_type).name.ends_with('.${node.name}') {
586585
c.error('sum type `${node.name}` cannot be defined recursively', variant.pos)
587586
}
588-
for param in func.params {
587+
for param in sym.info.func.params {
589588
if c.table.sym(param.typ).name.ends_with('.${node.name}') {
590589
c.error('sum type `${node.name}` cannot be defined recursively', variant.pos)
591590
}

0 commit comments

Comments
 (0)