|
@@ -305,7 +305,13 @@ let make_binop ctx op e1 e2 is_assign_op p =
|
|
| KFloat, KFloat ->
|
|
| KFloat, KFloat ->
|
|
result := tfloat
|
|
result := tfloat
|
|
| KNumParam t1, KNumParam t2 when Type.type_iseq t1 t2 ->
|
|
| KNumParam t1, KNumParam t2 when Type.type_iseq t1 t2 ->
|
|
- if op <> OpDiv then result := t1
|
|
|
|
|
|
+ (match op with
|
|
|
|
+ | OpDiv ->
|
|
|
|
+ let is_single = (match follow e1.etype with TAbstract({a_path=[],"Single"},_) -> true | _ -> false) in
|
|
|
|
+ if is_single then result := t1
|
|
|
|
+ | _ ->
|
|
|
|
+ result := t1
|
|
|
|
+ )
|
|
| KNumParam _, KNumParam _ ->
|
|
| KNumParam _, KNumParam _ ->
|
|
result := tfloat
|
|
result := tfloat
|
|
| KNumParam t, KInt | KInt, KNumParam t ->
|
|
| KNumParam t, KInt | KInt, KNumParam t ->
|