diff --git a/vlib/v/ast/ast.v b/vlib/v/ast/ast.v index 99776a2159..256e5424a9 100644 --- a/vlib/v/ast/ast.v +++ b/vlib/v/ast/ast.v @@ -1226,14 +1226,11 @@ pub fn (expr Expr) position() token.Position { AnonFn { return expr.decl.pos } - ArrayInit, AsCast, Assoc, AtExpr, BoolLiteral, CallExpr, CastExpr, ChanInit, CharLiteral, - ConcatExpr, Comment, EnumVal, FloatLiteral, GoExpr, Ident, IfExpr, IndexExpr, IntegerLiteral, - Likely, LockExpr, MapInit, MatchExpr, None, OffsetOf, OrExpr, ParExpr, PostfixExpr, PrefixExpr, - RangeExpr, SelectExpr, SelectorExpr, SizeOf, SqlExpr, StringInterLiteral, StringLiteral, - StructInit, Type, TypeOf, UnsafeExpr { - return expr.pos - } - ArrayDecompose { + ArrayDecompose, ArrayInit, AsCast, Assoc, AtExpr, BoolLiteral, CallExpr, CastExpr, ChanInit, + CharLiteral, ConcatExpr, Comment, EnumVal, FloatLiteral, GoExpr, Ident, IfExpr, IndexExpr, + IntegerLiteral, Likely, LockExpr, MapInit, MatchExpr, None, OffsetOf, OrExpr, ParExpr, + PostfixExpr, PrefixExpr, RangeExpr, SelectExpr, SelectorExpr, SizeOf, SqlExpr, StringInterLiteral, + StringLiteral, StructInit, Type, TypeOf, UnsafeExpr { return expr.pos } IfGuardExpr { @@ -1290,6 +1287,25 @@ pub fn (expr Expr) is_lit() bool { } } +pub fn (expr Expr) is_mut_ident() bool { + match expr { + Ident { + if expr.obj is Var { + if expr.obj.is_auto_deref { + return true + } + } + } + PrefixExpr { + if expr.op == .amp && expr.right.is_mut_ident() { + return true + } + } + else {} + } + return false +} + // check if stmt can be an expression in C pub fn (stmt Stmt) check_c_expr() ? { match stmt { @@ -1536,25 +1552,6 @@ pub struct Table { // main_fn_decl_node FnDecl } -pub fn (expr Expr) is_mut_ident() bool { - match expr { - Ident { - if expr.obj is Var { - if expr.obj.is_auto_deref { - return true - } - } - } - PrefixExpr { - if expr.op == .amp && expr.right.is_mut_ident() { - return true - } - } - else {} - } - return false -} - // helper for dealing with `m[k1][k2][k3][k3] = value` pub fn (mut lx IndexExpr) recursive_mapset_is_setter(val bool) { lx.is_setter = val