summaryrefslogtreecommitdiff
path: root/tests/generics
diff options
context:
space:
mode:
authorZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-22 13:01:42 +0000
committerZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-01-22 13:01:42 +0000
commit5838f112be660a8fdfef731c74353fae82dd2c03 (patch)
treebcd8d9828c83afb6e5070357542a6287194a7788 /tests/generics
parentbb44db8e61a40d4fcd31a87140f3c61aed551a2c (diff)
Fix for #89
Diffstat (limited to 'tests/generics')
-rw-r--r--tests/generics/test_generic_ptr.zc41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/generics/test_generic_ptr.zc b/tests/generics/test_generic_ptr.zc
new file mode 100644
index 0000000..e08caba
--- /dev/null
+++ b/tests/generics/test_generic_ptr.zc
@@ -0,0 +1,41 @@
+import "std/vec.zc"
+import "std/result.zc"
+
+test "generic pointer instantiation" {
+
+ // Vector of ints (internally int*) nested in Result
+ var v = Vec<int>::new();
+ v.push(10);
+ v.push(20);
+ v.push(30);
+
+ var res = Result<Vec<int>>::Ok(v);
+
+ // Test unwrapping (signatures involving int*)
+ var unwrapped = res.unwrap_ref();
+ assert(unwrapped.get(0) == 10);
+ assert(unwrapped.get(1) == 20);
+ assert(unwrapped.get(2) == 30);
+}
+
+// I will have to work on this one, so TODO.
+/*
+test "generic pointer double nesting" {
+ // Double nesting - Result<Vec<int*>>
+
+ var v_ptr = Vec<int*>::new();
+ var a: int = 100;
+ var b: int = 200;
+
+ v_ptr.push(&a);
+ v_ptr.push(&b);
+
+ var res_ptr = Result<Vec<int*>>::Ok(v_ptr);
+ var unwrapped_ptr = res_ptr.unwrap();
+
+ assert(*unwrapped_ptr.get(0) == 100);
+ assert(*unwrapped_ptr.get(1) == 200);
+
+ unwrapped_ptr.free();
+}
+*/