}
}
-ANN m_bool push(struct EnvSet *es, const Type t) {
+ANN static m_bool push(struct EnvSet *es, const Type t) {
if(t->e->owner_class)
CHECK_BB(push(es, t->e->owner_class))
if(!(t->flag & es->flag))
SET_FLAG(a->base.type, template);
if(GET_FLAG(t, builtin))
SET_FLAG(a->base.type, builtin);
- CHECK_BO(scan1_cdef(env, a))
return a->base.type;
}
if(udef->xid) {
if(env->class_def)
(!GET_FLAG(udef, static) ? decl_member : decl_static)(env, udef->value);
- } else if(env->class_def) {
- if(!GET_FLAG(udef, static))
- udef->o = env->class_def->nspc->info->offset;
- else {
- udef->o = env->class_def->nspc->info->class_data_size;
- env->class_def->nspc->info->class_data_size += SZ_INT;
+ else if(env->class_def) {
+ if(!GET_FLAG(udef, static))
+ udef->o = env->class_def->nspc->info->offset;
+ else {
+ udef->o = env->class_def->nspc->info->class_data_size;
+ env->class_def->nspc->info->class_data_size += SZ_INT;
+ }
}
}
}
+
ANN m_bool check_union_def(const Env env, const Union_Def udef) {
if(tmpl_base(udef->tmpl)) // there's a func for this
return GW_OK;
if(add) {
mk_class(env, t);
}
- SET_FLAG(t, union);
+ SET_FLAG(t, union | ae_flag_scan0);
return t;
}
CHECK_BB(ret)
if(GET_FLAG(cdef, global) || (cdef->base.tmpl && !cdef->base.tmpl->call))
c->base.type = cdef->base.type;
+ SET_FLAG(cdef->base.type, scan0);
return GW_OK;
}
SET_FLAG(decl.td, member);
else if(GET_FLAG(udef, static))
SET_FLAG(decl.td, static);
-
if(udef->tmpl && udef->tmpl->call)
CHECK_BB(template_push_types(env, udef->tmpl))
+ SET_FLAG(decl.td, ref);
const m_bool ret = scan1_exp(env, l->self);
if(udef->tmpl && udef->tmpl->call)
nspc_pop_type(env->gwion->mp, env->curr);