summarylogtreecommitdiffstats
path: root/4.05-typing-fix.patch
blob: 178e4d19debbf9dcfbdf0c3a17dcdb08315315d1 (plain)
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
From 0fa0a19f15998e89e4b04150dd74529bbd406f42 Mon Sep 17 00:00:00 2001
From: Gabriel Scherer <gabriel.scherer@gmail.com>
Date: Fri, 24 Feb 2017 22:30:23 -0500
Subject: [PATCH] 4.05 compatibility: use explicit module signatures

In 4.05, checking for non-generalizable inference variable ('_a)
(forbidden in toplevel modules and functors) happens before checking
the .ml file against the .mli signature, so non-generalizable
variables that were previously resolved through the .mli constraint
are now underspecified and result in a compilation failure
(see MPR#7414, GPR#929). This commit adds enough annotations to avoid
such underspecified variables in functors.
---
 internal/unimap.ml  | 2 +-
 public/uCharInfo.ml | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/internal/unimap.ml b/internal/unimap.ml
index b6fdbde..6a7cc30 100644
--- a/internal/unimap.ml
+++ b/internal/unimap.ml
@@ -58,7 +58,7 @@ val of_name : string -> t
 end
 
 
-module Make (Config : ConfigInt.Type) = struct
+module Make (Config : ConfigInt.Type) : Type = struct
 
 type mapping = {no_char : int; tbl : Tbl31.Bytes.t}
 
diff --git a/public/uCharInfo.ml b/public/uCharInfo.ml
index 69bf141..6a0337a 100644
--- a/public/uCharInfo.ml
+++ b/public/uCharInfo.ml
@@ -298,7 +298,7 @@ val load_composition_exclusion_tbl : unit -> UCharTbl.Bool.t
 
 end
 
-module Make (Config : ConfigInt.Type) = struct
+module Make (Config : ConfigInt.Type) : Type = struct
 include Unidata.Make(Config)
 
 (* General category *)