summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/c/nexp_synonym.expect1
-rw-r--r--test/c/nexp_synonym.sail11
-rw-r--r--test/typecheck/pass/nexp_synonym.sail11
-rw-r--r--test/typecheck/pass/nexp_synonym/v1.expect8
-rw-r--r--test/typecheck/pass/nexp_synonym/v1.sail11
-rw-r--r--test/typecheck/pass/nexp_synonym/v2.expect8
-rw-r--r--test/typecheck/pass/nexp_synonym/v2.sail11
-rw-r--r--test/typecheck/pass/nexp_synonym2.sail15
8 files changed, 76 insertions, 0 deletions
diff --git a/test/c/nexp_synonym.expect b/test/c/nexp_synonym.expect
new file mode 100644
index 00000000..880c3ee3
--- /dev/null
+++ b/test/c/nexp_synonym.expect
@@ -0,0 +1 @@
+v = 0xFFFFFFFF
diff --git a/test/c/nexp_synonym.sail b/test/c/nexp_synonym.sail
new file mode 100644
index 00000000..b908b265
--- /dev/null
+++ b/test/c/nexp_synonym.sail
@@ -0,0 +1,11 @@
+default Order dec
+
+$include <prelude.sail>
+
+type LEN : Int = 32
+
+let v : bits(LEN) = 0xFFFF_FFFF
+
+function main((): unit) -> unit = {
+ print_bits("v = ", v)
+} \ No newline at end of file
diff --git a/test/typecheck/pass/nexp_synonym.sail b/test/typecheck/pass/nexp_synonym.sail
new file mode 100644
index 00000000..b908b265
--- /dev/null
+++ b/test/typecheck/pass/nexp_synonym.sail
@@ -0,0 +1,11 @@
+default Order dec
+
+$include <prelude.sail>
+
+type LEN : Int = 32
+
+let v : bits(LEN) = 0xFFFF_FFFF
+
+function main((): unit) -> unit = {
+ print_bits("v = ", v)
+} \ No newline at end of file
diff --git a/test/typecheck/pass/nexp_synonym/v1.expect b/test/typecheck/pass/nexp_synonym/v1.expect
new file mode 100644
index 00000000..9ba21c2c
--- /dev/null
+++ b/test/typecheck/pass/nexp_synonym/v1.expect
@@ -0,0 +1,8 @@
+Type error:
+[nexp_synonym/v1.sail]:7:20-31
+7 |let v : bits(LEN) = 0xFFFF_FFFF
+  | ^---------^
+  | Tried performing type coercion from vector(32, dec, bit) to bits(LEN) on 0xFFFFFFFF
+  | Coercion failed because:
+  | Mismatched argument types in subtype check
+  |
diff --git a/test/typecheck/pass/nexp_synonym/v1.sail b/test/typecheck/pass/nexp_synonym/v1.sail
new file mode 100644
index 00000000..96690e00
--- /dev/null
+++ b/test/typecheck/pass/nexp_synonym/v1.sail
@@ -0,0 +1,11 @@
+default Order dec
+
+$include <prelude.sail>
+
+type LEN : Int = 33
+
+let v : bits(LEN) = 0xFFFF_FFFF
+
+function main((): unit) -> unit = {
+ print_bits("v = ", v)
+}
diff --git a/test/typecheck/pass/nexp_synonym/v2.expect b/test/typecheck/pass/nexp_synonym/v2.expect
new file mode 100644
index 00000000..68d664f7
--- /dev/null
+++ b/test/typecheck/pass/nexp_synonym/v2.expect
@@ -0,0 +1,8 @@
+Type error:
+[nexp_synonym/v2.sail]:7:20-32
+7 |let v : bits(LEN) = 0xFFFF_FFFFF
+  | ^----------^
+  | Tried performing type coercion from vector(36, dec, bit) to bits(LEN) on 0xFFFFFFFFF
+  | Coercion failed because:
+  | Mismatched argument types in subtype check
+  |
diff --git a/test/typecheck/pass/nexp_synonym/v2.sail b/test/typecheck/pass/nexp_synonym/v2.sail
new file mode 100644
index 00000000..0c1b5b5b
--- /dev/null
+++ b/test/typecheck/pass/nexp_synonym/v2.sail
@@ -0,0 +1,11 @@
+default Order dec
+
+$include <prelude.sail>
+
+type LEN : Int = 32
+
+let v : bits(LEN) = 0xFFFF_FFFFF
+
+function main((): unit) -> unit = {
+ print_bits("v = ", v)
+}
diff --git a/test/typecheck/pass/nexp_synonym2.sail b/test/typecheck/pass/nexp_synonym2.sail
new file mode 100644
index 00000000..9e9bd7b8
--- /dev/null
+++ b/test/typecheck/pass/nexp_synonym2.sail
@@ -0,0 +1,15 @@
+default Order dec
+
+$include <prelude.sail>
+
+type LEN : Int = 30 + 2
+
+type V : Type = bits(LEN)
+
+type V2('n: Int) -> Type = bits('n)
+
+let v : V = 0xFFFF_FFFF
+
+function main((): unit) -> unit = {
+ print_bits("v = ", v : V2(LEN))
+}