mirror of
https://github.com/ziglang/zig.git
synced 2026-01-20 14:25:16 +00:00
Sema: fix check for whether current AnalUnit is a test function
Closes #21159
This commit is contained in:
parent
c563ba6b15
commit
9ffee5abed
@ -29836,6 +29836,7 @@ fn coerceExtra(
|
||||
if (dest_ty.isGenericPoison()) return inst;
|
||||
const pt = sema.pt;
|
||||
const zcu = pt.zcu;
|
||||
const ip = &zcu.intern_pool;
|
||||
const dest_ty_src = inst_src; // TODO better source location
|
||||
try dest_ty.resolveFields(pt);
|
||||
const inst_ty = sema.typeOf(inst);
|
||||
@ -30458,7 +30459,7 @@ fn coerceExtra(
|
||||
errdefer msg.destroy(sema.gpa);
|
||||
|
||||
const ret_ty_src: LazySrcLoc = .{
|
||||
.base_node_inst = sema.getOwnerFuncDeclInst(),
|
||||
.base_node_inst = ip.getNav(zcu.funcInfo(sema.func_index).owner_nav).srcInst(ip),
|
||||
.offset = .{ .node_offset_fn_type_ret_ty = 0 },
|
||||
};
|
||||
try sema.errNote(ret_ty_src, msg, "'noreturn' declared here", .{});
|
||||
@ -30496,10 +30497,10 @@ fn coerceExtra(
|
||||
|
||||
// Add notes about function return type
|
||||
if (opts.is_ret and
|
||||
!zcu.test_functions.contains(zcu.funcInfo(sema.owner.unwrap().func).owner_nav))
|
||||
!zcu.test_functions.contains(zcu.funcInfo(sema.func_index).owner_nav))
|
||||
{
|
||||
const ret_ty_src: LazySrcLoc = .{
|
||||
.base_node_inst = sema.getOwnerFuncDeclInst(),
|
||||
.base_node_inst = ip.getNav(zcu.funcInfo(sema.func_index).owner_nav).srcInst(ip),
|
||||
.offset = .{ .node_offset_fn_type_ret_ty = 0 },
|
||||
};
|
||||
if (inst_ty.isError(zcu) and !dest_ty.isError(zcu)) {
|
||||
|
||||
@ -0,0 +1,14 @@
|
||||
fn foo() fn () void {
|
||||
return struct {};
|
||||
}
|
||||
comptime {
|
||||
_ = foo();
|
||||
}
|
||||
|
||||
// error
|
||||
// backend=stage2
|
||||
// target=native
|
||||
//
|
||||
// :2:12: error: expected type 'fn () void', found 'type'
|
||||
// :1:10: note: function return type declared here
|
||||
// :5:12: note: called from here
|
||||
Loading…
x
Reference in New Issue
Block a user