aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/syntax/type_of.ml9
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/syntax/type_of.ml b/lib/syntax/type_of.ml
index 6c02e91..91b8c57 100644
--- a/lib/syntax/type_of.ml
+++ b/lib/syntax/type_of.ml
@@ -439,7 +439,7 @@ module Instruction = struct
T.assignation_operator ->
expression ->
t =
- fun pos variable _ expression ->
+ fun pos variable op expression ->
let right_expression, report = expression in
let report' = Option.map snd variable.index |> Option.value ~default:[] in
@@ -447,13 +447,14 @@ module Instruction = struct
let report = List.rev_append report' report in
match
( right_expression.empty,
+ op,
Get_type.get_type (Lazy.force right_expression.result) )
with
- | true, _
+ | true, _, _
(* It’s allowed to assign an integer in any kind of variable *)
- | _, Get_type.(Integer) ->
+ | _, T.Eq', Get_type.(Integer) ->
report
- | false, _ -> (
+ | 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