]> Nishi Git Mirror - gwion.git/commitdiff
fixes
authorJérémie Astor <astor.jeremie@wanadoo.fr>
Thu, 21 May 2020 22:09:05 +0000 (00:09 +0200)
committerJérémie Astor <astor.jeremie@wanadoo.fr>
Thu, 21 May 2020 22:09:05 +0000 (00:09 +0200)
src/arg.c
src/emit/emit.c
src/parse/check.c
tests/error/class_inside.gw

index eee2bc16636256052d0726b3c6cd11c800c8d67f..930c73414588d485bcf3f2b9887b35c7aa92c4ec 100644 (file)
--- a/src/arg.c
+++ b/src/arg.c
@@ -178,6 +178,9 @@ ANN static void config_default(const Gwion gwion , Arg* arg) {
 
 ANN m_bool arg_parse(const Gwion gwion, Arg* a) {
   arg_init(a);
+#ifdef __FUZZING
+  return;
+#endif
   config_default(gwion, a);
   return _arg_parse(gwion, a);
 }
index d4da531ae94111aa8a0111b330d45d01458d1a69..9a9813cfefd0195d85259d6bc812929da1ca50e3 100644 (file)
@@ -524,7 +524,6 @@ ANN static m_bool emit_interp(const Emitter emit, const Exp exp) {
       interp_multi(emit, e);
     regseti(emit, (m_uint)e->info->type);
     interp_size(emit, e->info->type);
-//    regseti(emit, (m_uint)isa(e->info->type, emit->gwion->type[et_object]) > 0);
     const m_bool isobj = isa(e->info->type, emit->gwion->type[et_object]) > 0;
     if(isobj) {
       if(!GET_FLAG(e->info->type, force))
index a066bbd250224cd2fb5ca3aaa13292035577dd8e..87a02f76e29850f401c408617739f264286d388d 100644 (file)
@@ -315,7 +315,8 @@ ANN static Type check_prim_id(const Env env, const Symbol *data) {
 ANN static Type check_prim_typeof(const Env env, const Exp *exp) {
   const Exp e = *exp;
   DECL_OO(const Type, t, = check_exp(env, e))
-  return type_class(env->gwion, t);
+  const Type force = force_type(env, t);
+  return type_class(env->gwion, force);
 }
 
 ANN static Type check_prim_interp(const Env env, const Exp* exp) {
index 22afc7512fb81e348712e0e07dcf35a7e6f10ccc..46ffadd3d4b0cd4751c00ef6d24cd9e2552a9701 100644 (file)
@@ -1,4 +1,4 @@
-#! [contains] declared inside itself
+#! [contains] declared inside
 class c {
   c var;
 }