diff options
| author | Alasdair Armstrong | 2018-12-26 00:41:43 +0000 |
|---|---|---|
| committer | Alasdair Armstrong | 2018-12-26 00:41:43 +0000 |
| commit | 0a293f2e7ca72e1dc422f0035d271d7dc39cfcb2 (patch) | |
| tree | 2a03e8ee5bac4548764e7e3b160744cf1952821f /test/typecheck | |
| parent | 0a65347ed2868b815dee532acfebb463f8be644b (diff) | |
More error messages improvments
Diffstat (limited to 'test/typecheck')
28 files changed, 77 insertions, 3 deletions
diff --git a/test/typecheck/pass/bool_constraint/v1.expect b/test/typecheck/pass/bool_constraint/v1.expect index 34fdea2b..b1597759 100644 --- a/test/typecheck/pass/bool_constraint/v1.expect +++ b/test/typecheck/pass/bool_constraint/v1.expect @@ -1 +1,20 @@ -Fatal error: exception Failure("No location") +Type error: +[[96mbool_constraint/v1.sail[0m]:12:19-20 +12[96m |[0m if b then n else 4 + [91m |[0m [91m^[0m + [91m |[0m Tried performing type coercion from int(4) to {('m : Int), (('b & 'm == 'n) | (not('b) & 'm == 3)). int('m)} on 4 + [91m |[0m Coercion failed because: + [91m |[0m int(4) is not a subtype of {('m : Int), (('b & 'm == 'n) | (not('b) & 'm == 3)). int('m)} + [91m |[0m [[96mbool_constraint/v1.sail[0m]:11:0-13:1 + [91m |[0m 11[96m |[0mfunction foo(b, n) = { + [91m |[0m [93m |[0m[93m^---------------------[0m + [91m |[0m 13[96m |[0m} + [91m |[0m [93m |[0m[93m^[0m + [91m |[0m [93m |[0m 'b bound here + [91m |[0m [[96mbool_constraint/v1.sail[0m]:11:0-13:1 + [91m |[0m 11[96m |[0mfunction foo(b, n) = { + [91m |[0m [93m |[0m[93m^---------------------[0m + [91m |[0m 13[96m |[0m} + [91m |[0m [93m |[0m[93m^[0m + [91m |[0m [93m |[0m 'n bound here + [91m |[0m diff --git a/test/typecheck/pass/bool_constraint/v2.expect b/test/typecheck/pass/bool_constraint/v2.expect index 989226fb..c7a355e1 100644 --- a/test/typecheck/pass/bool_constraint/v2.expect +++ b/test/typecheck/pass/bool_constraint/v2.expect @@ -1,3 +1,4 @@ +Type error: [[96mbool_constraint/v2.sail[0m]:38:4-32 38[96m |[0m _prove(constraint('n <= 14)) [91m |[0m [91m^--------------------------^[0m diff --git a/test/typecheck/pass/bool_constraint/v3.expect b/test/typecheck/pass/bool_constraint/v3.expect index 51692dd7..63791a70 100644 --- a/test/typecheck/pass/bool_constraint/v3.expect +++ b/test/typecheck/pass/bool_constraint/v3.expect @@ -1,3 +1,4 @@ +Type error: [[96mbool_constraint/v3.sail[0m]:46:4-32 46[96m |[0m _prove(constraint('n <= 14)) [91m |[0m [91m^--------------------------^[0m diff --git a/test/typecheck/pass/bool_constraint/v4.expect b/test/typecheck/pass/bool_constraint/v4.expect index df65fc8a..420909bf 100644 --- a/test/typecheck/pass/bool_constraint/v4.expect +++ b/test/typecheck/pass/bool_constraint/v4.expect @@ -1,3 +1,4 @@ +Type error: [[96mbool_constraint/v4.sail[0m]:46:4-32 46[96m |[0m _prove(constraint('n <= 13)) [91m |[0m [91m^--------------------------^[0m diff --git a/test/typecheck/pass/constrained_struct/v1.expect b/test/typecheck/pass/constrained_struct/v1.expect index f3771c9d..8c95193d 100644 --- a/test/typecheck/pass/constrained_struct/v1.expect +++ b/test/typecheck/pass/constrained_struct/v1.expect @@ -1,3 +1,4 @@ +Type error: [[96mconstrained_struct/v1.sail[0m]:10:18-26 10[96m |[0mtype MyStruct64 = MyStruct(65) [91m |[0m [91m^------^[0m diff --git a/test/typecheck/pass/constraint_ctor/v1.expect b/test/typecheck/pass/constraint_ctor/v1.expect index b2c62a8c..cf3b9399 100644 --- a/test/typecheck/pass/constraint_ctor/v1.expect +++ b/test/typecheck/pass/constraint_ctor/v1.expect @@ -1,3 +1,4 @@ +Type error: [[96mconstraint_ctor/v1.sail[0m]:10:2-29 10[96m |[0m _prove(constraint('x >= 4)); [91m |[0m [91m^-------------------------^[0m diff --git a/test/typecheck/pass/constraint_ctor/v2.expect b/test/typecheck/pass/constraint_ctor/v2.expect index a6774adc..0e56f0a4 100644 --- a/test/typecheck/pass/constraint_ctor/v2.expect +++ b/test/typecheck/pass/constraint_ctor/v2.expect @@ -1,3 +1,4 @@ +Type error: [[96mconstraint_ctor/v2.sail[0m]:18:2-30 18[96m |[0m _prove(constraint('x >= 24)); [91m |[0m [91m^--------------------------^[0m diff --git a/test/typecheck/pass/constraint_ctor/v3.expect b/test/typecheck/pass/constraint_ctor/v3.expect index bd93a7e1..37d1dff2 100644 --- a/test/typecheck/pass/constraint_ctor/v3.expect +++ b/test/typecheck/pass/constraint_ctor/v3.expect @@ -1,3 +1,4 @@ +Type error: [[96mconstraint_ctor/v3.sail[0m]:18:2-30 18[96m |[0m _prove(constraint('x >= 23)); [91m |[0m [91m^--------------------------^[0m diff --git a/test/typecheck/pass/constraint_ctor/v4.expect b/test/typecheck/pass/constraint_ctor/v4.expect index 942db0a4..64893e4d 100644 --- a/test/typecheck/pass/constraint_ctor/v4.expect +++ b/test/typecheck/pass/constraint_ctor/v4.expect @@ -1,3 +1,4 @@ +Type error: [[96mconstraint_ctor/v4.sail[0m]:17:33-36 17[96m |[0mfunction bar(Bar(x as int('x)) : Bar(23)) -> unit = { [91m |[0m [91m^-^[0m diff --git a/test/typecheck/pass/constraint_ctor/v5.expect b/test/typecheck/pass/constraint_ctor/v5.expect index 93fb2a43..fc2ef615 100644 --- a/test/typecheck/pass/constraint_ctor/v5.expect +++ b/test/typecheck/pass/constraint_ctor/v5.expect @@ -1,3 +1,4 @@ +Type error: [[96mconstraint_ctor/v5.sail[0m]:27:2-29 27[96m |[0m _prove(constraint('x >= 4)); [91m |[0m [91m^-------------------------^[0m diff --git a/test/typecheck/pass/exist_synonym/v1.expect b/test/typecheck/pass/exist_synonym/v1.expect index 651dda4c..cc8b874f 100644 --- a/test/typecheck/pass/exist_synonym/v1.expect +++ b/test/typecheck/pass/exist_synonym/v1.expect @@ -1,3 +1,4 @@ +Type error: [[96mexist_synonym/v1.sail[0m]:6:41-42 6[96m |[0mlet x : {'n, 0 <= 'n <= 33. regno('n)} = 4 [91m |[0m [91m^[0m diff --git a/test/typecheck/pass/exist_synonym/v2.expect b/test/typecheck/pass/exist_synonym/v2.expect index d5617688..c01d8359 100644 --- a/test/typecheck/pass/exist_synonym/v2.expect +++ b/test/typecheck/pass/exist_synonym/v2.expect @@ -1,3 +1,4 @@ +Type error: [[96mexist_synonym/v2.sail[0m]:6:40-41 6[96m |[0mlet x : {'n, 0 <= 'n <= 8. regno('n)} = 4 [91m |[0m [91m^[0m diff --git a/test/typecheck/pass/exist_synonym/v3.expect b/test/typecheck/pass/exist_synonym/v3.expect index 34fdea2b..c237ae2d 100644 --- a/test/typecheck/pass/exist_synonym/v3.expect +++ b/test/typecheck/pass/exist_synonym/v3.expect @@ -1 +1,3 @@ -Fatal error: exception Failure("No location") +Type error: +Could not prove constraints (0 <= 'n & ('n + 1) <= 32) in type synonym int('n) with (0 <= 'n & 'n <= 100), (0 <= '_x & '_x <= 8), (0 <= '_x#0 & '_x#0 <= 8) + diff --git a/test/typecheck/pass/exist_synonym/v4.expect b/test/typecheck/pass/exist_synonym/v4.expect index 34fdea2b..1cbc3df8 100644 --- a/test/typecheck/pass/exist_synonym/v4.expect +++ b/test/typecheck/pass/exist_synonym/v4.expect @@ -1 +1,3 @@ -Fatal error: exception Failure("No location") +Type error: +Could not prove constraints (0 <= 'n & ('n + 1) <= 32) in type synonym int('n) with (0 <= 2 & 2 <= 4), (0 <= '_x & '_x <= 8), (0 <= '_x#0 & '_x#0 <= 8) + diff --git a/test/typecheck/pass/function_namespace/v1.expect b/test/typecheck/pass/function_namespace/v1.expect index 15ab6962..2bb734aa 100644 --- a/test/typecheck/pass/function_namespace/v1.expect +++ b/test/typecheck/pass/function_namespace/v1.expect @@ -1,3 +1,4 @@ +Type error: [[96mfunction_namespace/v1.sail[0m]:9:6-10 9[96m |[0m let test = true; [91m |[0m [91m^--^[0m diff --git a/test/typecheck/pass/global_type_var/v1.expect b/test/typecheck/pass/global_type_var/v1.expect index 22a3756d..ac4428c6 100644 --- a/test/typecheck/pass/global_type_var/v1.expect +++ b/test/typecheck/pass/global_type_var/v1.expect @@ -1,3 +1,4 @@ +Type error: [[96mglobal_type_var/v1.sail[0m]:23:13-15 23[96m |[0mlet _ = test(32) [91m |[0m [91m^^[0m diff --git a/test/typecheck/pass/global_type_var/v2.expect b/test/typecheck/pass/global_type_var/v2.expect index 360a6e48..93eb628b 100644 --- a/test/typecheck/pass/global_type_var/v2.expect +++ b/test/typecheck/pass/global_type_var/v2.expect @@ -1,3 +1,4 @@ +Type error: [[96mglobal_type_var/v2.sail[0m]:23:13-15 23[96m |[0mlet _ = test(64) [91m |[0m [91m^^[0m diff --git a/test/typecheck/pass/global_type_var/v3.expect b/test/typecheck/pass/global_type_var/v3.expect index 8e687370..6def5172 100644 --- a/test/typecheck/pass/global_type_var/v3.expect +++ b/test/typecheck/pass/global_type_var/v3.expect @@ -1,3 +1,4 @@ +Type error: [[96mglobal_type_var/v3.sail[0m]:15:23-27 15[96m |[0m let y : atom(64) = size in [91m |[0m [91m^--^[0m diff --git a/test/typecheck/pass/if_infer/v1.expect b/test/typecheck/pass/if_infer/v1.expect index e9db69f5..c8217478 100644 --- a/test/typecheck/pass/if_infer/v1.expect +++ b/test/typecheck/pass/if_infer/v1.expect @@ -1,3 +1,4 @@ +Type error: [[96mif_infer/v1.sail[0m]:10:10-37 10[96m |[0m let _ = 0b100[if R then 0 else f()]; [91m |[0m [91m^-------------------------^[0m diff --git a/test/typecheck/pass/if_infer/v2.expect b/test/typecheck/pass/if_infer/v2.expect index 06800859..f0c2fab3 100644 --- a/test/typecheck/pass/if_infer/v2.expect +++ b/test/typecheck/pass/if_infer/v2.expect @@ -1,3 +1,4 @@ +Type error: [[96mif_infer/v2.sail[0m]:10:10-38 10[96m |[0m let _ = 0b1001[if R then 0 else f()]; [91m |[0m [91m^--------------------------^[0m diff --git a/test/typecheck/pass/if_infer/v3.expect b/test/typecheck/pass/if_infer/v3.expect index b701032d..7e0e74bb 100644 --- a/test/typecheck/pass/if_infer/v3.expect +++ b/test/typecheck/pass/if_infer/v3.expect @@ -1,3 +1,4 @@ +Type error: [[96mif_infer/v3.sail[0m]:10:10-38 10[96m |[0m let _ = 0b1001[if R then 0 else f()]; [91m |[0m [91m^--------------------------^[0m diff --git a/test/typecheck/pass/not_pattern/v1.expect b/test/typecheck/pass/not_pattern/v1.expect index 2b766c43..aeefb901 100644 --- a/test/typecheck/pass/not_pattern/v1.expect +++ b/test/typecheck/pass/not_pattern/v1.expect @@ -1,3 +1,4 @@ +Type error: [[96mnot_pattern/v1.sail[0m]:12:6-7 12[96m |[0m ~(y) => (), [91m |[0m [91m^[0m diff --git a/test/typecheck/pass/vec_length/v1.expect b/test/typecheck/pass/vec_length/v1.expect index 096b09a7..ce61cf2a 100644 --- a/test/typecheck/pass/vec_length/v1.expect +++ b/test/typecheck/pass/vec_length/v1.expect @@ -1,3 +1,4 @@ +Type error: [[96mvec_length/v1.sail[0m]:6:10-15 6[96m |[0m let y = x[10]; [91m |[0m [91m^---^[0m diff --git a/test/typecheck/pass/vec_length/v1_inc.expect b/test/typecheck/pass/vec_length/v1_inc.expect index c42b12ad..3d40cdb0 100644 --- a/test/typecheck/pass/vec_length/v1_inc.expect +++ b/test/typecheck/pass/vec_length/v1_inc.expect @@ -1,3 +1,4 @@ +Type error: [[96mvec_length/v1_inc.sail[0m]:6:10-15 6[96m |[0m let y = x[10]; [91m |[0m [91m^---^[0m diff --git a/test/typecheck/pass/vec_length/v2.expect b/test/typecheck/pass/vec_length/v2.expect index 7b0e6634..c77ecaa7 100644 --- a/test/typecheck/pass/vec_length/v2.expect +++ b/test/typecheck/pass/vec_length/v2.expect @@ -1,3 +1,4 @@ +Type error: [[96mvec_length/v2.sail[0m]:7:10-25 7[96m |[0m let z = [x with 10 = y]; [91m |[0m [91m^-------------^[0m diff --git a/test/typecheck/pass/vec_length/v2_inc.expect b/test/typecheck/pass/vec_length/v2_inc.expect index f7ef04e4..cff65f62 100644 --- a/test/typecheck/pass/vec_length/v2_inc.expect +++ b/test/typecheck/pass/vec_length/v2_inc.expect @@ -1,3 +1,4 @@ +Type error: [[96mvec_length/v2_inc.sail[0m]:7:10-25 7[96m |[0m let z = [x with 10 = y]; [91m |[0m [91m^-------------^[0m diff --git a/test/typecheck/pass/vec_length/v3.expect b/test/typecheck/pass/vec_length/v3.expect new file mode 100644 index 00000000..e3afecee --- /dev/null +++ b/test/typecheck/pass/vec_length/v3.expect @@ -0,0 +1,14 @@ +Type error: +[[96mvec_length/v3.sail[0m]:6:10-12:3 +6 [96m |[0m let y = x[ + [91m |[0m [91m^-[0m +12[96m |[0m ]; + [91m |[0m[91m--^[0m + [91m |[0m No overloading for vector_access, tried: + [91m |[0m [94m*[0m bitvector_access + [91m |[0m Could not resolve quantifiers for bitvector_access + [91m |[0m [94m*[0m (0 <= 10 & (10 + 1) <= 8) + [91m |[0m [94m*[0m plain_vector_access + [91m |[0m Could not resolve quantifiers for plain_vector_access + [91m |[0m [94m*[0m (0 <= 10 & (10 + 1) <= 8) + [91m |[0m diff --git a/test/typecheck/pass/vec_length/v3.sail b/test/typecheck/pass/vec_length/v3.sail new file mode 100644 index 00000000..8736278e --- /dev/null +++ b/test/typecheck/pass/vec_length/v3.sail @@ -0,0 +1,14 @@ +default Order dec +$include <vector_dec.sail> + +function main () : unit -> unit = { + let x : bits(8) = 0xff; + let y = x[ + + + + + 10 + ]; + () +} |
