if(tmpl_base(cdef->base.tmpl))
return GW_OK;
const Type t = cdef->base.type;
+ struct Op_Import opi = { .op=insert_symbol("@class_check"), .lhs=t,
+ .data=(uintptr_t)cdef, .pos=cdef->pos };
+ CHECK_OB(op_check(env, &opi))
if(t->info->owner_class)
CHECK_BB(ensure_check(env, t->info->owner_class))
if(tflag(t, tflag_check))
} while(l && (l = op_parent(env, l)));
} while((nspc = nspc->parent));
}
+ // this should be an any case
if(opi->op == insert_symbol(env->gwion->st, "$") && opi->rhs == opi->lhs)
return opi->rhs;
if(opi->op == insert_symbol(env->gwion->st, "@func_check"))
return NULL;
+ if(opi->op == insert_symbol(env->gwion->st, "@class_check"))
+ return env->gwion->type[et_error];
if(opi->op != insert_symbol(env->gwion->st, "@implicit"))
env_err(env, opi->pos, _("%s %s %s: no match found for operator"),
type_name(opi->lhs), s_name(opi->op), type_name(opi->rhs));