From a9745d914c8a156b76a95cbd9f4052ca06b4a55a Mon Sep 17 00:00:00 2001 From: Hugo Herbelin Date: Sat, 17 Oct 2020 21:40:57 +0200 Subject: Fixes #13216 (use of type classes in the return clause of a match). This was deactivated in fb1c2a017e but it seems useful (e.g. in contribs containers). It seems to be useful --- pretyping/cases.ml | 2 +- test-suite/bugs/closed/bug_13216.v | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 test-suite/bugs/closed/bug_13216.v diff --git a/pretyping/cases.ml b/pretyping/cases.ml index 4a29db0dcf..5de0745d17 100644 --- a/pretyping/cases.ml +++ b/pretyping/cases.ml @@ -298,7 +298,7 @@ let inductive_template env sigma tmloc ind = let ty = EConstr.of_constr ty in let ty' = substl subst ty in let sigma, e = - Evarutil.new_evar env ~src:(hole_source n) ~typeclass_candidate:false sigma ty' + Evarutil.new_evar env ~src:(hole_source n) sigma ty' in (sigma, e::subst,e::evarl,n+1) | LocalDef (na,b,ty) -> diff --git a/test-suite/bugs/closed/bug_13216.v b/test-suite/bugs/closed/bug_13216.v new file mode 100644 index 0000000000..54a28a9c53 --- /dev/null +++ b/test-suite/bugs/closed/bug_13216.v @@ -0,0 +1,4 @@ +Class A. +Declare Instance a:A. +Inductive T `(A) := C. +Definition f x := match x with C _ => 0 end. -- cgit v1.2.3 From 1a36a0e4b29b358b05b02515c6c001672e3491e8 Mon Sep 17 00:00:00 2001 From: Hugo Herbelin Date: Mon, 19 Oct 2020 08:18:29 +0200 Subject: Adding change log for #13217. --- .../13217-master+fix13216-typeclass-for-match-return-clause.rst | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 doc/changelog/02-specification-language/13217-master+fix13216-typeclass-for-match-return-clause.rst diff --git a/doc/changelog/02-specification-language/13217-master+fix13216-typeclass-for-match-return-clause.rst b/doc/changelog/02-specification-language/13217-master+fix13216-typeclass-for-match-return-clause.rst new file mode 100644 index 0000000000..2d8230b965 --- /dev/null +++ b/doc/changelog/02-specification-language/13217-master+fix13216-typeclass-for-match-return-clause.rst @@ -0,0 +1,5 @@ +- **Fixed:** + Allow use of type classes inference for the return predicate of a :n:`match` + (was deactivated in versions 8.10 to 8.12, `#13217 `_, + fixes `#13216 `_, + by Hugo Herbelin). -- cgit v1.2.3