]> Nishi Git Mirror - gwion.git/commitdiff
:bug: Fix foreach in the case of an inner type
authorJérémie Astor <fennecdjay@gmail.com>
Tue, 9 Feb 2021 12:30:48 +0000 (13:30 +0100)
committerJérémie Astor <fennecdjay@gmail.com>
Tue, 9 Feb 2021 12:30:48 +0000 (13:30 +0100)
src/parse/check.c

index be94441041be4e9c2932ac9c49c7ed3d920553dd..af106694ffcc18ed50ee55637f065b2e36c9b36b 100644 (file)
@@ -919,8 +919,9 @@ ANN static inline Type foreach_type(const Env env, const Exp exp) {
 ANN static m_bool do_stmt_each(const Env env, const Stmt_Each stmt) {
   DECL_OB(const Type, base, = foreach_type(env, stmt->exp))
   CHECK_BB(ensure_traverse(env, base))
-  char c[15 + strlen(base->name)];
-  sprintf(c, "@Foreach:[%s]", base->name);
+  const m_str basename = type2str(env->gwion, base, stmt->exp->pos);
+  char c[15 + strlen(basename)];
+  sprintf(c, "@Foreach:[%s]", basename);
   const Type ret = str2type(env->gwion, c, stmt->exp->pos);
   if(base->array_depth)
     set_tflag(ret, tflag_typedef);