aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/syntax/type_of.ml12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/syntax/type_of.ml b/lib/syntax/type_of.ml
index b991e43..d0437c9 100644
--- a/lib/syntax/type_of.ml
+++ b/lib/syntax/type_of.ml
@@ -454,9 +454,15 @@ module Instruction = struct
let report' = Option.map snd variable.index |> Option.value ~default:[] in
let report = List.rev_append report' report in
- match right_expression.empty with
- | true -> report
- | false -> (
+ match
+ ( right_expression.empty,
+ Get_type.get_type (Lazy.force right_expression.result) )
+ with
+ | true, _
+ (* It’s allowed to assign an integer in any kind of variable *)
+ | _, Get_type.(Integer) ->
+ report
+ | false, _ -> (
let var_type = Lazy.from_val (Get_type.ident variable) in
let op1 = arg_of_repr var_type variable.pos in
let op2 = arg_of_repr right_expression.result right_expression.pos in