]> Nishi Git Mirror - gwion.git/commitdiff
:bug: Fix nonnull
authorfennecdjay <astor.jeremie@wanadoo.fr>
Tue, 27 Aug 2019 08:14:40 +0000 (10:14 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Tue, 27 Aug 2019 08:14:40 +0000 (10:14 +0200)
src/parse/scanx.c
src/parse/type_decl.c

index 1bcf1c5104ee063d1634006edb130b659de00fab..5ef2312026820d982d61800a4fbda35b768c6a07 100644 (file)
@@ -56,7 +56,9 @@ scanx_ext(const Env e, const Class_Def c, const _exp_func f, void* d) {
 #undef scanx_parent
 __attribute__((returns_nonnull))
 static inline Type get_type(const Type t) {
-  return !t->array_depth ? t : array_base(t);
+//  return !t->array_depth ? t : array_base(t);
+  const Type type = !t->array_depth ? t : array_base(t);
+  return !GET_FLAG(type, nonnull) ? type : type->e->parent;
 }
 
 __attribute__((returns_nonnull))
index 0d21cd668164e576dde3896e17ae90cc8cecf65b..cf704ace41abed08715060b5d112099f1e7fef93 100644 (file)
@@ -25,6 +25,7 @@ ANN Type type_decl_resolve(const Env env, const Type_Decl* td) {
     if(exist)
       return exist;
     const Type t = type_copy(env->gwion->mp, ret);
+    t->e->parent = ret->e->parent;
     if(t->nspc)
       ADD_REF(t->nspc)
     t->name = s_name(sym);