Get rid of some warnings
parent
a946f319c8
commit
eabb075fdb
12
Cook.ml
12
Cook.ml
|
@ -44,7 +44,6 @@ type tavar =
|
|||
module Smap = Map.Make(String)
|
||||
type env = {
|
||||
bindings : (binding * Atom.atom) Smap.t ;
|
||||
(* fvars : TVSet.t ; *)
|
||||
type_bindings : Atom.atom Smap.t ;
|
||||
type_variables : (Atom.atom * Atom.atom) Smap.t ;
|
||||
type_variance : (tavar * bool) list Atom.Map.t ;
|
||||
|
@ -278,7 +277,7 @@ and biunify_tyss env t qps qms =
|
|||
) qms
|
||||
) qps
|
||||
|
||||
and merge_eff env name e1 e2 =
|
||||
and merge_eff _ name e1 e2 =
|
||||
let open TyE in
|
||||
assert (e1.polarity = e2.polarity);
|
||||
(match name with
|
||||
|
@ -300,7 +299,7 @@ and merge_eff env name e1 e2 =
|
|||
e1.flows <- (fst e1.flows, (fst (snd e1.flows), b1 || b2))
|
||||
| Some name -> e1.flows <- (Atom.Map.add name (fst (get e1), b1 || b2) (fst e1.flows), snd e1.flows)
|
||||
|
||||
and biunify_eff_excl ex env t ep em =
|
||||
and biunify_eff_excl ex env _ ep em =
|
||||
TyE.common_domain ep em;
|
||||
assert (ep.TyE.polarity && not em.TyE.polarity);
|
||||
let (epf, epd) = ep.TyE.flows in
|
||||
|
@ -345,7 +344,6 @@ and biunify_args env t ap am =
|
|||
| _ -> assert false
|
||||
|
||||
let biunify_eff_excl excl env = biunify_eff_excl excl env (ref TySPSet.empty)
|
||||
let biunify_eff env = biunify_eff env (ref TySPSet.empty)
|
||||
let biunify env = biunify_tys env (ref TySPSet.empty)
|
||||
|
||||
let not_subtype_msg : _ format6 =
|
||||
|
@ -457,7 +455,7 @@ let create_arg_pair (v, is_effect) =
|
|||
let create_var_pairs l =
|
||||
List.split (List.map create_arg_pair l)
|
||||
|
||||
let rec is_irrefutable { S.place ; S.value } =
|
||||
let rec is_irrefutable { S.value ; _ } =
|
||||
match value with
|
||||
| S.PVar _ -> true
|
||||
| S.PTuple l -> List.for_all is_irrefutable l
|
||||
|
@ -648,7 +646,7 @@ let rec cook_term env { S.place ; S.value } =
|
|||
let nl = List.map (fun (p, t1) ->
|
||||
let np, dv, ef = cook_pattern_or_effect env sc.typ rtyp erp p in
|
||||
matched_effects := Atom.Set.union !matched_effects ef;
|
||||
let nenv = Smap.fold (fun x (a, t) env -> add_bound x a env) dv env in
|
||||
let nenv = Smap.fold (fun x (a, _) env -> add_bound x a env) dv env in
|
||||
let sc1, nt1 = cook_term nenv t1 in
|
||||
check_biunify t1.S.place env sc1.typ rtyn;
|
||||
check_biunify_eff t1.S.place env sc1.eff ern;
|
||||
|
@ -828,7 +826,7 @@ and cook_let env recursive x t =
|
|||
|
||||
let cook_var cook build polarity va t =
|
||||
match va with
|
||||
| ANone -> fun inst -> TyC.VNone
|
||||
| ANone -> fun _ -> TyC.VNone
|
||||
| APos _ ->
|
||||
let t = cook polarity t in
|
||||
fun inst -> TyC.VPos (build (t inst))
|
||||
|
|
13
Finish.ml
13
Finish.ml
|
@ -68,11 +68,6 @@ let evar (x : S.variable) : T.expr =
|
|||
let univ : T.type_spec =
|
||||
T.Named "univ"
|
||||
|
||||
(* The type of integers. *)
|
||||
|
||||
let int : T.type_spec =
|
||||
T.Named "int64_t"
|
||||
|
||||
(* The type [char] appears in the type of [main]. *)
|
||||
|
||||
let char : T.type_spec =
|
||||
|
@ -321,14 +316,6 @@ let declare_main_function : T.declaration =
|
|||
type decl_or_fun =
|
||||
T.declaration_or_function
|
||||
|
||||
let define (decl : T.declaration) (st : finish_state) (t : S.term) : decl_or_fun =
|
||||
T.Function (
|
||||
[], (* no comments *)
|
||||
false, (* not inlined *)
|
||||
decl,
|
||||
T.Compound [finish_term st t]
|
||||
)
|
||||
|
||||
let define_ordinary_function (st : finish_state) (S.Fun (f, xs, t)) : decl_or_fun =
|
||||
let b = fct_max_total_alloc t in
|
||||
let t = finish_term st t in
|
||||
|
|
18
Lambda.ml
18
Lambda.ml
|
@ -347,7 +347,7 @@ let arg_succ = function
|
|||
let tyc_succ = function
|
||||
| TyC.Tident (vs, _) ->
|
||||
List.fold_left TySSet.union TySSet.empty (List.map arg_succ vs)
|
||||
| TyC.Tarrow (q1, eff, q2) -> TySSet.union q1 q2
|
||||
| TyC.Tarrow (q1, _, q2) -> TySSet.union q1 q2
|
||||
| TyC.Tproduct l -> List.fold_left TySSet.union TySSet.empty l
|
||||
|
||||
let tys_succ q =
|
||||
|
@ -362,7 +362,7 @@ let decompose_flow elms =
|
|||
let rec loop fl =
|
||||
let best = ref (TySSet.empty, TySSet.empty) in
|
||||
let best_v = ref 0 in
|
||||
TySMap.iter (fun q qs1 ->
|
||||
TySMap.iter (fun _ qs1 ->
|
||||
match TySSet.elements qs1 with
|
||||
| [] -> ()
|
||||
| q2 :: qs ->
|
||||
|
@ -409,7 +409,7 @@ let decompose_flow_e name elms =
|
|||
let rec loop fl =
|
||||
let best = ref (TyESet.empty, TyESet.empty) in
|
||||
let best_v = ref 0 in
|
||||
TyEMap.iter (fun q qs1 ->
|
||||
TyEMap.iter (fun _ qs1 ->
|
||||
match TyESet.elements qs1 with
|
||||
| [] -> ()
|
||||
| q2 :: qs ->
|
||||
|
@ -471,7 +471,7 @@ let rec print_tyc st level pol ff t =
|
|||
) l
|
||||
)
|
||||
|
||||
and print_var_t st level pol ff va =
|
||||
and print_var_t st _ pol ff va =
|
||||
match va with
|
||||
| TyC.VNone -> Format.fprintf ff "_"
|
||||
| TyC.VPos qs -> Format.fprintf ff "+%a" (print_tyss st 10 pol) qs
|
||||
|
@ -480,7 +480,7 @@ and print_var_t st level pol ff va =
|
|||
Format.fprintf ff "[+%a -%a]"
|
||||
(print_tyss st 10 pol) qsp (print_tyss st 10 (not pol)) qsn
|
||||
|
||||
and print_var_e st level pol ff va =
|
||||
and print_var_e st _ pol ff va =
|
||||
match va with
|
||||
| TyC.VNone -> Format.fprintf ff "_"
|
||||
| TyC.VPos qs -> Format.fprintf ff "+[%a]" (print_eff st 10 pol) qs
|
||||
|
@ -493,18 +493,18 @@ and print_arg st level pol ff = function
|
|||
| TyC.AType va -> print_var_t st level pol ff va
|
||||
| TyC.AEff va -> print_var_e st level pol ff va
|
||||
|
||||
and print_eff st level pol ff t =
|
||||
and print_eff st _ pol ff t =
|
||||
let eff, def = t.TyE.flows in
|
||||
let _, _, _, (enamee, enamed) = st in
|
||||
let _, _, _, (enamee, _) = st in
|
||||
let get name = try Atom.Map.find name eff with Not_found -> def in
|
||||
let l = List.map (fun (name, _) -> (Some name, get name))
|
||||
(Atom.Map.bindings enamee) @ [(None, def)] in
|
||||
let printed = ref false in
|
||||
List.iteri (fun i (name, d) ->
|
||||
List.iter (fun (name, d) ->
|
||||
printed := print_ep st 6 pol name ff d !printed
|
||||
) l
|
||||
|
||||
and print_ep st level pol name ff (es, b) needs_sep =
|
||||
and print_ep st _ pol name ff (es, b) needs_sep =
|
||||
let _, _, _, (enamee, enamed) = st in
|
||||
let mp = match name with None -> enamed | Some name -> Atom.Map.find name enamee in
|
||||
let get t = try TyEMap.find t mp with Not_found -> SSet.empty in
|
||||
|
|
Loading…
Reference in New Issue