mirror of
https://github.com/c-cube/ocaml-containers.git
synced 2025-12-06 11:15:31 -05:00
fix build for 4.11 by working around -nolabels
This commit is contained in:
parent
8683153cc9
commit
d60bea1a98
7 changed files with 55 additions and 53 deletions
|
|
@ -14,7 +14,7 @@
|
|||
(modes native)
|
||||
(modules run_qtest)
|
||||
; disable some warnings in qtests
|
||||
(flags :standard -warn-error -a -w -3-33-35-27-39-50 -nolabels)
|
||||
(flags :standard -warn-error -a -w -3-33-35-27-39-50)
|
||||
(libraries iter gen qcheck containers containers.unix unix uutf threads))
|
||||
|
||||
(alias
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ let str_sub ?(offset=0) ~sub:s' s =
|
|||
aux offset
|
||||
|
||||
let is_suffix ~sub s =
|
||||
String.length s >= String.length sub &&
|
||||
str_sub ~offset:(String.length s - String.length sub) ~sub s
|
||||
|
||||
let is_code file = is_suffix ~sub:".ml" file || is_suffix ~sub:".mli" file
|
||||
|
|
@ -22,6 +23,7 @@ let do_not_test file =
|
|||
is_suffix ~sub:"mkflags.ml" file ||
|
||||
is_suffix ~sub:"mkshims.ml" file ||
|
||||
is_suffix ~sub:"unlabel.ml" file ||
|
||||
is_suffix ~sub:"check_labelled_mods.ml" file ||
|
||||
is_suffix ~sub:"utop.ml" file
|
||||
|
||||
let prefix = "src"
|
||||
|
|
|
|||
|
|
@ -713,19 +713,3 @@ module Infix = struct
|
|||
end
|
||||
|
||||
include Infix
|
||||
|
||||
|
||||
(* test consistency of interfaces *)
|
||||
(*$inject
|
||||
module FA = CCShimsArray_.Floatarray
|
||||
module type L = module type of CCArray with module Floatarray := FA
|
||||
module type LL = module type of CCArrayLabels with module Floatarray := FA
|
||||
*)
|
||||
|
||||
(*$R
|
||||
ignore (module CCArrayLabels : L)
|
||||
*)
|
||||
|
||||
(*$R
|
||||
ignore (module CCArray : LL)
|
||||
*)
|
||||
|
|
|
|||
|
|
@ -1052,8 +1052,8 @@ let remove ~eq x l =
|
|||
remove' eq x [] l
|
||||
|
||||
(*$T
|
||||
remove ~eq:CCInt.equal 1 [2;1;3;3;2;1] = [2;3;3;2]
|
||||
remove ~eq:CCInt.equal 10 [1;2;3] = [1;2;3]
|
||||
remove ~eq:CCInt.equal ~key:1 [2;1;3;3;2;1] = [2;3;3;2]
|
||||
remove ~eq:CCInt.equal ~key:10 [1;2;3] = [1;2;3]
|
||||
*)
|
||||
|
||||
let filter_map f l =
|
||||
|
|
@ -1568,13 +1568,13 @@ module Assoc = struct
|
|||
(*$=
|
||||
[1,"1"; 2,"22"] \
|
||||
(Assoc.update ~eq:CCInt.equal \
|
||||
(function Some "2" -> Some "22" | _ -> assert false) 2 [1,"1"; 2,"2"] |> lsort)
|
||||
~f:(function Some "2" -> Some "22" | _ -> assert false) 2 [1,"1"; 2,"2"] |> lsort)
|
||||
[1,"1"; 3,"3"] \
|
||||
(Assoc.update ~eq:CCInt.equal \
|
||||
(function Some "2" -> None | _ -> assert false) 2 [1,"1"; 2,"2"; 3,"3"] |> lsort)
|
||||
~f:(function Some "2" -> None | _ -> assert false) 2 [1,"1"; 2,"2"; 3,"3"] |> lsort)
|
||||
[1,"1"; 2,"2"; 3,"3"] \
|
||||
(Assoc.update ~eq:CCInt.equal \
|
||||
(function None -> Some "3" | _ -> assert false) 3 [1,"1"; 2,"2"] |> lsort)
|
||||
~f:(function None -> Some "3" | _ -> assert false) 3 [1,"1"; 2,"2"] |> lsort)
|
||||
*)
|
||||
|
||||
let remove ~eq x l =
|
||||
|
|
@ -1811,19 +1811,3 @@ let pp ?(pp_start=fun _ () -> ()) ?(pp_stop=fun _ () -> ())
|
|||
~pp_stop:(fun fmt () -> Format.fprintf fmt "]") CCFormat.int)) \
|
||||
[1;2;3])
|
||||
*)
|
||||
|
||||
|
||||
(* test consistency of interfaces *)
|
||||
(*$inject
|
||||
module type L = module type of CCList
|
||||
module type LL = module type of CCListLabels
|
||||
*)
|
||||
|
||||
(*$R
|
||||
ignore (module CCListLabels : L)
|
||||
*)
|
||||
|
||||
(*$R
|
||||
ignore (module CCList : LL)
|
||||
*)
|
||||
|
||||
|
|
|
|||
|
|
@ -1072,18 +1072,3 @@ include Infix
|
|||
"ab" < "abc"
|
||||
"123" < "14"
|
||||
*)
|
||||
|
||||
(* test consistency of interfaces *)
|
||||
(*$inject
|
||||
module type L = module type of CCString
|
||||
module type LL = module type of CCStringLabels
|
||||
*)
|
||||
|
||||
(*$R
|
||||
ignore (module CCStringLabels : L)
|
||||
*)
|
||||
|
||||
(*$R
|
||||
ignore (module CCString : LL)
|
||||
*)
|
||||
|
||||
|
|
|
|||
34
src/core/tests/check_labelled_mods.ml
Normal file
34
src/core/tests/check_labelled_mods.ml
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
|
||||
|
||||
module A = struct
|
||||
(* test consistency of interfaces *)
|
||||
module FA = CCShimsArray_.Floatarray
|
||||
module type L = module type of CCArray with module Floatarray := FA
|
||||
module type LL = module type of CCArrayLabels with module Floatarray := FA
|
||||
|
||||
let () = ignore (module CCArrayLabels : L)
|
||||
|
||||
let () = ignore (module CCArray : LL)
|
||||
end
|
||||
|
||||
module S = struct
|
||||
(* test consistency of interfaces *)
|
||||
module type L = module type of CCString
|
||||
module type LL = module type of CCStringLabels
|
||||
|
||||
let () = ignore (module CCStringLabels : L)
|
||||
|
||||
let () = ignore (module CCString : LL)
|
||||
|
||||
end
|
||||
|
||||
module L = struct
|
||||
(* test consistency of interfaces *)
|
||||
module type L = module type of CCList
|
||||
module type LL = module type of CCListLabels
|
||||
let () = ignore (module CCListLabels : L)
|
||||
|
||||
let () = ignore (module CCList : LL)
|
||||
end
|
||||
|
||||
let () = print_endline "labelled modules are consistent ✔"
|
||||
13
src/core/tests/dune
Normal file
13
src/core/tests/dune
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
|
||||
|
||||
(executable
|
||||
(name check_labelled_mods)
|
||||
(flags :standard -warn-error -a -w -3-33-35-27-39-50 -nolabels)
|
||||
(libraries containers))
|
||||
|
||||
; what matters is that it compiles
|
||||
(alias
|
||||
(name runtest)
|
||||
(locks ctest)
|
||||
(package containers)
|
||||
(action (run ./check_labelled_mods.exe)))
|
||||
Loading…
Add table
Reference in a new issue