cgen: fix assignment to nested maps
							parent
							
								
									f34352faf9
								
							
						
					
					
						commit
						4dd8796dba
					
				|  | @ -1710,7 +1710,7 @@ fn (g mut Gen) index_expr(node ast.IndexExpr) { | |||
| 		} else if sym.kind == .map { | ||||
| 			info := sym.info as table.Map | ||||
| 			elem_type_str := g.typ(info.value_type) | ||||
| 			if g.is_assign_lhs { | ||||
| 			if g.is_assign_lhs && !g.is_array_set { | ||||
| 				g.is_array_set = true | ||||
| 				g.write('map_set(') | ||||
| 				if !left_is_ptr { | ||||
|  |  | |||
|  | @ -0,0 +1,17 @@ | |||
| fn test_nested_maps() { | ||||
| 	x := map[string]map[string]int | ||||
| 	x["a"] = map[string]int | ||||
| 	assert x["a"]["b"] == 0 | ||||
| 	x["a"]["b"] = 5 | ||||
| 	assert x["a"]["b"] == 5 | ||||
| 	x["a"]["b"] = 7 | ||||
| 	assert x["a"]["b"] == 7 | ||||
| 	y := map[string]map[string]map[string]int | ||||
| 	y["a"] = map[string]map[string]int | ||||
| 	y["a"]["b"] = map[string]int | ||||
| 	assert y["a"]["b"]["c"] == 0 | ||||
| 	y["a"]["b"]["c"] = 5 | ||||
| 	assert y["a"]["b"]["c"] == 5 | ||||
| 	y["a"]["b"]["c"] = 7 | ||||
| 	assert y["a"]["b"]["c"] == 7 | ||||
| } | ||||
		Loading…
	
		Reference in New Issue