summaryrefslogtreecommitdiff
path: root/tests/generics/reference-transfer.vala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/generics/reference-transfer.vala')
-rw-r--r--tests/generics/reference-transfer.vala24
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/generics/reference-transfer.vala b/tests/generics/reference-transfer.vala
new file mode 100644
index 000000000..da2c1e305
--- /dev/null
+++ b/tests/generics/reference-transfer.vala
@@ -0,0 +1,24 @@
+class Bar<G> {
+ public G g;
+ public Bar (G g) {
+ this.g = g;
+ assert (g == "bar");
+ }
+}
+
+void bar<G> (Bar<G> g) {
+ var t = (owned) g.g;
+ assert (g.g == null);
+ assert (t == "bar");
+}
+
+void foo<G> (owned G g) {
+ var t = (owned) g;
+ assert (g == null);
+ assert (t == "foo");
+}
+
+void main () {
+ foo<string> ("foo");
+ bar<string> (new Bar<string> ("bar"));
+}