From 05c87ba330a9b4d02b150c196e390b9dd30be341 Mon Sep 17 00:00:00 2001 From: Matthieu Sozeau Date: Thu, 31 Oct 2013 11:56:30 +0100 Subject: Fix interface for template polymorphism, cleaning up code in all typing algorithms. --- kernel/fast_typeops.ml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'kernel/fast_typeops.ml') diff --git a/kernel/fast_typeops.ml b/kernel/fast_typeops.ml index a68888c8c9..e03720997c 100644 --- a/kernel/fast_typeops.ml +++ b/kernel/fast_typeops.ml @@ -384,17 +384,17 @@ let rec execute env cstr = let argst = execute_array env args in let ft = match kind_of_term f with - | Ind ind -> - (* Sort-polymorphism of inductive types *) - let args = Array.map (fun t -> lazy t) argst in - judge_of_inductive_knowing_parameters env ind args - | Const cst -> - (* Sort-polymorphism of constant *) - let args = Array.map (fun t -> lazy t) argst in + | Ind ind when Environ.template_polymorphic_ind ind env -> + (* Template sort-polymorphism of inductive types *) + let args = Array.map (fun t -> lazy t) argst in + judge_of_inductive_knowing_parameters env ind args + | Const cst when Environ.template_polymorphic_constant cst env -> + (* Template sort-polymorphism of constants *) + let args = Array.map (fun t -> lazy t) argst in judge_of_constant_knowing_parameters env cst args - | _ -> - (* No sort-polymorphism *) - execute env f + | _ -> + (* Full or no sort-polymorphism *) + execute env f in judge_of_apply env f ft args argst -- cgit v1.2.3