sum type: mut
parent
34e9eb32bb
commit
50b704c5dd
|
@ -12,6 +12,11 @@ import (
|
||||||
fn (p mut Parser) match_statement(is_expr bool) string {
|
fn (p mut Parser) match_statement(is_expr bool) string {
|
||||||
p.check(.key_match)
|
p.check(.key_match)
|
||||||
p.fspace()
|
p.fspace()
|
||||||
|
is_mut := p.tok == .key_mut
|
||||||
|
if is_mut {
|
||||||
|
p.next()
|
||||||
|
p.fspace()
|
||||||
|
}
|
||||||
typ,expr := p.tmp_expr()
|
typ,expr := p.tmp_expr()
|
||||||
if typ.starts_with('array_') {
|
if typ.starts_with('array_') {
|
||||||
p.error('arrays cannot be compared')
|
p.error('arrays cannot be compared')
|
||||||
|
@ -140,7 +145,7 @@ fn (p mut Parser) match_statement(is_expr bool) string {
|
||||||
p.register_var(Var{
|
p.register_var(Var{
|
||||||
name: 'it'
|
name: 'it'
|
||||||
typ: sum_child_type+'*'
|
typ: sum_child_type+'*'
|
||||||
is_mut: true
|
is_mut: is_mut
|
||||||
ptr: true
|
ptr: true
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,6 +197,7 @@ fn (c &Checker) stmt(node ast.Stmt) {
|
||||||
}
|
}
|
||||||
ast.VarDecl {
|
ast.VarDecl {
|
||||||
typ := c.expr(it.expr)
|
typ := c.expr(it.expr)
|
||||||
|
// it.typ = typ
|
||||||
// println('checker: var decl $typ.name it.typ=$it.typ.name $it.pos.line_nr')
|
// println('checker: var decl $typ.name it.typ=$it.typ.name $it.pos.line_nr')
|
||||||
/*
|
/*
|
||||||
if typ.kind != .void {
|
if typ.kind != .void {
|
||||||
|
|
Loading…
Reference in New Issue