parser: trigger declaration of array element as error
							parent
							
								
									76dc7eea50
								
							
						
					
					
						commit
						37927235cd
					
				|  | @ -0,0 +1,5 @@ | |||
| vlib/v/checker/tests/array_declare_element_a.v:2:9: error: non-name `arr[0]` on left side of `:=`  | ||||
|     1 | fn main() { | ||||
|     2 |     arr[0] := 2 | ||||
|       |            ~~ | ||||
|     3 | } | ||||
|  | @ -0,0 +1,3 @@ | |||
| fn main() { | ||||
| 	arr[0] := 2 | ||||
| } | ||||
|  | @ -0,0 +1,6 @@ | |||
| vlib/v/checker/tests/array_declare_element_b.v:3:9: error: non-name `arr[1]` on left side of `:=`  | ||||
|     1 | fn main() { | ||||
|     2 |     arr := [1, 2] | ||||
|     3 |     arr[1] := 1 | ||||
|       |            ~~ | ||||
|     4 | } | ||||
|  | @ -0,0 +1,4 @@ | |||
| fn main() { | ||||
| 	arr := [1, 2] | ||||
| 	arr[1] := 1 | ||||
| } | ||||
|  | @ -0,0 +1,6 @@ | |||
| vlib/v/checker/tests/array_declare_element_c.v:3:12: error: non-name `arr[1][0]` on left side of `:=`  | ||||
|     1 | fn main() { | ||||
|     2 |     arr := [[1, 2], [0, 3]] | ||||
|     3 |     arr[1][0] := 1 | ||||
|       |               ~~ | ||||
|     4 | } | ||||
|  | @ -0,0 +1,4 @@ | |||
| fn main() { | ||||
| 	arr := [[1, 2], [0, 3]] | ||||
| 	arr[1][0] := 1 | ||||
| } | ||||
|  | @ -111,6 +111,9 @@ fn (mut p Parser) partial_assign_stmt(left []ast.Expr) ast.Stmt { | |||
| 				} | ||||
| 			} | ||||
| 			ast.IndexExpr { | ||||
| 				if op == .decl_assign { | ||||
| 					p.error_with_pos('non-name `$lx.left[$lx.index]` on left side of `:=`', lx.pos) | ||||
| 				} | ||||
| 				lx.is_setter = true | ||||
| 			} | ||||
| 			ast.ParExpr {} | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue