diff options
Diffstat (limited to 'src/Sema.zig')
| -rw-r--r-- | src/Sema.zig | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/Sema.zig b/src/Sema.zig index 3def393dfb..a127031808 100644 --- a/src/Sema.zig +++ b/src/Sema.zig @@ -28769,6 +28769,13 @@ fn resolvePeerTypes( } } }, + .Fn => { + if (!cand_info.mutable and cand_info.pointee_type.zigTypeTag() == .Fn and .ok == try sema.coerceInMemoryAllowedFns(block, chosen_ty, cand_info.pointee_type, target, src, src)) { + chosen = candidate; + chosen_i = candidate_i + 1; + continue; + } + }, else => {}, } }, @@ -28799,6 +28806,11 @@ fn resolvePeerTypes( .Vector => continue, else => {}, }, + .Fn => if (chosen_ty.isSinglePointer() and chosen_ty.isConstPtr() and chosen_ty.childType().zigTypeTag() == .Fn) { + if (.ok == try sema.coerceInMemoryAllowedFns(block, chosen_ty.childType(), candidate_ty, target, src, src)) { + continue; + } + }, else => {}, } |
