]> Nishi Git Mirror - gwion.git/commitdiff
:art: Remove get_func
authorfennecdjay <astor.jeremie@wanadoo.fr>
Wed, 2 Oct 2019 22:44:45 +0000 (00:44 +0200)
committerfennecdjay <astor.jeremie@wanadoo.fr>
Wed, 2 Oct 2019 22:44:45 +0000 (00:44 +0200)
include/env.h
src/emit/emit.c
src/parse/check.c
src/parse/func.c
src/parse/scan2.c

index 3bba04b3a4ff69f4e09854ef61a78b759527daac..8f214540e58983518a43b1564ad1855486b8447f 100644 (file)
@@ -49,7 +49,6 @@ ANN void env_add_type(const Env, const Type);
 ANN Type find_type(const Env, ID_List);
 ANN m_bool already_defined(const Env env, const Symbol s, const loc_t pos);
 ANN m_bool type_engine_check_prog(const Env, const Ast);
-ANN Func get_func(const Env, const Func_Def);
 ANN m_bool traverse_func_template(const Env, const Func_Def);
 ANN ID_List str2list(const Env, const m_str path, m_uint* array_depth);
 ANN2(1,3) void env_err(const Env, const struct YYLTYPE *pos, const m_str fmt, ...);
index 58b0460fba1bbe6e6d30a5f9768013957bad44ef..192b100fa296e4ec1d16ea916e9474f262e73482 100644 (file)
@@ -1804,7 +1804,7 @@ ANN static m_bool tmpl_rettype(const Emitter emit, const Func_Def fdef) {
 }
 
 ANN static m_bool emit_func_def(const Emitter emit, const Func_Def fdef) {
-  const Func func = get_func(emit->env, fdef);
+  const Func func = fdef->base->func;
   const Func former = emit->env->func;
   if(tmpl_base(fdef->base->tmpl))
     return GW_OK;
index 431a4acc0264ccfb19097b3b17949e49c630a5d6..007b0c072e1088c43d19eeecd13d059954608286 100644 (file)
@@ -1353,7 +1353,7 @@ ANN m_bool _check_func_def_tmpl(const Env env, const Func_Def fdef) {
 }
 
 ANN m_bool check_func_def(const Env env, const Func_Def fdef) {
-  const Func func = get_func(env, fdef);
+  const Func func = fdef->base->func;
   assert(func == fdef->base->func);
   if(tmpl_base(fdef->base->tmpl))
     return env->class_def ? check_parent_match(env, fdef) : 1;
index a46a218c51ae0b6e71d9623b9e9718cdc1b0958c..1e42b9c23aea2a1b1908d06a3c368eafc44dcba6 100644 (file)
@@ -31,20 +31,6 @@ ANN Func new_func(MemPool p, const m_str name, const Func_Def def) {
 #include "type.h"
 #include "vm.h"
 #include "gwion.h"
-ANN Func get_func(const Env env, const Func_Def def) {
-  DECL_OO(Func, f, = def->base->func)
-  m_str end = strrchr(f->name, '@'); // test end cause some template func do not have @x@env->curr->name
-  if(end && env->class_def && GET_FLAG(env->class_def, template)) {
-    ++end;
-    const size_t len = strlen(f->name) - strlen(end);
-    const size_t elen = strlen(env->class_def->name);
-    char c[len + elen + 1];
-    memcpy(c, f->name, len);
-    strcpy(c + len, env->class_def->name);
-    return nspc_lookup_func0(env->class_def->nspc, insert_symbol(env->gwion->st, c));
-  }
-  return f;
-}
 
 ANN2(1,2) Symbol func_symbol(const Env env, const m_str nspc, const m_str base,
     const m_str tmpl, const m_uint i) {
index 9056c2455ddd077df28508168510bce1aa8c2450..ea00c45279bac6d1380fb1094d8714865cfd5b22 100644 (file)
@@ -505,7 +505,7 @@ ANN2(1,2) m_bool scan2_fdef(const Env env, const Func_Def f, const Value overloa
   const m_str name = func_name(env, f, overload ?: NULL);
   if((m_int)name <= GW_OK)
     return (m_bool)(m_uint)name;
-  const Func base = get_func(env, f);
+  const Func base = f->base->func;
   if(!base)
     CHECK_OB(func_create(env, f, overload, name))
   else