summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bytecomp/translcore.ml4
1 files changed, 3 insertions, 1 deletions
diff --git a/bytecomp/translcore.ml b/bytecomp/translcore.ml
index 8005f39691..7e820c269b 100644
--- a/bytecomp/translcore.ml
+++ b/bytecomp/translcore.ml
@@ -579,7 +579,9 @@ let transl_implicit loc env ty (gen, non_gen) =
let rec try_decl can_gen id =
let (path, decl) = Ident.find_same id values in
- if equal env false [ty] [decl.val_type] then
+ if equal env false [ty] [decl.val_type] ||
+ (can_gen && Ctype.matches env ty decl.val_type)
+ then
transl_path path
else
let t = expand_head env (if can_gen then instance decl.val_type else decl.val_type) in