aboutsummaryrefslogtreecommitdiff
path: root/vernac
diff options
context:
space:
mode:
authorGaëtan Gilbert2020-07-07 12:45:12 +0200
committerGaëtan Gilbert2020-07-07 12:47:53 +0200
commit1bc0b150857faad474b691b1cfb24e9a99f21395 (patch)
tree4764abb8833dd2c9e37fd330a3c8bb90c93f39e4 /vernac
parent8907a5b7d2b91bff0b573956a05e4679b5238161 (diff)
Fix erroneous implicits-in-term warning
Fix #12651
Diffstat (limited to 'vernac')
-rw-r--r--vernac/comDefinition.ml19
1 files changed, 11 insertions, 8 deletions
diff --git a/vernac/comDefinition.ml b/vernac/comDefinition.ml
index b9ed4f838d..5ee847a17e 100644
--- a/vernac/comDefinition.ml
+++ b/vernac/comDefinition.ml
@@ -29,14 +29,17 @@ let warn_implicits_in_term =
let check_imps ~impsty ~impsbody =
let rec aux impsty impsbody =
- match impsty, impsbody with
- | a1 :: impsty, a2 :: impsbody ->
- (match a1.CAst.v, a2.CAst.v with
- | None , None -> aux impsty impsbody
- | Some _ , Some _ -> aux impsty impsbody
- | _, _ -> warn_implicits_in_term ?loc:a2.CAst.loc ())
- | _ :: _, [] | [], _ :: _ -> (* Information only on one side *) ()
- | [], [] -> () in
+ match impsty, impsbody with
+ | a1 :: impsty, a2 :: impsbody ->
+ let () = match a1.CAst.v, a2.CAst.v with
+ | None , None | Some _, None -> ()
+ | Some (_,b1) , Some (_,b2) ->
+ if not ((b1:bool) = b2) then warn_implicits_in_term ?loc:a2.CAst.loc ()
+ | None, Some _ -> warn_implicits_in_term ?loc:a2.CAst.loc ()
+ in
+ aux impsty impsbody
+ | _ :: _, [] | [], _ :: _ -> (* Information only on one side *) ()
+ | [], [] -> () in
aux impsty impsbody
let protect_pattern_in_binder bl c ctypopt =