diff --git a/src/Sema.zig b/src/Sema.zig index af342a0d04..27c1716c2b 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -25528,9 +25528,7 @@ fn zirFuncFancy(sema: *Sema, block: *Block, inst: Zir.Inst.Index) CompileError!A extra_index += 1; if (extra.data.bits.ret_ty_is_generic) break :blk .generic_poison; - const ret_ty_air_ref = try sema.resolveInst(ret_ty_ref); - const ret_ty_val = try sema.resolveConstDefinedValue(block, ret_src, ret_ty_air_ref, .{ .simple = .function_ret_ty }); - break :blk ret_ty_val.toType(); + break :blk try sema.resolveType(block, ret_src, ret_ty_ref); } else .void; const noalias_bits: u32 = if (extra.data.bits.has_any_noalias) blk: { diff --git a/test/cases/compile_errors/value_as_inline_fn_return_type.zig b/test/cases/compile_errors/value_as_inline_fn_return_type.zig new file mode 100644 index 0000000000..d0d35defa6 --- /dev/null +++ b/test/cases/compile_errors/value_as_inline_fn_return_type.zig @@ -0,0 +1,11 @@ +inline fn a() null { + return null; +} + +pub fn main() void { + _ = a(); +} + +// error +// +// :1:15: error: expected type 'type', found '@TypeOf(null)'