|
{ e with eexpr = TMatch (map false v,en,cases,def); etype = if term && ret_val then unify_min ctx ((List.map (fun (_,_,e) -> e) cases) @ (match def with None -> [] | Some e -> [e])) else e.etype }
|
|
{ e with eexpr = TMatch (map false v,en,cases,def); etype = if term && ret_val then unify_min ctx ((List.map (fun (_,_,e) -> e) cases) @ (match def with None -> [] | Some e -> [e])) else e.etype }
|
|
| TSwitch (e1,cases,def) when term ->
|
|
| TSwitch (e1,cases,def) when term ->
|
|
let cases = List.map (fun (el,e) ->
|
|
let cases = List.map (fun (el,e) ->
|