memset(&gwi, 0, sizeof(struct Gwi_));
gwi.gwion = vm->gwion;
gwi.loc = new_loc(vm->gwion->mp, 0);
- CHECK_BB(import_core_libs(&gwi))
+ GWI_BB(import_core_libs(&gwi))
vm->gwion->env->name = "[imported]";
for(m_uint i = 0; i < vector_size(plug_dirs); ++i) {
m_bool (*import)(Gwi) = (m_bool(*)(Gwi))vector_at(plug_dirs, i);
if(GET_FLAG(t, builtin))
SET_FLAG(a->base.type, builtin);
CHECK_BO(scan1_cdef(env, a))
- if(t->nspc->dtor) {
- a->base.type->nspc->dtor = t->nspc->dtor;
- SET_FLAG(a->base.type, dtor);
- ADD_REF(t->nspc->dtor)
- }
return a->base.type;
} else if(type->types) { // TODO: clean me
if(isa(t, t_function) > 0 && t->e->d.func->def->base->tmpl) {
--- /dev/null
+class B {
+
+}
+class <~A~> C extends B {
+
+}
+class <~A,B~> D extends <~A~>C {
+ class <~A~>Child {
+ A a;
+ }
+ <~A~>Child child;
+}
+
+<~int~>D d;
--- /dev/null
+typedef void t_ptr<~A~>();
+
+t_ptr ptr;
+
+fun void test<~A~>() {
+ <<< __func_ >>>;
+}
+
+test @=> ptr;
+ptr<~int~>();
+
+
+#!typedef <~int~>t_ptr B;
+#!B B;
+#!<<<b>>>;
+#!<<< B<~int~>() >>>;
--- /dev/null
+typedef void ptr_t<~A~>(myPtr ptr);
+<~ <~A~> Ptr~>ptr_t t;
# memoization
n=$((n+1))
-run "$n" "memoize" "-z2 tests/new/pure.gw" "file"
+run "$n" "memoize" "-z2 tests/new/pure*.gw" "file"
# (fake) module arg
n=$((n+1))