ast: minor cleanup of ast.v (#8859)
parent
c190b6a131
commit
8f486cb8cf
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue