]> Nishi Git Mirror - gwion.git/commitdiff
:art: small template fix 237/head
authorJérémie Astor <fennecdjay@gmail.com>
Thu, 17 Mar 2022 11:42:14 +0000 (12:42 +0100)
committerJérémie Astor <fennecdjay@gmail.com>
Thu, 17 Mar 2022 11:42:14 +0000 (12:42 +0100)
src/lib/object_op.c

index e511e46d6700348c3d01ae4de5c49ecbddb215b2..b704b764477454a29b2f9dc87b04337197711b73 100644 (file)
@@ -73,6 +73,7 @@ ANN /*static*/ Type scan_class(const Env env, const Type t,
 
 static OP_CHECK(opck_struct_scan) {
   struct TemplateScan *ts = (struct TemplateScan *)data;
+  if(ts->t->info->cdef->base.tmpl->call) return ts->t;
   return scan_class(env, ts->t, ts->td) ?: env->gwion->type[et_error];
 }
 
@@ -340,7 +341,7 @@ ANN bool tmpl_global(const Env env, Type_List tl) {
 ANN Type scan_class(const Env env, const Type t, const Type_Decl *td) {
   struct tmpl_info info = {
       .base = t, .td = td, .list = t->info->cdef->base.tmpl->list};
-  const Type exists = t->info->cdef->base.tmpl->call ? t : tmpl_exists(env, &info);
+  const Type exists = tmpl_exists(env, &info);
   if (exists) return exists != env->gwion->type[et_error] ? exists : NULL;
   struct EnvSet es    = {.env   = env,
                       .data  = env,