m_bool envset_push(struct EnvSet *es, const Type t, const Nspc nspc) {
if (t) {
check(es, t);
- if(es->run && type_global(es->env, t))
- env_push_global(es->env);
+// if(es->run && type_global(es->env, t))
+// env_push_global(es->env);
return es->run ? push(es, t) : GW_OK;
}
if (nspc != es->env->curr) {
ANN2(1) void envset_pop(struct EnvSet *es, const Type t) {
_envset_pop(es, t);
- if(t && type_global(es->env, t))
- env_pop(es->env, es->scope);
+// if(t && type_global(es->env, t))
+// env_pop(es->env, es->scope);
if (es->_ctx) es->env->context = es->_ctx;
if (es->_filename) es->env->name = es->_filename;
}
const size_t tmpl_sz = tmpl_set(info, str);
const m_str base = type2str(env->gwion, info->base, info->td->pos);
return tmpl_sz + tmpl_set(info, base) + 4;
+// return tmpl_sz + tmpl_set(info, info->base->name) + 4;
}
ANEW ANN static Symbol _template_id(const Env env, struct tmpl_info *const info,
if(!td->types) {
const Type new_type = nspc_lookup_type1(env->curr, td->xid);
Type_Decl *new_td = type2td(env->gwion, new_type, td->pos);
- if(!new_td->types)
+ Type_Decl *d = new_td;
+ while(d->next) d = d->next;
+ if(!d->types)
ERR_N(td->pos, _("you must provide template types for type '%s' !!!"), t->name);
- const Type ret = _scan_type(env, t, new_td);
+ const Type ret = _scan_type(env, t, d);
free_type_decl(env->gwion->mp, new_td);
return ret;
}