package merlin-lib
Merlin's libraries
Install
Dune Dependency
Authors
Maintainers
Sources
merlin-5.5-503.tbz
sha256=67da3b34f2fea07678267309f61da4a2c6f08298de0dc59655b8d30fd8269af1
sha512=1fb3b5180d36aa82b82a319e15b743b802b6888f0dc67645baafdb4e18dfc23a7b90064ec9bc42f7424061cf8cde7f8839178d8a8537bf4596759f3ff4891873
doc/src/merlin-lib.ocaml_utils/consistbl.ml.html
Source file consistbl.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
(**************************************************************************) (* *) (* OCaml *) (* *) (* Xavier Leroy, projet Cristal, INRIA Rocquencourt *) (* *) (* Copyright 2002 Institut National de Recherche en Informatique et *) (* en Automatique. *) (* *) (* All rights reserved. This file is distributed under the terms of *) (* the GNU Lesser General Public License version 2.1, with the *) (* special exception on linking described in the file LICENSE. *) (* *) (**************************************************************************) (* Consistency tables: for checking consistency of module CRCs *) open Misc module Make (Module_name : sig type t module Set : Set.S with type elt = t module Map : Map.S with type key = t module Tbl : Hashtbl.S with type key = t val compare : t -> t -> int end) = struct type t = (Digest.t * filepath) Module_name.Tbl.t let create () = Module_name.Tbl.create 13 let clear = Module_name.Tbl.clear exception Inconsistency of { unit_name : Module_name.t; inconsistent_source : string; original_source : string; } exception Not_available of Module_name.t let check_ tbl name crc source = let (old_crc, old_source) = Module_name.Tbl.find tbl name in if crc <> old_crc then raise(Inconsistency { unit_name = name; inconsistent_source = source; original_source = old_source; }) let check tbl name crc source = try check_ tbl name crc source with Not_found -> Module_name.Tbl.add tbl name (crc, source) let check_noadd tbl name crc source = try check_ tbl name crc source with Not_found -> raise (Not_available name) let source tbl name = snd (Module_name.Tbl.find tbl name) let extract l tbl = let l = List.sort_uniq Module_name.compare l in List.fold_left (fun assc name -> try let (crc, _) = Module_name.Tbl.find tbl name in (name, Some crc) :: assc with Not_found -> (name, None) :: assc) [] l let extract_map mod_names tbl = Module_name.Set.fold (fun name result -> try let (crc, _) = Module_name.Tbl.find tbl name in Module_name.Map.add name (Some crc) result with Not_found -> Module_name.Map.add name None result) mod_names Module_name.Map.empty let filter p tbl = let to_remove = ref [] in Module_name.Tbl.iter (fun name _ -> if not (p name) then to_remove := name :: !to_remove) tbl; List.iter (fun name -> while Module_name.Tbl.mem tbl name do Module_name.Tbl.remove tbl name done) !to_remove end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>