summaryrefslogtreecommitdiff
path: root/typing/types.ml
diff options
context:
space:
mode:
authorJacques Garrigue <garrigue@math.nagoya-u.ac.jp>2020-11-20 16:29:23 +0900
committerGitHub <noreply@github.com>2020-11-20 16:29:23 +0900
commitb47c34912c4fb8494d91245bbf7983b87884efb7 (patch)
treed869790bc339d82d43d5d1a4207ebdeca5fcad35 /typing/types.ml
parent547f9b8126fbb558de184a3424b0fc22a3d57f27 (diff)
downloadocaml-b47c34912c4fb8494d91245bbf7983b87884efb7.tar.gz
Mark datatypes as injective in recursive module approximations (#10029)
Diffstat (limited to 'typing/types.ml')
-rw-r--r--typing/types.ml5
1 files changed, 3 insertions, 2 deletions
diff --git a/typing/types.ml b/typing/types.ml
index 9d0817c09d..d723a30420 100644
--- a/typing/types.ml
+++ b/typing/types.ml
@@ -187,8 +187,9 @@ module Variance = struct
let conjugate v = swap May_pos May_neg (swap Pos Neg v)
let get_upper v = (mem May_pos v, mem May_neg v)
let get_lower v = (mem Pos v, mem Neg v, mem Inv v, mem Inj v)
- let unknown_signature ~arity =
- Misc.replicate_list unknown arity
+ let unknown_signature ~injective ~arity =
+ let v = if injective then set Inj true unknown else unknown in
+ Misc.replicate_list v arity
end
module Separability = struct