mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
v2: fix if guard var type & handle blank ident in assign
This commit is contained in:
parent
a118c72423
commit
b65fad9ca8
@ -153,6 +153,14 @@ pub fn (c mut Checker) infix_expr(infix_expr ast.InfixExpr) table.Type {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn (c mut Checker) check_assign_expr(assign_expr ast.AssignExpr) {
|
fn (c mut Checker) check_assign_expr(assign_expr ast.AssignExpr) {
|
||||||
|
match assign_expr.left {
|
||||||
|
ast.Ident {
|
||||||
|
if it.kind == .blank_ident {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {}
|
||||||
|
}
|
||||||
left_type := c.expr(assign_expr.left)
|
left_type := c.expr(assign_expr.left)
|
||||||
c.expected_type = left_type
|
c.expected_type = left_type
|
||||||
// t := c.table.get_type_symbol(left_type)
|
// t := c.table.get_type_symbol(left_type)
|
||||||
|
@ -1161,12 +1161,11 @@ fn (p mut Parser) if_expr() ast.Expr {
|
|||||||
is_or = true
|
is_or = true
|
||||||
p.open_scope()
|
p.open_scope()
|
||||||
var_name := p.check_name()
|
var_name := p.check_name()
|
||||||
// p.table.register_var(
|
|
||||||
p.check(.decl_assign)
|
p.check(.decl_assign)
|
||||||
expr,typ := p.expr(0)
|
expr,typ := p.expr(0)
|
||||||
p.scope.register_var(ast.VarDecl{
|
p.scope.register_var(ast.VarDecl{
|
||||||
name: var_name
|
name: var_name
|
||||||
typ: typ
|
expr: expr
|
||||||
})
|
})
|
||||||
cond = ast.IfGuardExpr{
|
cond = ast.IfGuardExpr{
|
||||||
var_name: var_name
|
var_name: var_name
|
||||||
|
Loading…
Reference in New Issue
Block a user