]> Nishi Git Mirror - gwion.git/commitdiff
:art: Remove pos from Implicit
authorfennecdjay <astor.jeremie@wanadoo.fr>
Tue, 1 Oct 2019 21:05:18 +0000 (23:05 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Tue, 1 Oct 2019 21:05:18 +0000 (23:05 +0200)
include/operator.h
src/emit/emit.c
src/lib/object.c
src/parse/check.c

index f401301d65a9ec1909d59a801e6bca631bc2b026..c3b0abdc0518177d84de109640073f072980fcad 100644 (file)
@@ -19,7 +19,6 @@ struct Op_Import {
 struct Implicit {
   Exp e;
   Type  t;
-  loc_t pos;
 };
 ANN m_bool add_op(const Gwion gwion, const struct Op_Import*);
 ANN Type   op_check(const Env, struct Op_Import*);
index 7f8aabf7074e67ae4a8599dab9b21c38a409ab53..568a533ea180c364109ad1d22d5809ca9be6ea93 100644 (file)
@@ -1102,7 +1102,7 @@ ANN static m_bool emit_exp_unary(const Emitter emit, const Exp_Unary* unary) {
 
 ANN static m_bool emit_implicit_cast(const Emitter emit,
     const restrict Exp  from, const restrict Type to) {
-  const struct Implicit imp = { from, to, from->pos };
+  const struct Implicit imp = { .e=from, .t=to };
   struct Op_Import opi = { .op=insert_symbol("@implicit"), .lhs=from->type, .rhs=to, .data=(m_uint)&imp };
   return op_emit_bool(emit, &opi);
 }
@@ -1424,8 +1424,6 @@ ANN static m_bool emit_union_def(const Emitter emit, const Union_Def udef) {
   emit_union_offset(udef->l, udef->o);
   if(udef->xid || udef->type_xid || global)
     emit_pop(emit, scope);
-puts(emit->env->name);
-//  SET_FLAG(udef->xid ? udef->value->type : udef->type, emit);
   return GW_OK;
 }
 
index 14da66cc521ceae19ab5344d50754fce89e2e998..1ab09dfe406184cf42221cb5ce1d307abaa7741d 100644 (file)
@@ -198,7 +198,7 @@ static OP_CHECK(opck_implicit_null2obj) {
   const struct Implicit* imp = (struct Implicit*)data;
   const Type l = imp->e->type;
   const Type r = imp->t;
-  if(check_nonnull(env, l, r, "implicitly cast", imp->pos) == env->gwion->type[et_null])
+  if(check_nonnull(env, l, r, "implicitly cast", imp->e->pos) == env->gwion->type[et_null])
     return env->gwion->type[et_null];
   imp->e->cast_to = r;
   return imp->t;
index 17e34fbbd15fcac6aebe673dd91a3bf329573c15..21b79e2b4e874c0975bb0d392b5f5bcf700a1209 100644 (file)
@@ -30,7 +30,7 @@ ANN m_bool check_class_def(const Env env, const Class_Def class_def);
 
 ANN static m_bool check_implicit(const Env env, const Symbol sym,
       const Exp e, const Type t) {
-  struct Implicit imp = { .e=e, .t=t, .pos=e->pos };
+  struct Implicit imp = { .e=e, .t=t };
   struct Op_Import opi = { .op=sym, .lhs=e->type,
         .rhs=t, .data=(uintptr_t)&imp, .pos=e->pos };
   CHECK_OB(op_check(env, &opi))