all: remove `var` key

pull/4661/head
Alexander Medvednikov 2020-04-30 16:55:33 +02:00
parent 20013e4b4b
commit 9971c58ca3
6 changed files with 9 additions and 11 deletions

View File

@ -77,7 +77,7 @@ pub fn (mut p Parser) assign_expr(left ast.Expr) ast.AssignExpr {
fn (mut p Parser) parse_assign_lhs() []ast.Ident { fn (mut p Parser) parse_assign_lhs() []ast.Ident {
mut idents := []ast.Ident{} mut idents := []ast.Ident{}
for { for {
is_mut := p.tok.kind == .key_mut || p.tok.kind == .key_var is_mut := p.tok.kind == .key_mut
if is_mut { if is_mut {
p.next() p.next()
} }

View File

@ -110,7 +110,7 @@ fn (mut p Parser) fn_decl() ast.FnDecl {
if p.tok.kind == .lpar { if p.tok.kind == .lpar {
p.next() // ( p.next() // (
is_method = true is_method = true
rec_mut = p.tok.kind in [.key_var, .key_mut] rec_mut = p.tok.kind == .key_mut
if rec_mut { if rec_mut {
p.next() // `mut` p.next() // `mut`
} }

View File

@ -23,8 +23,8 @@ fn (mut p Parser) for_stmt() ast.Stmt {
pos: pos pos: pos
is_inf: true is_inf: true
} }
} else if p.tok.kind in [.key_mut, .key_var] { } else if p.tok.kind == .key_mut {
p.error('`var` is not needed in for loops') p.error('`mut` is not needed in for loops')
} else if p.peek_tok.kind in [.decl_assign, .assign, .semicolon] || p.tok.kind == .semicolon { } else if p.peek_tok.kind in [.decl_assign, .assign, .semicolon] || p.tok.kind == .semicolon {
// `for i := 0; i < 10; i++ {` // `for i := 0; i < 10; i++ {`
mut init := ast.Stmt{} mut init := ast.Stmt{}
@ -76,7 +76,6 @@ fn (mut p Parser) for_stmt() ast.Stmt {
val_var_pos = p.tok.position() val_var_pos = p.tok.position()
key_var_name = val_var_name key_var_name = val_var_name
val_var_name = p.check_name() val_var_name = p.check_name()
if p.scope.known_var(key_var_name) { if p.scope.known_var(key_var_name) {
p.error('redefinition of key iteration variable `$key_var_name`') p.error('redefinition of key iteration variable `$key_var_name`')
} }

View File

@ -86,7 +86,7 @@ fn (mut p Parser) match_expr() ast.MatchExpr {
match_first_pos := p.tok.position() match_first_pos := p.tok.position()
p.inside_match = true p.inside_match = true
p.check(.key_match) p.check(.key_match)
is_mut := p.tok.kind in [.key_mut, .key_var] is_mut := p.tok.kind == .key_mut
mut is_sum_type := false mut is_sum_type := false
if is_mut { if is_mut {
p.next() p.next()
@ -106,8 +106,9 @@ fn (mut p Parser) match_expr() ast.MatchExpr {
if p.tok.kind == .key_else { if p.tok.kind == .key_else {
is_else = true is_else = true
p.next() p.next()
} else if p.tok.kind == .name && !(p.tok.lit == 'C' && p.peek_tok.kind == .dot) && (p.tok.lit in table.builtin_type_names || (p.tok.lit[0].is_capital() && } else if p.tok.kind == .name && !(p.tok.lit == 'C' && p.peek_tok.kind == .dot) &&
!p.tok.lit.is_upper()) || p.peek_tok.kind == .dot) { (p.tok.lit in table.builtin_type_names || (p.tok.lit[0].is_capital() && !p.tok.lit.is_upper()) ||
p.peek_tok.kind == .dot) {
// Sum type match // Sum type match
typ := p.parse_type() typ := p.parse_type()
exprs << ast.Type{ exprs << ast.Type{

View File

@ -398,7 +398,7 @@ pub fn (mut p Parser) stmt() ast.Stmt {
pos: assert_pos pos: assert_pos
} }
} }
.key_mut, .key_static, .key_var { .key_mut, .key_static {
return p.assign_stmt() return p.assign_stmt()
} }
.key_for { .key_for {

View File

@ -120,7 +120,6 @@ pub enum Kind {
key_pub key_pub
key_static key_static
key_unsafe key_unsafe
key_var
keyword_end keyword_end
_end_ _end_
} }
@ -246,7 +245,6 @@ fn build_token_str() []string {
s[Kind.key_none] = 'none' s[Kind.key_none] = 'none'
s[Kind.key_offsetof] = '__offsetof' s[Kind.key_offsetof] = '__offsetof'
s[Kind.key_is] = 'is' s[Kind.key_is] = 'is'
s[Kind.key_var] = 'var'
return s return s
} }