X-Git-Url: https://git.xandkar.net/?p=tiger.ml.git;a=blobdiff_plain;f=compiler%2Fsrc%2Flib%2Ftiger%2Ftiger_error.ml;h=70c3e3c2b93e947938c006486085d6545f32a55a;hp=e8af9eb56957d3ac506f6b4fbc16dcb8be311127;hb=4c550cd5b9653add413e21d06c73efe3aa657e06;hpb=0ed7a07cf496065c3ff0d0f9325ae8c516b00c1b diff --git a/compiler/src/lib/tiger/tiger_error.ml b/compiler/src/lib/tiger/tiger_error.ml index e8af9eb..70c3e3c 100644 --- a/compiler/src/lib/tiger/tiger_error.ml +++ b/compiler/src/lib/tiger/tiger_error.ml @@ -28,6 +28,11 @@ type t = ; ty : Typ.t ; pos : Pos.t } + | Wrong_type_used_as_array of + { ty_id : Sym.t + ; ty : Typ.t + ; pos : Pos.t + } | Wrong_type_of_field_value of { field_id : Sym.t ; expected : Typ.t @@ -102,6 +107,10 @@ let to_string = (Typ.to_string expected) (Typ.to_string given) (Pos.to_string pos) + | Wrong_type_used_as_array {ty_id; ty; pos} -> + s ( "Identifier %S is bound to type %S, not an array. " + ^^"It cannot be used in %s") + (Sym.to_string ty_id) (Typ.to_string ty) (Pos.to_string pos) | Wrong_type_used_as_record {ty_id; ty; pos} -> s ( "Identifier %S is bound to type %S, not a record. " ^^"It cannot be used in %s") @@ -152,6 +161,7 @@ let is_unknown_id t = | Exp_not_an_array _ | Wrong_type _ | Wrong_type_of_expression_in_var_dec _ + | Wrong_type_used_as_array _ | Wrong_type_used_as_record _ | Wrong_type_of_field_value _ | Wrong_type_of_arg _