aboutsummaryrefslogtreecommitdiff
path: root/src/check_expr.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2021-02-23 13:10:23 +0000
committergingerBill <bill@gingerbill.org>2021-02-23 13:10:23 +0000
commit28ed310f317d48835f089b6a6102259696b0f84c (patch)
tree80ce57ddd4d997d75458c108ce858fac24f10349 /src/check_expr.cpp
parenta652c24ac3c8e592d413b3d3123e750fcaf314db (diff)
Remove `"pure"` and `"pure_none"` calling conventions
Diffstat (limited to 'src/check_expr.cpp')
-rw-r--r--src/check_expr.cpp29
1 files changed, 6 insertions, 23 deletions
diff --git a/src/check_expr.cpp b/src/check_expr.cpp
index e17d23ed9..42e434f85 100644
--- a/src/check_expr.cpp
+++ b/src/check_expr.cpp
@@ -1162,11 +1162,6 @@ Entity *check_ident(CheckerContext *c, Operand *o, Ast *n, Type *named_type, Typ
if (e->flags & EntityFlag_Value) {
o->mode = Addressing_Value;
}
- if (c->curr_proc_calling_convention == ProcCC_Pure) {
- if (e->scope->flags & (ScopeFlag_Global|ScopeFlag_File|ScopeFlag_Pkg)) {
- error(n, "Global variables are not allowed within a \"pure\" procedure, got '%.*s'", LIT(e->token.string));
- }
- }
break;
case Entity_Procedure:
@@ -7816,14 +7811,6 @@ ExprKind check_call_expr(CheckerContext *c, Operand *operand, Ast *call, Ast *pr
}
}
- {
- if (c->curr_proc_calling_convention == ProcCC_Pure) {
- if (pt->kind == Type_Proc && pt->Proc.calling_convention != ProcCC_Pure && pt->Proc.calling_convention != ProcCC_PureNone) {
- error(call, "Only \"pure\" procedure calls are allowed within a \"pure\" procedure");
- }
- }
- }
-
#if 0
if (pt->kind == Type_Proc && pt->Proc.calling_convention == ProcCC_Odin) {
init_core_context(c->checker);
@@ -8168,17 +8155,13 @@ ExprKind check_expr_base_internal(CheckerContext *c, Operand *o, Ast *node, Type
error(node, "'context' is only allowed within procedures %p", c->curr_proc_decl);
return kind;
}
- if (c->curr_proc_calling_convention == ProcCC_Pure) {
- error(node, "'context' is not allowed within a \"pure\" procedure");
- } else {
- if (unparen_expr(c->assignment_lhs_hint) == node) {
- c->scope->flags |= ScopeFlag_ContextDefined;
- }
+ 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
- }
+ 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);