From f661d3404952d33d4cb683899ebd05d4b580b2bc Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 14 May 2020 00:13:26 +0100 Subject: Implement Explicit context creation #639 --- src/check_expr.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/check_expr.cpp') diff --git a/src/check_expr.cpp b/src/check_expr.cpp index d55692a41..159ae5e3a 100644 --- a/src/check_expr.cpp +++ b/src/check_expr.cpp @@ -7724,6 +7724,15 @@ ExprKind check_expr_base_internal(CheckerContext *c, Operand *o, Ast *node, Type return kind; } + if (unparen_expr(c->assignment_lhs_hint) == node) { + c->scope->flags |= ScopeFlag_ContextDefined; + } + + if ((c->scope->flags & ScopeFlag_ContextDefined) == 0) { + error(node, "'context' has not been defined within this scope"); + // Continue with value + } + init_core_context(c->checker); o->mode = Addressing_Context; o->type = t_context; -- cgit v1.2.3