From 0413899668e8be15df5065abdaf1d40ad3c2c31b Mon Sep 17 00:00:00 2001 From: Matthieu Sozeau Date: Sat, 6 Sep 2014 11:27:09 +0200 Subject: Fix checker to handle projections with eta and universe polymorphism correctly. --- checker/mod_checking.ml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'checker/mod_checking.ml') diff --git a/checker/mod_checking.ml b/checker/mod_checking.ml index 93b136c48..521d9e3ee 100644 --- a/checker/mod_checking.ml +++ b/checker/mod_checking.ml @@ -37,11 +37,16 @@ let check_constant_declaration env kn cb = check_polymorphic_arity env' ctxt par; env', it_mkProd_or_LetIn (Sort(Type par.template_level)) ctxt in - let body = + let () = match body_of_constant cb with | Some bd -> - let j = infer envty bd in - conv_leq envty j ty + (match cb.const_proj with + | None -> let j = infer envty bd in + conv_leq envty j ty + | Some pb -> + let env' = add_constant kn cb env' in + let j = infer env' bd in + conv_leq envty j ty) | None -> () in if cb.const_polymorphic then add_constant kn cb env -- cgit v1.2.3