aboutsummaryrefslogtreecommitdiff
path: root/src/analyze.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/analyze.cpp')
-rw-r--r--src/analyze.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/analyze.cpp b/src/analyze.cpp
index d19bc56143..2e3df10a81 100644
--- a/src/analyze.cpp
+++ b/src/analyze.cpp
@@ -163,6 +163,13 @@ ScopeDefer *create_defer_scope(AstNode *node, Scope *parent) {
return scope;
}
+ScopeDeferExpr *create_defer_expr_scope(AstNode *node, Scope *parent) {
+ assert(node->type == NodeTypeDefer);
+ ScopeDeferExpr *scope = allocate<ScopeDeferExpr>(1);
+ init_scope(&scope->base, ScopeIdDeferExpr, node, parent);
+ return scope;
+}
+
Scope *create_var_scope(AstNode *node, Scope *parent, VariableTableEntry *var) {
ScopeVarDecl *scope = allocate<ScopeVarDecl>(1);
init_scope(&scope->base, ScopeIdVarDecl, node, parent);
@@ -2183,6 +2190,7 @@ FnTableEntry *scope_get_fn_if_root(Scope *scope) {
return nullptr;
case ScopeIdDecls:
case ScopeIdDefer:
+ case ScopeIdDeferExpr:
case ScopeIdVarDecl:
case ScopeIdCImport:
case ScopeIdLoop: