Browse Source

Fix assertion on union assignment in compound literal

gingerBill 6 years ago
parent
commit
008d8f25c8
1 changed files with 1 additions and 3 deletions
  1. 1 3
      src/ir.cpp

+ 1 - 3
src/ir.cpp

@@ -7027,9 +7027,7 @@ irAddr ir_build_addr(irProcedure *proc, Ast *expr) {
 
 
 					Type *fet = ir_type(field_expr);
 					Type *fet = ir_type(field_expr);
 					// HACK TODO(bill): THIS IS A MASSIVE HACK!!!!
 					// HACK TODO(bill): THIS IS A MASSIVE HACK!!!!
-					if (is_type_union(ft) && !are_types_identical(fet, ft)) {
-						GB_ASSERT(union_variant_index(ft, fet) > 0);
-
+					if (is_type_union(ft) && !are_types_identical(fet, ft) && !is_type_untyped(fet)) {
 						irValue *gep = ir_emit_struct_ep(proc, v, cast(i32)index);
 						irValue *gep = ir_emit_struct_ep(proc, v, cast(i32)index);
 						ir_emit_store_union_variant(proc, gep, field_expr, fet);
 						ir_emit_store_union_variant(proc, gep, field_expr, fet);
 					} else {
 					} else {