Skip to content

Commit

Permalink
Sema: fix check for whether current AnalUnit is a test function
Browse files Browse the repository at this point in the history
Closes #21159
  • Loading branch information
Vexu authored Oct 24, 2024
1 parent c563ba6 commit 9ffee5a
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 3 deletions.
7 changes: 4 additions & 3 deletions src/Sema.zig
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -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", .{});
Expand Down Expand Up @@ -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)) {
Expand Down
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 9ffee5a

Please sign in to comment.