WIP type-checking
[tiger.ml.git] / compiler / src / lib / tiger / tiger_error.mli
1 module Abs = Tiger_absyn
2 module Pos = Tiger_position
3 module Sym = Tiger_symbol
4 module Typ = Tiger_env_type
5
6 type t =
7 | Invalid_syntax of Pos.t
8 | Unknown_id of {id : Sym.t; pos : Pos.t}
9 | Unknown_type of {ty_id : Sym.t; pos : Pos.t}
10 | Id_is_a_function of {id : Sym.t; pos : Pos.t}
11 | Id_not_a_function of {id : Sym.t; pos : Pos.t}
12 | No_such_field_in_record of {field : Sym.t; record : Typ.t; pos : Pos.t}
13 | Exp_not_a_record of {ty : Typ.t; pos : Pos.t}
14 | Wrong_type of
15 { expected : Typ.t
16 ; given : Typ.t
17 ; pos : Pos.t
18 }
19 | Wrong_type_of_expression_in_var_dec of
20 { var_id : Sym.t
21 ; expected : Typ.t
22 ; given : Typ.t
23 ; pos : Pos.t
24 }
25 | Wrong_type_used_as_record of
26 { ty_id : Sym.t
27 ; ty : Typ.t
28 ; pos : Pos.t
29 }
30 | Wrong_type_of_field_value of
31 { field_id : Sym.t
32 ; expected : Typ.t
33 ; given : Typ.t
34 ; pos : Pos.t
35 }
36 | Wrong_type_of_arg of
37 { func : Sym.t
38 ; expected : Typ.t
39 ; given : Typ.t
40 ; pos : Pos.t
41 }
42 | Wrong_number_of_args of
43 { func : Sym.t
44 ; expected : int
45 ; given : int
46 ; pos : Pos.t
47 }
48 | Invalid_operand_type of
49 { oper : Abs.oper
50 ; valid : string list
51 ; given : Typ.t
52 ; pos : Pos.t
53 }
54 | Different_operand_types of
55 { oper : Abs.oper
56 ; left : Typ.t
57 ; right : Typ.t
58 ; pos : Pos.t
59 }
60
61 exception T of t
62
63 val raise : t -> 'a
64
65 val to_string : t -> string
66
67 val is_unknown_id : t -> bool
This page took 0.062708 seconds and 4 git commands to generate.