aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2019-08-08 13:07:05 -0400
committerAndrew Kelley <andrew@ziglang.org>2019-08-08 13:07:05 -0400
commit8be95af48011f71f1902dff4ffbf5ea95cf1bcf4 (patch)
tree699f358122478afdfeabd613dc6734f5dd2ff2ac /src/analyze.cpp
parent8d4cb852856631543aa961a6149b9a22021a1573 (diff)
downloadzig-8be95af48011f71f1902dff4ffbf5ea95cf1bcf4.tar.gz
zig-8be95af48011f71f1902dff4ffbf5ea95cf1bcf4.zip
add compile error for unable to determine async fn frame
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index cf71bd90f3..aa5c3c88f7 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -5198,6 +5198,13 @@ static Error resolve_coro_frame(CodeGen *g, ZigType *frame_type) {
if (callee->body_node == nullptr) {
continue;
}
+ if (callee->anal_state == FnAnalStateProbing) {
+ ErrorMsg *msg = add_node_error(g, fn->proto_node,
+ buf_sprintf("unable to determine async function frame of '%s'", buf_ptr(&fn->symbol_name)));
+ add_error_note(g, msg, call->base.source_node,
+ buf_sprintf("analysis of function '%s' depends on the frame", buf_ptr(&callee->symbol_name)));
+ return ErrorSemanticAnalyzeFail;
+ }
analyze_fn_body(g, callee);
if (callee->anal_state == FnAnalStateInvalid) {