Modified:
/branches/1.0/guru/carraway/DropTerm.java
/branches/1.0/lib/owned.g
/branches/1.0/lib/unique.g
/branches/1.0/lib/uniquew.g
/branches/1.0/lib/unowned.g
=======================================
--- /branches/1.0/guru/carraway/DropTerm.java Tue Aug 3 07:51:59 2010
+++ /branches/1.0/guru/carraway/DropTerm.java Fri Aug 12 06:47:43 2011
@@ -37,7 +37,7 @@
}
else {
del.print(w,ctxt);
- w.print("(");
+ w.print("__match(");
rttype.print(w,ctxt);
w.print(", ");
var.print(w,ctxt);
=======================================
--- /branches/1.0/lib/owned.g Tue Dec 14 19:41:32 2010
+++ /branches/1.0/lib/owned.g Fri Aug 12 06:47:43 2011
@@ -7,6 +7,7 @@
Define primitive consume_owned : Fun(spec A:type)(^#owned a:A).void :=
fun(A:type)(a:A).voidi <<END
#define gconsume_owned(a) a
+#define gconsume_owned__match gconsume_owned
END.
Define primitive inspect : Fun(spec A:type)(!#unowned x:A).#<owned x> A
=======================================
--- /branches/1.0/lib/unique.g Tue Sep 8 07:28:12 2009
+++ /branches/1.0/lib/unique.g Fri Aug 12 06:47:43 2011
@@ -4,7 +4,11 @@
Define primitive consume_unique : Fun(A:type)(^#unique x:A).void
:= fun(A:type)(x:A).voidi <<END
inline void gconsume_unique(int A, void *x) {
- release(A,x,0);
+ release(A,x,1);
+ }
+
+ inline void gconsume_unique__match(int A, void *x) {
+ release(A,x,0); // we have already taken ownership of subdata when
pattern-matching
}
END.
=======================================
--- /branches/1.0/lib/uniquew.g Fri Apr 22 08:51:53 2011
+++ /branches/1.0/lib/uniquew.g Fri Aug 12 06:47:43 2011
@@ -10,6 +10,8 @@
Define primitive consume_uniquew : Fun(A:type)(^#uniquew x:A).void
:= fun(A:type)(x:A).voidi <<END
inline void gconsume_uniquew(int A, void *x) { }
+
+ #define gconsume_uniquew__match gconsume_uniquew
END.
ResourceType pinned_unique with
=======================================
--- /branches/1.0/lib/unowned.g Tue Dec 14 19:41:32 2010
+++ /branches/1.0/lib/unowned.g Fri Aug 12 06:47:43 2011
@@ -17,6 +17,9 @@
if (op(r) < 256)
release(A,r,1);
}
+
+ #define gconsume_unowned__match gconsume_unowned
+
END.
Init ginit_unowned_unowned(#unowned x)(#unowned y).#unowned <<END