struct TupleForm_ {
struct Vector_ types;
struct Vector_ offset;
-// Type_List list;
m_uint start;
};
ANN Type tuple_type(const Env, const Vector, const loc_t);
ANN void tuple_info(const Env, Type_Decl*, const Var_Decl);
ANN2(1) TupleForm new_tupleform(MemPool p, const Type parent_type);
-ANN void free_tupleform(MemPool p, const TupleForm tuple);
+ANN void free_tupleform(const TupleForm tuple);
#ifdef __INSTR
INSTR(TupleCtor);
return tuple;
}
-ANN void free_tupleform(MemPool p, const TupleForm tuple) {
+ANN void free_tupleform(const TupleForm tuple) {
vector_release(&tuple->types);
vector_release(&tuple->offset);
}
}
ANN static m_bool match_case_exp(const Env env, Exp e) {
- for(m_uint i = 0; i < map_size(&env->scope->match->map) && e; e = e->next, ++i) {
+ for(m_uint i = 0; i < map_size(&env->scope->match->map); e = e->next, ++i) {
+ if(!e)
+ ERR_B(e->pos, _("no enough to match"))
const Symbol op = case_op(env, e, i);
if(op) {
const Exp base = (Exp)VKEY(&env->scope->match->map, i);