]> Nishi Git Mirror - gwion.git/commitdiff
:art: Clean
authorfennecdjay <fennecdjay@gmail.com>
Tue, 9 Aug 2022 02:17:08 +0000 (04:17 +0200)
committerfennecdjay <fennecdjay@gmail.com>
Tue, 9 Aug 2022 02:17:08 +0000 (04:17 +0200)
src/lib/opfunc.c
src/parse/check.c
src/parse/scan1.c

index 50cb17eff3450ce66d57e84255ad861f5b1f9131..ab43adcd378493ad4322ac3faedc6d4594665681 100644 (file)
@@ -118,7 +118,7 @@ OP_CHECK(opck_new) {
   Exp_Unary *unary = (Exp_Unary *)data;
   const Array_Sub array = unary->ctor.td->array;
   DECL_ON(const Type, t, = known_type(env, unary->ctor.td));
-  if(array) {
+  if(array && !unary->ctor.exp) {
     const Type base = array_base(t);
     if(GET_FLAG(base, abstract)) CHECK_BN(abstract_array(env, array));
   }
index 7dafbd90a1cbd8e3eb86c4d1108010703226cc09..455ab1470ec88549a01aadd4059471e71cf98636 100644 (file)
@@ -966,7 +966,6 @@ ANN static Type check_exp_binary(const Env env, const Exp_Binary *bin) {
   }
   if(bin->rhs->exp_type == ae_exp_call && !bin->rhs->d.exp_call.tmpl)
     bin->rhs->d.exp_call.other = bin->lhs;
-  const m_uint scope = env->scope->depth;
   CHECK_OO(check_exp(env, bin->rhs));
   if (is_auto) {
     assert(bin->rhs->type == bin->lhs->type);
index a8fd54884a29fa57693476cce45bc00619b8db7e..caa6b2720f029f614b92f595aa2b8af127946a21 100644 (file)
@@ -118,7 +118,7 @@ ANN static m_bool scan1_decl(const Env env, Exp_Decl *const decl) {
       ERR_B(decl->td->pos, _("arrays with no expressions should be declared `late`"));
     if (GET_FLAG(decl->td, late) && decl->td->array->exp)
       ERR_B(decl->td->array->exp->pos, _("late array should have no size"));
-    if (GET_FLAG(base, abstract)) CHECK_BB(abstract_array(env, decl->td->array));
+    if (!decl->args && GET_FLAG(base, abstract)) CHECK_BB(abstract_array(env, decl->td->array));
   }
   const Value v = vd->value =
       vd->value ?: new_value(env, t, s_name(vd->xid), vd->pos);