From 3618256c97a9988f7d623eeabb667010ca30656f Mon Sep 17 00:00:00 2001 From: Vexu Date: Mon, 9 Mar 2020 12:31:36 +0200 Subject: implement noasync scopes --- src/analyze.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/analyze.cpp') 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(); + 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(); 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: -- cgit v1.2.3