|
@@ -1032,7 +1032,11 @@ let convert_switch mctx st cases loop =
|
|
|
| _ -> DTSwitch(e, List.map (fun (c,dt) -> convert_con ctx c, loop dt) cases, !def)
|
|
|
in
|
|
|
match !null with
|
|
|
- | None -> dt
|
|
|
+ | None when is_explicit_null st.st_type ->
|
|
|
+ let econd = mk (TBinop(OpNotEq,e_st,mk (TConst TNull) (mk_mono()) p)) ctx.t.tbool p in
|
|
|
+ DTGuard(econd,dt,!def)
|
|
|
+ | None ->
|
|
|
+ dt
|
|
|
| Some dt_null ->
|
|
|
let econd = mk (TBinop(OpEq,e_st,mk (TConst TNull) (mk_mono()) p)) ctx.t.tbool p in
|
|
|
DTGuard(econd,dt_null,Some dt)
|