From: fennecdjay Date: Tue, 1 Oct 2019 23:56:39 +0000 (+0200) Subject: Revert ":art: Use check_internal" X-Git-Tag: nightly~2198^2~181 X-Git-Url: http://10.10.0.4:5575/?a=commitdiff_plain;h=b98efa163d699fbf7c0454df4ae34725ab34aabe;p=gwion.git Revert ":art: Use check_internal" This reverts commit 934fa2ca46530ed713601573f87cfe2922db517d. --- diff --git a/src/parse/check.c b/src/parse/check.c index 77481f7c..d6e94243 100644 --- a/src/parse/check.c +++ b/src/parse/check.c @@ -28,6 +28,16 @@ ANN static Type check_exp(const Env env, Exp exp); ANN static m_bool check_stmt_list(const Env env, Stmt_List list); ANN m_bool check_class_def(const Env env, const Class_Def class_def); +ANN static m_bool _check_implicit(const Env env, const m_str str, + const Exp e, const Type t) { + struct Implicit imp = { .e=e, .t=t, .pos=e->pos }; + struct Op_Import opi = { .op=insert_symbol(str), .lhs=e->type, + .rhs=t, .data=(uintptr_t)&imp, .pos=e->pos }; + CHECK_OB(op_check(env, &opi)) + e->nspc = env->curr; + return GW_OK; +} + ANN static m_bool check_internal(const Env env, const Symbol sym, const Exp e, const Type t) { struct Implicit imp = { .e=e, .t=t, .pos=e->pos }; @@ -1031,9 +1041,9 @@ ANN static m_bool do_stmt_auto(const Env env, const Stmt_Auto stmt) { } ANN static inline m_bool cond_type(const Env env, const Exp e) { - const Symbol sym = insert_symbol("@repeat"); + const m_str str = "@repeat"; const Type t_int = env->gwion->type[et_int]; - return check_internal(env, sym, e, t_int); + return _check_implicit(env, str, e, t_int); } #define stmt_func_xxx(name, type, prolog, exp) describe_stmt_func(check, name, type, prolog, exp)