summaryrefslogtreecommitdiff
path: root/tests/generics/test_sizeof_template.zc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/generics/test_sizeof_template.zc')
-rw-r--r--tests/generics/test_sizeof_template.zc40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/generics/test_sizeof_template.zc b/tests/generics/test_sizeof_template.zc
new file mode 100644
index 0000000..8390512
--- /dev/null
+++ b/tests/generics/test_sizeof_template.zc
@@ -0,0 +1,40 @@
+struct Struct<T> {
+ val: T;
+}
+
+fn hello<T>() {
+ var s = sizeof(Struct<T>);
+ println "size: {s}";
+}
+
+test "sizeof template" {
+ var _first: Struct<i32>;
+ hello<i32>();
+ var _second: Struct<f64>;
+ hello<f64>();
+}
+
+struct Mixed<T> {
+ val: T;
+ flag: u8;
+}
+
+test "sizeof mixed" {
+ var s1 = sizeof(Mixed<i32>);
+ println "i32 mixed: {s1}";
+ var s2 = sizeof(Mixed<f64>);
+ println "f64 mixed: {s2}";
+}
+
+@packed
+struct PackedMixed<T> {
+ val: T;
+ flag: u8;
+}
+
+test "sizeof packed mixed" {
+ var s1 = sizeof(PackedMixed<i32>);
+ println "i32 packed mixed: {s1}";
+ var s2 = sizeof(PackedMixed<f64>);
+ println "f64 packed mixed: {s2}";
+} \ No newline at end of file