[ID "f"; LPAREN; STRING "a"; COMMA; INT 3; COMMA; ID "foo"; RPAREN]
~is_error_expected_semant:Error.is_unknown_id
)
+ ; ( let code =
+ "let
+ type a = int
+ type b = a
+ type c = b
+ var i : a := 2
+ var j : c := 3
+ in
+ i := j
+ end
+ "
+ in
+ Test.case
+ "Type aliases"
+ ~code
+ )
+ ; ( let code =
+ "let
+ type a = {x:int, y:int}
+ type b = {x:int, y:int} /* new type generated */
+ var foo : a := a {x = 1, y = 2}
+ var bar : b := b {x = 1, y = 2}
+ in
+ foo = bar /* incompatible types */
+ end
+ "
+ in
+ Test.case
+ code
+ ~code
+ ~is_error_expected_semant:Error.is_wrong_type (* TODO: Be more specific *)
+ )
]
let all =