]> Nishi Git Mirror - gwion.git/commitdiff
:art: Clean cdef_parent
authorJérémie Astor <fennecdjay@gmail.com>
Sun, 16 May 2021 21:26:11 +0000 (23:26 +0200)
committerJérémie Astor <fennecdjay@gmail.com>
Sun, 16 May 2021 21:26:11 +0000 (23:26 +0200)
src/emit/emit.c
src/parse/check.c
src/parse/scan0.c
src/parse/scan1.c
src/parse/scan2.c

index f66d5888d59395ab15d56f1f93d7659de711f36a..73fdc95c32d8ebd59c416610a00a28fdefb96a8c 100644 (file)
@@ -2419,10 +2419,11 @@ ANN /*static */inline m_bool emit_cdef(const Emitter emit, const Type t) {
 }
 
 ANN static m_bool cdef_parent(const Emitter emit, const Class_Def cdef) {
-  if(cdef->base.tmpl && cdef->base.tmpl->list)
+  const bool tmpl = !!cdef->base.tmpl;
+  if(tmpl)
     CHECK_BB(template_push_types(emit->env, cdef->base.tmpl));
   const m_bool ret = emit_parent(emit, cdef);
-  if(cdef->base.tmpl && cdef->base.tmpl->list)
+  if(tmpl)
     nspc_pop_type(emit->gwion->mp, emit->env->curr);
   return ret;
 }
index 5e6a37f38be4c40de27834c142cac01384daddae..39dd52e7942f7d69840d706201a86c32ac6fa5d5 100644 (file)
@@ -1532,10 +1532,11 @@ ANN static m_bool check_parent(const Env env, const Class_Def cdef) {
 }
 
 ANN static m_bool cdef_parent(const Env env, const Class_Def cdef) {
-  if(cdef->base.tmpl && cdef->base.tmpl->list)
+  const bool tmpl = !!cdef->base.tmpl;
+  if(tmpl)
     CHECK_BB(template_push_types(env, cdef->base.tmpl));
   const m_bool ret = check_parent(env, cdef);
-  if(cdef->base.tmpl && cdef->base.tmpl->list)
+  if(tmpl)
     nspc_pop_type(env->gwion->mp, env->curr);
   return ret;
 }
index 02caef21718a17a522589c2825e4f6a1924441c9..43334f1b8cdf41da4361bcf8e51a51fa20f4c103 100644 (file)
@@ -318,24 +318,25 @@ ANN static inline Type scan0_final(const Env env, Type_Decl *td) {
   ERR_O(td->pos, _("can't inherit from final parent class '%s'\n."), t->name);
 }
 
-ANN static Type get_parent(const Env env, const Class_Def cdef) {
+ANN static Type cdef_parent(const Env env, const Class_Def cdef) {
   if(cflag(cdef, cflag_struct))
     return env->gwion->type[et_compound];
   if(!cdef->base.ext)
     return env->gwion->type[et_object];
   if(tmpl_base(cdef->base.tmpl))
     return get_parent_base(env, cdef->base.ext);
-  if(cdef->base.tmpl)
+  const bool tmpl = !!cdef->base.tmpl;
+  if(tmpl)
     template_push_types(env, cdef->base.tmpl);
   const Type t = scan0_final(env, cdef->base.ext);
-  if(cdef->base.tmpl)
+  if(tmpl)
     nspc_pop_type(env->gwion->mp, env->curr);
   return t ?: (Type)GW_ERROR;
 }
 
 ANN static Type scan0_class_def_init(const Env env, const Class_Def cdef) {
   CHECK_BO(scan0_defined(env, cdef->base.xid, cdef->pos));
-  const Type parent = get_parent(env, cdef);
+  const Type parent = cdef_parent(env, cdef);
   if(parent == (Type)GW_ERROR)
     return NULL;
   const Type t = scan0_type(env, s_name(cdef->base.xid), parent);
index 1bca68e3ae0232b36785513f789cdf39d859d1d1..2b5cfbe52aff8a0a6c8cf8c337dc8bc5febf1cfc 100644 (file)
@@ -649,10 +649,11 @@ ANN static m_bool scan1_parent(const Env env, const Class_Def cdef) {
 }
 
 ANN static m_bool cdef_parent(const Env env, const Class_Def cdef) {
-  if(cdef->base.tmpl && cdef->base.tmpl->list)
+  const bool tmpl = !!cdef->base.tmpl;
+  if(tmpl)
     CHECK_BB(template_push_types(env, cdef->base.tmpl));
   const m_bool ret = scan1_parent(env, cdef);
-  if(cdef->base.tmpl && cdef->base.tmpl->list)
+  if(tmpl)
     nspc_pop_type(env->gwion->mp, env->curr);
   return ret;
 }
index a123bb1b9a0cd1082177ca977b9c72cb36cfb389..1998c93dcaf6c46e7fb6aa9474004cfeffba8e31 100644 (file)
@@ -558,10 +558,11 @@ ANN static m_bool scan2_parent(const Env env, const Class_Def cdef) {
 }
 
 ANN static m_bool cdef_parent(const Env env, const Class_Def cdef) {
-  if(cdef->base.tmpl && cdef->base.tmpl->list)
+  const bool tmpl = !!cdef->base.tmpl;
+  if(tmpl)
     CHECK_BB(template_push_types(env, cdef->base.tmpl));
   const m_bool ret = scan2_parent(env, cdef);
-  if(cdef->base.tmpl && cdef->base.tmpl->list)
+  if(tmpl)
     nspc_pop_type(env->gwion->mp, env->curr);
   return ret;
 }