aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping/cases.ml
diff options
context:
space:
mode:
authorGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2017-05-22 10:13:47 +0200
committerGravatar Hugo Herbelin <Hugo.Herbelin@inria.fr>2018-03-27 12:49:33 +0200
commit414e4ea9f226ade9686da28ebee39cd1b93f42a6 (patch)
tree31608068084331524c6874bf3415397a37532378 /pretyping/cases.ml
parentcf44127379de49770232d6956b0455f92d6d6323 (diff)
Fixing #5547 (typability of return predicate in nested pattern-matching).
Answering to commit about #5500: we don't know in general if the return predicate T(y1,..,yn,x) in the intermediate step of a nested pattern-matching is a sort, but we don't even know if it is well-typed: retyping is not enough, we need full typing.
Diffstat (limited to 'pretyping/cases.ml')
-rw-r--r--pretyping/cases.ml1
1 files changed, 1 insertions, 0 deletions
diff --git a/pretyping/cases.ml b/pretyping/cases.ml
index a5b7a9e6f..a48889c6c 100644
--- a/pretyping/cases.ml
+++ b/pretyping/cases.ml
@@ -1427,6 +1427,7 @@ and match_current pb (initial,tomatch) =
let case =
make_case_or_project pb.env !(pb.evdref) indf ci pred current brvals
in
+ let _ = Typing.e_type_of pb.env pb.evdref pred in
Typing.check_allowed_sort pb.env !(pb.evdref) mind current pred;
{ uj_val = applist (case, inst);
uj_type = prod_applist !(pb.evdref) typ inst }