aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
authorVexu <git@vexu.eu>2020-03-09 12:31:36 +0200
committerVexu <git@vexu.eu>2020-03-09 12:33:24 +0200
commit3618256c97a9988f7d623eeabb667010ca30656f (patch)
tree0e6e0d8f3fc958809ffe9ea007416738d136c032 /src/analyze.cpp
parent6f8d732599461aa816f545b658a068eceb6ac9bc (diff)
downloadzig-3618256c97a9988f7d623eeabb667010ca30656f.tar.gz
zig-3618256c97a9988f7d623eeabb667010ca30656f.zip
implement noasync scopes
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index c7bd7094d7..d924002426 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -106,6 +106,7 @@ static ScopeExpr *find_expr_scope(Scope *scope) {
case ScopeIdDecls:
case ScopeIdFnDef:
case ScopeIdCompTime:
+ case ScopeIdNoAsync:
case ScopeIdVarDecl:
case ScopeIdCImport:
case ScopeIdSuspend:
@@ -226,6 +227,12 @@ Scope *create_comptime_scope(CodeGen *g, AstNode *node, Scope *parent) {
return &scope->base;
}
+Scope *create_noasync_scope(CodeGen *g, AstNode *node, Scope *parent) {
+ ScopeNoAsync *scope = heap::c_allocator.create<ScopeNoAsync>();
+ init_scope(g, &scope->base, ScopeIdNoAsync, node, parent);
+ return &scope->base;
+}
+
Scope *create_typeof_scope(CodeGen *g, AstNode *node, Scope *parent) {
ScopeTypeOf *scope = heap::c_allocator.create<ScopeTypeOf>();
init_scope(g, &scope->base, ScopeIdTypeOf, node, parent);
@@ -3755,6 +3762,7 @@ void scan_decls(CodeGen *g, ScopeDecls *decls_scope, AstNode *node) {
case NodeTypeCompTime:
preview_comptime_decl(g, node, decls_scope);
break;
+ case NodeTypeNoAsync:
case NodeTypeParamDecl:
case NodeTypeReturnExpr:
case NodeTypeDefer:
@@ -6176,6 +6184,7 @@ static void mark_suspension_point(Scope *scope) {
case ScopeIdDecls:
case ScopeIdFnDef:
case ScopeIdCompTime:
+ case ScopeIdNoAsync:
case ScopeIdCImport:
case ScopeIdSuspend:
case ScopeIdTypeOf: