-Subproject commit a35887985a376b7a69196b581ec6663d633edad6
+Subproject commit 1f9df9b1908e4ee132876d20fa7f0ce4b0cbf2f8
CHECK_BB(scan0_class_def_pre(env, cdef))
CHECK_OB((cdef->base.type = scan0_class_def_init(env, cdef)))
if(cdef->body) {
-int call = cdef->tmpl && !cdef->tmpl->base;
-if(call)cdef->tmpl->base = 1;
-// assert(cdef->tmpl->base);
+int call = cdef->tmpl && !cdef->tmpl->call;
+if(call)cdef->tmpl->call = (Type_List)1;
CHECK_BB(env_body(env, cdef, scan0_section))
-if(call)cdef->tmpl->base = NULL;
+if(call)cdef->tmpl->call = NULL;
}
(void)mk_class(env, cdef->base.type);
if(GET_FLAG(cdef, global))
ANN static inline m_int _push(const Env env, const Class_Def c) {
const m_uint scope = env_push_type(env, c->base.type);
if(c->tmpl) {
- if(!c->tmpl->base)
+ if(!c->tmpl->call)
ERR_B(c->pos,
"you must provide template types for type '%s'", s_name(c->base.xid))
- if(c->tmpl->base != 1)
- CHECK_BB(template_push_types(env, c->tmpl->list.list, c->tmpl->base))
+ if(c->tmpl->call != (Type_List)1)
+ CHECK_BB(template_push_types(env, c->tmpl->list.list, c->tmpl->call))
}
return scope;
}
ANN static inline void _pop(const Env e, const Class_Def c, const m_uint s) {
if(c->tmpl) {
- if(c->tmpl->base != 1)
+ if(c->tmpl->call != (Type_List)1)
nspc_pop_type(e->gwion->mp, e->curr);
else
- c->tmpl->base = NULL;
+ c->tmpl->call = NULL;
}
env_pop(e, s);
}
if(a->base.type)
return a->base.type;
a->tmpl = new_tmpl_class(env->gwion->mp, get_total_type_list(env, t), 0);
- a->tmpl->base = type->types;
+ a->tmpl->call = type->types;
CHECK_BO(scan0_class_def(env, a))
SET_FLAG(a->base.type, template | ae_flag_ref);