authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-08-03 20:33:16-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2019-08-03 20:33:16-04:00
log12924477a50d37bf055fd5fc1cdf0fd77684a472
tree13c3b0e0304da5afc98f7eab745fa5ff766af630
parent87710a1cc2c4d0e7ecc309e430f7d33baadc5f02
signaturelock-open Commit is signed but in an unrecognized format.

fix regression in calling extern functions


2 files changed, 7 insertions(+), 4 deletions(-)

BRANCH_TODO+4-4
......@@ -1,13 +1,13 @@
1 * @asyncCall with an async function pointer
1 * suspension points inside branching control flow
2 * go over the commented out tests
3 * error return tracing
24 * compile error for error: expected anyframe->T, found 'anyframe'
35 * compile error for error: expected anyframe->T, found 'i32'
46 * await of a non async function
57 * async call on a non async function
68 * cancel
79 * defer and errdefer
8 * safety for double await
910 * implicit cast of normal function to async function should be allowed when it is inferred to be async
10 * go over the commented out tests
1111 * revive std.event.Loop
1212 * @typeInfo for @Frame(func)
1313 * peer type resolution of *@Frame(func) and anyframe
......@@ -15,7 +15,6 @@
1515 * returning a value from within a suspend block
1616 * make resuming inside a suspend block, with nothing after it, a must-tail call.
1717 * make sure there are safety tests for all the new safety features (search the new PanicFnId enum values)
18 * error return tracing
1918 * compile error for casting a function to a non-async function pointer, but then later it gets inferred to be an async function
2019 * compile error for copying a frame
2120 * compile error for resuming a const frame pointer
......@@ -33,3 +32,4 @@
3332 - suspend
3433 - resume
3534 - anyframe, anyframe->T
35 * safety for double await
src/analyze.cpp+3
......@@ -5182,6 +5182,9 @@ static Error resolve_coro_frame(CodeGen *g, ZigType *frame_type) {
51825182 buf_sprintf("function is not comptime-known; @asyncCall required"));
51835183 return ErrorSemanticAnalyzeFail;
51845184 }
5185 if (callee->body_node == nullptr) {
5186 continue;
5187 }
51855188
51865189 analyze_fn_body(g, callee);
51875190 if (callee->anal_state == FnAnalStateInvalid) {