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