]> Nishi Git Mirror - gwion.git/commitdiff
:bug: Fex bug fixes [AFL]
authorfennecdjay <astor.jeremie@wanadoo.fr>
Sat, 24 Aug 2019 13:33:51 +0000 (15:33 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Sat, 24 Aug 2019 13:33:51 +0000 (15:33 +0200)
src/parse/cpy_ast.c
src/parse/scan1.c
src/parse/scan2.c
src/parse/type_decl.c

index c91ee089c2fda38de9677bb482c25e247232feda..84e3e4921db8169325f8c389328d8b44bc3409c1 100644 (file)
@@ -70,7 +70,8 @@ ANN static ID_List cpy_id_list(MemPool p, const ID_List src) {
   a->xid = src->xid; // 1 
   if(src->next)
     a->next = cpy_id_list(p, src->next); // 1 
-  a->pos = loc_cpy(p, src->pos); // 1 
+  if(src->pos)
+    a->pos = loc_cpy(p, src->pos); // 1 
   return a;
 }
 
index bf3e6bdaa7317aa3dfe2657ffa7aee8371066883..71605cada2304741c6d05964c4f98860ad50faed 100644 (file)
@@ -98,7 +98,7 @@ ANN m_bool scan1_exp_decl(const Env env, const Exp_Decl* decl) {
         CHECK_BB(scan1_exp(env, var->array->exp))
       }
       t = array_type(env, decl->type, var->array->depth);
-    } else  if(GET_FLAG(t, abstract) && !GET_FLAG(decl->td, ref))
+    } else if(GET_FLAG(t, abstract) && !GET_FLAG(decl->td, ref))
       ERR_B(exp_self(decl)->pos, _("Type '%s' is abstract, declare as ref. (use @)"), t->name)
     CHECK_OB(prim_ref(env, t, decl->td))
     //assert(!var->value);
index af3dba5d5103df3ff77bdfa6e81a8cbf38f99dab..1a233f7c6e6e0b3070b815be0d7aadaadf5b074b 100644 (file)
@@ -320,8 +320,7 @@ ANN2(1,2) static Value func_value(const Env env, const Func f,
   if(!overload) {
     ADD_REF(v);
     nspc_add_value(env->curr, f->def->base->xid, v);
-  } else {
-    assert(overload->d.func_ref);
+  } else if(overload->d.func_ref) {
     f->next = overload->d.func_ref->next;
     overload->d.func_ref->next = f;
   }
index dc1ce66eda368dce3621b6e2510c93eaf4d7a027..0d21cd668164e576dde3896e17ae90cc8cecf65b 100644 (file)
@@ -68,7 +68,7 @@ ANN static inline void* type_unknown(const Env env, const ID_List id) {
 
 ANN Type prim_ref(const Env env, const Type t, const Type_Decl* td) {
   if(GET_FLAG(td, ref) && isa(t, t_object) < 0 && isa(t, t_class) < 0)
-    ERR_O(td->xid->pos, _("primitive types cannot be used as reference (@)...\n"))
+    ERR_O(td_pos(td), _("primitive types cannot be used as reference (@)...\n"))
   return t;
 }