]> Nishi Git Mirror - gwion.git/commitdiff
some cleaning
authorJérémie Astor <astor.jeremie@wanadoo.fr>
Fri, 6 Mar 2020 13:10:01 +0000 (14:10 +0100)
committerJérémie Astor <astor.jeremie@wanadoo.fr>
Fri, 6 Mar 2020 13:10:01 +0000 (14:10 +0100)
72 files changed:
examples/class_spork_exp.gw
examples/empty_string.gw
examples/fork.gw
examples/in_class_class.gw
examples/int.gw
examples/op.gw
examples/spork_exp.gw
examples/string.gw
src/emit/emit.c
src/lib/tuple.c
src/parse/check.c
tests/bug/Tester.gw
tests/bug/dot_member_func.gw
tests/bug/play_with_str.gw
tests/bug/ugen.gw
tests/error/array_ref_exp.gw
tests/error/connect_except.gw
tests/error/empty_obj_data.gw
tests/error/ev.gw
tests/error/nonnull_class_extend.gw
tests/nonnull/cast_non_null.gw
tests/nonnull/cast_non_null2.gw
tests/nonnull/dynamic_implicit_nonnull.gw
tests/nonnull/nonnull2nullable.gw
tests/nonnull/nonnull_assign_nonnull.gw
tests/nonnull/nonnull_at_nonnull.gw
tests/nonnull/nonnull_cast_nonnull.gw
tests/nonnull/nonnull_decl.gw
tests/nonnull/nonnull_decl_ref_assign.gw
tests/nonnull/nonnull_err_cast_dynamic.gw
tests/nonnull/nonnull_err_dynamic.gw
tests/nonnull/nonnull_err_static_cast.gw
tests/nonnull/nonnull_impl_nonnull.gw
tests/nonnull/nonnull_implicit_nonnull.gw
tests/nonnull/normal_at_nonnull.gw
tests/nonnull/normal_cast_nonnull.gw
tests/nonnull/normal_impl_nonnull.gw
tests/nonnull/null_at_nonnull.gw
tests/nonnull/null_cast_nonnull.gw
tests/nonnull/null_impl_nonnull.gw
tests/nonnull/ref.gw
tests/nonnull/ref_at_nonnull.gw
tests/nonnull/ref_cast_nonnull.gw
tests/nonnull/ref_impl_nonnull.gw
tests/nonnull/ref_nonnull.gw
tests/nonnull/static_implicit_nonnull.gw
tests/nonnull/void_nonnull.gw
tests/tree/auto_array.gw
tests/tree/auto_fun.gw
tests/tree/call_nonnull.gw
tests/tree/fork_join.gw
tests/tree/fork_join2.gw
tests/tree/new.gw
tests/tree/set_obj.gw
tests/tree/shredule_test.gw
tests/tree/vararg_assign.gw
tests/tuple/array_tuple_array.gw
tests/tuple/object2tuple.gw
tests/tuple/object2tuple_err.gw
tests/tuple/object2tuple_err2.gw
tests/tuple/tupl_decl.gw
tests/tuple/tuple.gw
tests/tuple/tuple_at.gw
tests/tuple/tuple_at_err.gw
tests/tuple/tuple_cast.gw
tests/tuple/tuple_cast2.gw
tests/tuple/tuple_decl.gw
tests/tuple/tuple_empty.gw
tests/tuple/tuple_member_float.gw
tests/tuple/tuple_skip2.gw
tests/tuple/tuple_undefined.gw
tests/tuple/tuple_unknown.gw

index 5dc34ac431f54d5264154b13bd6352503a810a1b..5a0d897c8823a9a8d9ed247dc04f418a1e0577f5 100644 (file)
@@ -7,7 +7,7 @@ class C
     second => now;
     string s;
     <<<   "test spork exp."  >>>;
-  } @=> Shred @shred;
+  } @=> Shred ref shred;
 }
 
 C c;
index 35e4ed412c039128f91e5da6ab810759acb9a95c..7f67f5c42f52b209c2ea07d484dbdb8592566263 100644 (file)
@@ -1,2 +1,2 @@
-"test" => string @s;
+"test" => string ref s;
 <<<  s  >>>;
index e423f54dc6df7faf84dd64cd661d9d384bca93b0..63256ea8a27b67e50cd52fec6d381005a205c9d6 100644 (file)
@@ -3,7 +3,7 @@ fork {
   12::samp => now;
   me.test_cancel();
   <<< "stop" >>>;
-} @=> Fork @f;
+} @=> Fork ref f;
 
 1 => f.set_cancel;
 2::samp => now;
index 8b68810be8d31e032acf7f25106b87df2fd08196..1a1a21ebb3230641be6312806f82160e52775bd2 100644 (file)
@@ -5,6 +5,6 @@ class C {
 
 C c;
 C->D d;
-C->D @d_ref;
+C->D ref d_ref;
 
 <<<  c, " ", d, d_ref  >>>;
index e9d4db814344358fec3d6e6fff14897e0568b878..39f164c67b75e0f0a7b02356893affe9bd125ca0 100644 (file)
@@ -67,7 +67,7 @@ int a;
 
 #!testing operator for Object and 
 {
-       Object  @variable1;
+       Object  ref variable1;
 <<<  variable1!= null >>>;
 }
 #!testing operator for int and int
index 549762836afa513939a80a9d11874227af19e4db..5183280769c8666db06186d8135cbac5cef4371b 100644 (file)
@@ -5,12 +5,12 @@ operator => void (Object o, int i) {
 }
 
 class C {
-       Object @ref;
+       Object ref ref_object;
 }
 
 #!! assign object to C.ref
 operator => void (Object o, C c) {
-  o @=> c.ref;
+  o @=> c.ref_object;
   <<< "success" >>>;
 }
 
index fd46f2122053a8aa0be1fd974369abaa39f72bef..7f4e907ed18368d254b38aebe64a0cc3d4e6b0f1 100644 (file)
@@ -9,7 +9,7 @@ class C
     string s;
     <<<  this,  " test spork exp. " , s >>>;
 
-  } @=> Shred @shred;
+  } @=> Shred ref shred;
 }
 
 C c;
index 2554d32e79e923eec3aca55be47393b2b949736f..802af15b537f6e09613f22353a41b95a87091fa8 100644 (file)
@@ -20,13 +20,13 @@ string s;
 
 #!me.exit();
 
-{ (1 + s)      @=> string @str; }
-{ (2.0 +s)      @=> string  @str; }
-{ (complex(2,1) + s) @=> string @str; }
-{ (polar(2,1) + s) @=> string @str; }
-{ (Vec3(2,1, 0) + s) @=> string @str; }
-{ (Vec4(2,1, 0, -1) + s) @=> string @str; }
-#!{ ("test" + s) @=> string @str; } // leak
+{ (1 + s)      @=> string ref str; }
+{ (2.0 +s)      @=> string  ref str; }
+{ (complex(2,1) + s) @=> string ref str; }
+{ (polar(2,1) + s) @=> string ref str; }
+{ (Vec3(2,1, 0) + s) @=> string ref str; }
+{ (Vec4(2,1, 0, -1) + s) @=> string ref str; }
+#!{ ("test" + s) @=> string ref str; } // leak
 
 
 <<<  11 +=> s >>>;
index 289e9751d82f0669fca7be50e97dc352c18c225d..66018eccdaa0214109e2255eaf09e1bbcc8d651e 100644 (file)
@@ -583,12 +583,6 @@ ANN static m_bool emit_prim_str(const Emitter emit, const m_str *str) {
   return GW_OK;
 }
 
-ANN static m_bool emit_prim_unpack(const Emitter emit NUSED, const Tuple *tuple) {
-  if(prim_exp(tuple)->meta == ae_meta_var)
-    return GW_OK;
-  ERR_B(prim_pos(tuple), _("unused Tuple unpack"))
-}
-
 #define emit_prim_complex emit_prim_vec
 #define emit_prim_polar   emit_prim_vec
 #define emit_prim_nil     (void*)dummy_func
@@ -1577,8 +1571,6 @@ ANN static m_bool case_value(const Emitter emit, const Exp base, const Exp e) {
 #define CASE_PASS (Symbol)1
 ANN static Symbol case_op(const Emitter emit, const Exp base, const Exp e) {
   if(e->exp_type == ae_exp_primary) {
-    if(e->d.prim.prim_type == ae_prim_unpack)
-      return insert_symbol("@=>");
     if(e->d.prim.prim_type == ae_prim_id) {
       if(e->d.prim.d.var == insert_symbol("_"))
         return CASE_PASS;
index fe0eb5d6306b7e49cd32b683fa8df457c94b4692..780cd87bb9ff55e9ffa6670db194e68c6b146dce 100644 (file)
@@ -127,30 +127,6 @@ static OP_CHECK(opck_at_object_tuple) {
   return bin->rhs->type;
 }
 
-static OP_CHECK(opck_at_tuple) {
-  const Exp_Binary *bin = (Exp_Binary*)data;
-  if(bin->rhs->exp_type == ae_exp_primary &&
-    bin->rhs->d.prim.prim_type == ae_prim_unpack) {
-    Exp e = bin->rhs->d.prim.d.tuple.exp;
-    int i = 0;
-    do {
-      if(e->exp_type == ae_exp_decl) {
-        DECL_OO(const Type, t, = (Type)VPTR(&bin->lhs->type->e->tuple->types, i))
-        e->d.exp_decl.td->xid->xid = insert_symbol(t->name);
-        const Exp next = e->next;
-        e->next = NULL;
-        const m_bool ret = traverse_exp(env, e);
-        e->next = next;
-        CHECK_BO(ret)
-        bin->rhs->meta = ae_meta_var;
-      }
-      ++i;
-    } while((e = e->next));
-    return bin->lhs->type;
-  }
-  return opck_at_object_tuple(env, data, mut);
-}
-
 static OP_CHECK(opck_at_tuple_object) {
   const Exp_Binary *bin = (Exp_Binary*)data;
   if(opck_rassign(env, data, mut) == env->gwion->type[et_null])
@@ -213,19 +189,6 @@ static OP_CHECK(opck_impl_tuple) {
   return imp->t;
 }
 
-static OP_EMIT(opem_at_tuple) {
-  const Exp_Binary *bin = (Exp_Binary*)data;
-  if(!(bin->rhs->exp_type == ae_exp_primary &&
-      bin->rhs->d.prim.prim_type == ae_prim_unpack)) {
-    return emit_add_instr(emit, ObjectAssign);
-  }
-  const Exp e = bin->rhs->d.prim.d.tuple.exp;
-  const Vector v = &bin->lhs->type->e->tuple->types;
-  struct TupleEmit te = { .e=e, .v=v };
-  emit_unpack_instr(emit, &te);
-  return (Instr)GW_OK;
-}
-
 ANN void tuple_info(const Env env, Type_Decl *base, const Var_Decl var) {
   const Value v = var->value;
   const m_uint offset = vector_back(&env->class_def->e->tuple->offset);
@@ -381,20 +344,20 @@ static OP_CHECK(unpack_ck) {
   const Symbol decl = insert_symbol("auto");
   const Symbol skip = insert_symbol("_");
   Exp e = call->args;
-const Value v = nspc_lookup_value1(env->global_nspc, insert_symbol("false"));
+  const Value v = nspc_lookup_value1(env->global_nspc, insert_symbol("false"));
   while(e) {
     if(e->exp_type != ae_exp_primary || e->d.prim.prim_type != ae_prim_id)
       ERR_O(e->pos, _("invalid expression for unpack"))
     if(e->d.prim.d.var != skip) {
       const Symbol var = e->d.prim.d.var;
       memset(&e->d, 0, sizeof(union exp_data));
-e->type = env->gwion->type[et_auto];
-e->d.exp_decl.type = env->gwion->type[et_auto];
+      e->type = env->gwion->type[et_auto];
+      e->d.exp_decl.type = env->gwion->type[et_auto];
       e->exp_type = ae_exp_decl;
       e->d.exp_decl.td = new_type_decl(env->gwion->mp, new_id_list(env->gwion->mp, decl, loc_cpy(env->gwion->mp, e->pos)));
       e->d.exp_decl.list = new_var_decl_list(env->gwion->mp,
         new_var_decl(env->gwion->mp, var, NULL, loc_cpy(env->gwion->mp, e->pos)), NULL);
-e->d.exp_decl.list->self->value = v;
+      e->d.exp_decl.list->self->value = v;
     } else {
       e->d.prim.prim_type = ae_prim_nil;
       e->type = env->gwion->type[et_null];
@@ -464,8 +427,7 @@ GWION_IMPORT(tuple) {
   GWI_BB(gwi_oper_emi(gwi, tuple_em))
   GWI_BB(gwi_oper_end(gwi, "@ctor", NULL))
   GWI_BB(gwi_oper_ini(gwi, "Object", "Tuple", NULL))
-  GWI_BB(gwi_oper_add(gwi, opck_at_tuple))
-  GWI_BB(gwi_oper_emi(gwi, opem_at_tuple))
+  GWI_BB(gwi_oper_add(gwi, opck_at_object_tuple))
   GWI_BB(gwi_oper_end(gwi, "@=>", ObjectAssign))
   GWI_BB(gwi_oper_add(gwi, opck_cast_tuple))
   GWI_BB(gwi_oper_end(gwi, "$", NoOp))
@@ -481,19 +443,18 @@ GWION_IMPORT(tuple) {
   GWI_BB(gwi_oper_add(gwi, opck_impl_tuple))
   GWI_BB(gwi_oper_end(gwi, "@implicit", NULL))
   GWI_BB(gwi_oper_ini(gwi, "Tuple", "Tuple", NULL))
-  GWI_BB(gwi_oper_add(gwi, opck_at_tuple))
-  GWI_BB(gwi_oper_emi(gwi, opem_at_tuple))
-  GWI_BB(gwi_oper_end(gwi, "@=>", NULL))
+  GWI_BB(gwi_oper_add(gwi, opck_at_object_tuple))
+  GWI_BB(gwi_oper_end(gwi, "@=>", ObjectAssign))
   GWI_BB(gwi_oper_ini(gwi, "int", "Tuple", NULL))
   GWI_BB(gwi_oper_add(gwi, opck_tuple))
 //  GWI_BB(gwi_oper_emi(gwi, opem_at_tuple))
   GWI_BB(gwi_oper_end(gwi, "@array", NULL))
   gwi_register_freearg(gwi, TupleUnpack, freearg_tuple_at);
 
-  const Type t_unpack = gwi_mk_type(gwi, "Unpack", SZ_INT, "Tuple");
+  const Type t_unpack = gwi_mk_type(gwi, "Unpack", 0, NULL);
   gwi_add_type(gwi, t_unpack);
   SET_FLAG(t_unpack, checked | ae_flag_scan2 | ae_flag_check | ae_flag_emit);
-  SET_FLAG(t_unpack, abstract | ae_flag_template);
+//  SET_FLAG(t_unpack, abstract | ae_flag_template);
   GWI_BB(gwi_oper_ini(gwi, "Unpack", NULL, NULL))
   GWI_BB(gwi_oper_add(gwi, unpack_ck))
   GWI_BB(gwi_oper_emi(gwi, unpack_em))
index 001794f9ab094c2c22306669edcca8b0e9c517da..67eb2d15e00cf070e08c44e32f90d3336e236054 100644 (file)
@@ -307,7 +307,6 @@ describe_prim_xxx(num, env->gwion->type[et_int])
 describe_prim_xxx(char, env->gwion->type[et_char])
 describe_prim_xxx(float, env->gwion->type[et_float])
 describe_prim_xxx(nil, env->gwion->type[et_void])
-describe_prim_xxx(unpack, env->gwion->type[et_tuple])
 
 #define check_prim_complex check_prim_vec
 #define check_prim_polar check_prim_vec
@@ -1125,9 +1124,7 @@ ANN static Value match_value(const Env env, const Exp_Primary* prim, const m_uin
 
 ANN static Symbol case_op(const Env env, const Exp e, const m_uint i) {
   if(e->exp_type == ae_exp_primary) {
-    if(e->d.prim.prim_type == ae_prim_unpack)
-      return insert_symbol("@=>");
-    else if(e->d.prim.prim_type == ae_prim_id) {
+    if(e->d.prim.prim_type == ae_prim_id) {
       if(e->d.prim.d.var == insert_symbol("_"))
         return NULL;
       if(!nspc_lookup_value1(env->curr, e->d.prim.d.var)) {
index ad9e9ab71b24917ed53839c84088770d1c991b48..1bb75922a3d7800bf920d65dd9135962a9cba43c 100644 (file)
@@ -6,7 +6,7 @@ class Tester
 
 Tester t;
 Object o;
-Object @ref;
+Object ref ref;
 "test" => string s;
 #!<<< t.assert_equal("test", 1, 1) >>>;
 #!<<< t.assert_equal("test", 2, 1) >>>;
index 24a85023dc61470d01eacc742bcc0dac797fe4a2..4b63417e78db4ba005809c5834ff69f731c59d55 100644 (file)
@@ -1,5 +1,5 @@
 #! thanks to afl-fuzz
-SinOsc@s, t;
+SinOsc ref s, t;
 Gain g => dac;
 1 => t.freq;
 s => g;
index 3daf30019f4c6d2c21562c5521cd12e09304d511..b0a4ad78ad470d7888de58b595b57f0ada3c9a91 100644 (file)
@@ -1,4 +1,4 @@
-"lol" @=> string @s;
+"lol" @=> string ref s;
 "test" => s;
 
 <<< "testmem".replace(2, 3, "UKUH") >>>;
index f97efbab7b52bc30c86f0fb3ef3bc3b55e2c7a7e..275c007350d582386612c339e52399f7f0e4d7f7 100644 (file)
@@ -1,4 +1,4 @@
-UGen @u;
+UGen ref u;
 #!u.last(); #! should fail => fails.
 SinOsc s => Gain g => dac;
 for(-1 => int i;i < 6; i++)
index cfb9bcb8a9c4e263cc54fdf6332716dd8d8d60f6..484dbb1e3ac9e1a7c2d128c75c949b72f2e58763 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] ref array must not have array expression
-int @my_array[2];
+int ref my_array[2];
index e352deda7a36c6d0481c4eeb211237c36797efda..a71e9bd892e676d1d1704b160f6a82b60e60ea70 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] UgenConnectException
-UGen @u;
+UGen ref u;
 adc => u;
index 8921e2b9621725f08367abaa4873442ef6ad6dec..10c4c321271a2b15d331477ebf30165026a07779 100644 (file)
@@ -4,5 +4,5 @@ class C
        int i;
 }
 
-C @c;
+C ref c;
 c.i;
index 45864d294edc585217f2cbf17312bf9d31615b8e..09b835200707e311331cb81c2ae2633aaa874f8d 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] NullEventWait
-Event @e;
+Event ref e;
 e => now;
index ebc087245554c89efa21689e113e7e68da442016..dde541940e4a9515c00de5498c429f18f626d3c7 100644 (file)
@@ -1,4 +1,4 @@
 #! [contains] can't use nonnull type in class extend
-class C extends Object! {
+class C extends Object nonnull {
 
 }
index 63d002e5b136283a7107d2af5536437d1aa71af3..38b28e494eb2bad91fee21eaac08eac609936ecc 100644 (file)
@@ -1,2 +1,2 @@
-Object @o;
-o $ Event!;
+Object ref o;
+o $ Event nonnull;
index 8d104b1582a1aadead9812d6feaaa9f8bdc0b995..d77a95dff56a7e1b224364de7c0a7873ca94f4a3 100644 (file)
@@ -1,2 +1,2 @@
-Object @o;
+Object ref o;
 o $ Object;
index 8974831529af420feb0bfbaa74de29365419ea68..d18089a3a2a94a9e3922e338bc4bffa0b5de85c1 100644 (file)
@@ -1,3 +1,3 @@
-fun void test(Object !o) { <<< o >>>; }
+fun void test(Object nonnull o) { <<< o >>>; }
 
-Object @o => test;
+Object ref o => test;
index e1561f1d4ded6ef5da98d9eb02fa1a32166e7d6d..2d4bfde1b9ba3a07bc9bed07a63d3300b3ca2e77 100644 (file)
@@ -1 +1 @@
-Object ! o @=> Object @p;
+Object nonnull o @=> Object ref p;
index f282af6b567c7114def4d0825bf5ebe9bf20ad0b..82af6dcacc72948f648d122e506b91006eb85b3f 100644 (file)
@@ -1,2 +1,2 @@
-Object ! o, p;
+Object nonnull o, p;
 o @=> p;
index 5dd55161094bbb0dd3414a82d74b32b0e0a6b7bc..fc515563333a8651dcea095f137f7284f9fc0d96 100644 (file)
@@ -1 +1 @@
-new Object! @=> Object !o;
+new Object nonnull @=> Object nonnull o;
index fc8b291e94e43ec24393af3577f35c244ca1780e..307e69769145bf8b3a486c84a1729a5219cd43ae 100644 (file)
@@ -1 +1 @@
-(Object! o) $ Object!;
+(Object nonnull o) $ Object nonnull;
index e32f1aa7a05f154dccf2c3d60bf32775f40a0f73..437d96076f4d4b4c0241cbce0ad4607bbcd8a3c1 100644 (file)
@@ -1 +1 @@
-Object !o;
+Object nonnull o;
index 34c99852c05f77f2ef081ef19c019c05e8b5ac44..b055145b669c1af4d121b8136a11e8de3f982eeb 100644 (file)
@@ -1 +1 @@
-new Object @=> Object ! @ o;
+new Object @=> Object nonnull ref o;
index 08c0545b3dd81b3e1744d1440b8cd333d752629f..5653b1237d33443e613245e3e44d709986a91915 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] NullPtrException
-Object @o;
-<<< o $ Object! >>>;
+Object ref o;
+<<< o $ Object nonnull >>>;
index f2ed8dbc9298ea4d47fafd3381cbe7f257255bac..6b1427d38f4136bbb077be64ab030be745553e28 100644 (file)
@@ -1,5 +1,5 @@
 #! [contains} NullPtrException
-fun void test(Object !o) {
+fun void test(Object nonnull o) {
   <<< o >>>;
 }
-Object @ref => test;
+Object ref ref => test;
index a86c11076e03f3447b9539c32c0e59b92eeb1f02..bbebc5284dca09f2f6c959a4c80174264999ddb5 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] NullPtrException
-Object @ref;
-<<< ref $ Object! >>>;
+Object ref ref_object;
+<<< ref_object $ Object nonnull >>>;
index c8566b97838f4c58d0eaa8f566cc879473c13cb7..99b2348029a87e962c00a3278a190b99c660a55a 100644 (file)
@@ -1,2 +1,2 @@
-fun void test(Object !o) { <<< o >>>; }
-Object !o => test;
+fun void test(Object nonnull o) { <<< o >>>; }
+Object nonnull o => test;
index 96122fb9cfe3028aa1be0e64b29479862ff902de..99b2348029a87e962c00a3278a190b99c660a55a 100644 (file)
@@ -1,2 +1,2 @@
-fun void test(Object !o) { <<< o >>>; }
-Object! o => test;
+fun void test(Object nonnull o) { <<< o >>>; }
+Object nonnull o => test;
index 72d689a2106f3530447a65c4b49b61ab122e2723..8923bf10911dee6eaf32e827d1f5db2c145416fb 100644 (file)
@@ -1 +1 @@
-new Object @=> Object !o;
+new Object @=> Object nonnull o;
index 9fb6fb4b8e42aa3980c092abf6f45b939c0f2760..f8f4beb6246694aeada0839c2504c444586c60dc 100644 (file)
@@ -1 +1 @@
-new Object $ Object!;
+new Object $ Object nonnull;
index 2e16439b2774dd74e935b8375fb063f295676c3f..cbdeae7756c0724e2c9fc93cf35eeb96e42a9e67 100644 (file)
@@ -1,2 +1,2 @@
-fun void test(Object !o) { <<< o >>>; }
+fun void test(Object nonnull o) { <<< o >>>; }
 new Object => test;
index 3fd7de70aa832885222ed8ad75c57c5ea11bf5fb..40b4ae2bfa4ada306d9c463f3df5092a5813d124 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] can't assign
-null @=> Object !o;
+null @=> Object nonnull o;
index 8f66ffdc965a869dbd59d6c32fc1fea1cc32a6fe..4ed42ffb11887b89c81dfa8a245f357b1ad04db5 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] can't cast
-null $ Object!;
+null $ Object nonnull;
index 92a9010f87ef40f6396be0e68f3e579f9e88980f..55b7dd03ac3482e2cc21349c2f3b811765aad524 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] can't implicitly cast
-fun void test(Object !o) { <<< o >>>; }
+fun void test(Object nonnull o) { <<< o >>>; }
 null => test;
index 72d689a2106f3530447a65c4b49b61ab122e2723..8923bf10911dee6eaf32e827d1f5db2c145416fb 100644 (file)
@@ -1 +1 @@
-new Object @=> Object !o;
+new Object @=> Object nonnull o;
index 0c8738e3a4c65059441b5af62dd2cb4f3c84b25f..100d3fba44f3683b8bb0c635226302e1b5eceb77 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] NullPtrException
-Object @o @=> Object !p;
+Object ref o @=> Object nonnull p;
index 35cc4984ed0216fcab373a7bcd52c3199545781f..9e19dd9fa3bfff407cf930dfb221f9de6e198f58 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] NullPtrException
-(Object @ o) $ Object!;
+(Object ref o) $ Object nonnull;
index 35a7cd7c5ac02bb7efad1a7d318d44b432b426a1..6b53612ace0d63ade3ee4a9ef74a6f9bdb8f029f 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] NullPtrException
-fun void test(Object !o) { <<< o >>>; }
-Object @o => test;
+fun void test(Object nonnull o) { <<< o >>>; }
+Object ref o => test;
index cfad18bb57eddf605aeaef547aaa26fc45d7be7e..9266a8d360f4663bfad4800200e37783bc2b25e5 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] NullPtrException
-Object @a @=> Object !o;
+Object ref a @=> Object nonnull o;
 <<< o >>>;
index df693b00e91e9376e97e061093863e7f422046bf..8f0c5dc8c1142458480fdd74fdbb99036246d524 100644 (file)
@@ -1,4 +1,4 @@
 #! [contains] can't implicitly cast
-fun void test(Object !o) { <<< o >>>; }
+fun void test(Object nonnull o) { <<< o >>>; }
 
 null => test;
index 4ad08a5047c0a6737b1aa590eb93af1696e8687f..2ac071587e839b9d31ca64391dc3e0b9ae351a20 100644 (file)
@@ -1,2 +1,2 @@
 #! [contains] void types can't be nonnull
-void! i;
+void nonnull i;
index e5bb52842ea2a07aef396bb93737785cf4700817..f4d33e6ea8411c502698963952458e6c302a1c5c 100644 (file)
@@ -1,4 +1,4 @@
 int i[2][2];
-for(auto @a : i)
+for(auto ref a : i)
    <<< a >>>;
 <<< i >>>;
index 068381f441ec557b4c070a3f7651d2f37f977c7c..30eaf3d33fad1db1bd79f80157b47f6e10a4b212 100644 (file)
@@ -4,6 +4,6 @@ class C {
 
 C i[2];
 
-for(auto @a : i)
+for(auto ref a : i)
      <<< a >>>;
 
index 1402c57bbc6de689e28496ab1f0af1ba6bfd1ecb..c0122d34174097a3b13e88f8d7cfc30c13e6291f 100644 (file)
@@ -1,3 +1,3 @@
 typedef void test_t<~A~>();
-test_t !t;
+test_t nonnull t;
 t<~int~>();
index 6e8dfdba640475a1dfe4442ee29e05582dda5f51..e0b85d7e3c0a7e345de8bdaa4610ba7185a91ebb 100644 (file)
@@ -1,3 +1,3 @@
-fork { <<< __func__ >>>; } @=> Fork @f;
+fork { <<< __func__ >>>; } @=> Fork ref f;
 second => now;
 f.join();
index e6654c8a62d9a8ad16cb10046927445f8efc9e89..dd8d58f0fcbef58d4f3caf458343248ab18952b5 100644 (file)
@@ -1,2 +1,2 @@
-fork { <<< __func__ >>>; minute => now; } @=> Fork @f;
+fork { <<< __func__ >>>; minute => now; } @=> Fork ref f;
 f.join();
index 44c21df5b8bea9307cb3c14d492c1e049dc1e8ed..6734daa9b792e0a2f30b828dfc388d102e1ec730 100644 (file)
@@ -1,9 +1,8 @@
 new Object;
-new Object @=> Object @ref;
+new Object @=> Object refref;
 new Event;
 Event ev;
-ev @=> 
-Event @e;
+ev @=> Event ref e;
 new Event @=> e;
 ev @=> e;
 null @=> e;
index 7796e2e657b39f3e4db55545f14b870a67f25463..06a528462fda18dbebba30c973a5b9599a9e5d2b 100644 (file)
@@ -1,5 +1,4 @@
 typedef int[2]Type;
 Type!type;
 <<<type>>>;
-for(auto@a:type);
-#!for(auto a:type);
+for(auto ref a : type);
index 896f4839c5fbd527f028a95ec09ed01b4cd55fa9..9e5754f753cd1c92f5df8cd7649784f1a22de146 100644 (file)
@@ -2,8 +2,8 @@
 Event e;
 spork { e => now; };
 spork { samp => now; 4::samp => now;};
-spork { 5::samp => now;} @=> Shred @s;
-spork { samp => now; 4::samp => now; } @=> Shred @t;
+spork { 5::samp => now;} @=> Shred ref s;
+spork { samp => now; 4::samp => now; } @=> Shred ref t;
 spork { 2::samp => now; me.exit(); };
 spork { new Object; <<< "garbage collect me"  >>>; 3::samp => now; };
 2::samp => now;
index c8d456e5ce3f8492b31417211eedd284d7f289ce..86094b6ef1fdec59eff28f472ab1c227985cd9b5 100644 (file)
@@ -1 +1 @@
-new Object @=> VarObject @o;
+new Object @=> VarObject ref o;
index af90f45e721b21baa16446721651d8aa80ad1945..108495614a362dcc0c3eaa734a00de36f92b4c5d 100644 (file)
@@ -1,4 +1,4 @@
-Tuple([1,2], "Tom") @=> <~int[], string~>Tuple @tup;
+Tuple([1,2], "Tom") @=> <~int[], string~>Tuple ref tup;
 
 #!<<<tup[1]>>>;
 #!<<<tup[0][1]>>>;
index 407b2371ba87f8c3d4431a5a33fee0ccbf757a74..ad2a8f9ee7f744d43e75d7db236ba39222ca505d 100644 (file)
@@ -1,3 +1,3 @@
 class C { int i; }
-C c @=> <~int~>Tuple @t;
-t @=> C @d;
+C c @=> <~int~>Tuple ref t;
+t @=> C ref d;
index 78d6554cff16633d3a240dad50d44dfb945b4f9c..c08e576697975dfc8d82623ff7e568dee22055c1 100644 (file)
@@ -3,6 +3,6 @@ class Person {
   45 => int age;
 }
 
-Person p @=> <~string,string~>Tuple @t;
+Person p @=> <~string,string~>Tuple ref t;
 <<<t[0]>>>;
 <<<t[1]>>>;
index 14d412da8d58fc5fe60b3dc6a07500f508ff24a6..8e20f44e6c4cc13e7de7b2f27a72be8d039932e3 100644 (file)
@@ -3,6 +3,6 @@ class Person {
   45 => int age;
 }
 
-Person p @=> <~string,int,float~>Tuple @t;
+Person p @=> <~string,int,float~>Tuple ref t;
 <<<t[0]>>>;
 <<<t[1]>>>;
index 9ee94d53a7dcc866379f07a539f6b369f8b91c3c..3127e9ceab3ce7dd99cf0c4160164bffdc6b6e81 100644 (file)
@@ -1 +1 @@
-Tuple @u;
+Tuple ref u;
index 9ee94d53a7dcc866379f07a539f6b369f8b91c3c..3127e9ceab3ce7dd99cf0c4160164bffdc6b6e81 100644 (file)
@@ -1 +1 @@
-Tuple @u;
+Tuple ref u;
index aa669c50e79a0d79e82991c096da1d1a72fff10a..cf29a057a500503f18a01ec8ddf633a9001ee09c 100644 (file)
@@ -1,5 +1,5 @@
 <<< Tuple("Tom", 6) @=> 
-<~string, int~>Tuple @tup >>>;
+<~string, int~>Tuple ref tup >>>;
 <<< typeof(tup) >>>;
 <<< tup >>>;
 <<< tup[0] >>>;
index fe93e7544deded4cff993b2aefba81a2710784c5..5be9b3e1f29d7eb955bcdaf4bc269ecab60bb86f 100644 (file)
@@ -1,4 +1,4 @@
 Tuple("Tom", 6) @=> 
-<~float, int~>Tuple @tup;
+<~float, int~>Tuple ref tup;
 <<< typeof(tup) >>>;
 <<< tup >>>;
index 2c0361202c7b6316fd3b52a445e894e12c241bf9..7b35faafa50044c6c4a9857e09b71589f8cac47e 100644 (file)
@@ -1,4 +1,4 @@
-<~int~>Tuple @a;
+<~int~>Tuple ref a;
 
 <<< a >>>;
 <<< a $ Tuple >>>;
index df1973285cbcb311f0dac5c5069f4fe9ae5fe57a..b6b3c8910406b0b92119951fcd51e0f05ff19b2c 100644 (file)
@@ -1,4 +1,4 @@
-<~int,int~>Tuple @a;
+<~int,int~>Tuple ref a;
 
 <<< a >>>;
 <<< a $ <~int~>Tuple >>>;
index c14ce68ba9d66e96d5d73552993cb74aa72752f4..b8e7cc788c707affae4bdda0c7a968ccbb1009e2 100644 (file)
@@ -1 +1 @@
-<~int~>Tuple @a;
+<~int~>Tuple ref a;
index 9d1e488dbbd4e347c5c88e6804afc3e6729be194..ff732b28d45355ba2e9f9ae326ba35f86aa8cfbf 100644 (file)
@@ -1,2 +1,2 @@
-Tuple @tup;
+Tuple ref tup;
 tup[1];
index c6c9fca16faa8346cc8252eb42c6a8da41ae869b..02d0aec6bbf1dccf2fcd2f2b3fe15a0018f84e82 100644 (file)
@@ -1,4 +1,4 @@
-Tuple(.2, Vec3(1), 3) @=> <~float, Vec3, int~>Tuple @t;
+Tuple(.2, Vec3(1), 3) @=> <~float, Vec3, int~>Tuple ref t;
 t[0];
 t[1];
 3 => t[2];
index 8b4f0e91ea699c8b32279bf6a68503ed89557c2e..971feb9728f60363999741e64b2ac1d389c8672c 100644 (file)
@@ -1,4 +1,4 @@
-Tuple("Tom", 2, "Taxi driver") @=> <~string,_, string~>Tuple @t;
+Tuple("Tom", 2, "Taxi driver") @=> <~string,_, string~>Tuple ref t;
 <<< t>>>;
 <<< t[0]>>>;
 Tuple("Tom", 2.3, "Cook") @=> t;
index 4beee885b60c6f2426bedcf0440c9c7ced91f32b..844164e07ecd4d99b27814be804e2e416d136130 100644 (file)
@@ -1,3 +1,3 @@
 #! [contains] tuple subscripts is undefined
-<~string, _~>Tuple @t;
+<~string, _~>Tuple ref t;
 t[1];
index 2e9ca60deb9c40d725a84e60a696c090c90cddb7..5f52865c4104e22a69ca7bdcc2e2f195e4db210e 100644 (file)
@@ -1,2 +1,2 @@
-<~int, strong~>Tuple @a;
-<~int, string~>Tuple @a;
+<~int, strong~>Tuple ref a;
+<~int, string~>Tuple ref a;