diff --git a/src/Sema.zig b/src/Sema.zig index 657ca331b2..bc861f170a 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -24477,7 +24477,7 @@ fn coerceExtra( return block.addBitCast(dest_ty, inst); } - const is_undef = if (maybe_inst_val) |val| val.isUndef() else false; + const is_undef = inst_ty.zigTypeTag() == .Undefined; switch (dest_ty.zigTypeTag()) { .Optional => optional: { diff --git a/test/cases/compile_errors/only_untyped_undef_coerces_to_all_types.zig b/test/cases/compile_errors/only_untyped_undef_coerces_to_all_types.zig new file mode 100644 index 0000000000..091c51ff3b --- /dev/null +++ b/test/cases/compile_errors/only_untyped_undef_coerces_to_all_types.zig @@ -0,0 +1,11 @@ +pub export fn entry() void { + const x: []u8 = undefined; + const y: f32 = x; + _ = y; +} + +// error +// backend=stage2 +// target=native +// +// :3:20: error: expected type 'f32', found '[]u8'