diff options
| author | herbelin | 2002-12-10 09:54:38 +0000 |
|---|---|---|
| committer | herbelin | 2002-12-10 09:54:38 +0000 |
| commit | ba268db78c86f9ca0ccdb2524193e5346f7155b3 (patch) | |
| tree | f728a945fb3ee5ceef238a0a5f1afb67a68a5731 /kernel | |
| parent | c25437ecaac7edd4d5547c9e9c5fb05e54b31b21 (diff) | |
Déplacement du hash-consing vers declare.ml
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@3412 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/safe_typing.ml | 6 | ||||
| -rw-r--r-- | kernel/term_typing.ml | 6 | ||||
| -rw-r--r-- | kernel/typeops.ml | 3 |
3 files changed, 12 insertions, 3 deletions
diff --git a/kernel/safe_typing.ml b/kernel/safe_typing.ml index f82921ba95..52fe3a1356 100644 --- a/kernel/safe_typing.ml +++ b/kernel/safe_typing.ml @@ -134,9 +134,11 @@ let add_constant dir l decl senv = check_label l senv.labset; let cb = match decl with ConstantEntry ce -> translate_constant senv.env ce - | GlobalRecipe r -> translate_recipe senv.env r + | GlobalRecipe r -> + let cb = translate_recipe senv.env r in + if dir = empty_dirpath then hcons_constant_body cb else cb in - let cb = if dir = empty_dirpath then hcons_constant_body cb else cb in +(* let cb = if dir = empty_dirpath then hcons_constant_body cb else cb in*) let env' = Environ.add_constraints cb.const_constraints senv.env in let kn = make_kn senv.modinfo.modpath dir l in let env'' = Environ.add_constant kn cb env' in diff --git a/kernel/term_typing.ml b/kernel/term_typing.ml index 1145ee94b0..0860b95eed 100644 --- a/kernel/term_typing.ml +++ b/kernel/term_typing.ml @@ -29,7 +29,11 @@ let constrain_type env j cst1 = function let cst3 = try conv_leq env j.uj_type tj.utj_val with NotConvertible -> error_actual_type env j tj.utj_val in - tj.utj_val, Constraint.union (Constraint.union cst1 cst2) cst3 + let typ = + if t = tj.utj_val then t else + (error "Kernel built a type different from its input\n"; + flush stdout; tj.utj_val) in + typ, Constraint.union (Constraint.union cst1 cst2) cst3 let translate_local_def env (b,topt) = diff --git a/kernel/typeops.ml b/kernel/typeops.ml index 88de140dfa..31dd7e08a0 100644 --- a/kernel/typeops.ml +++ b/kernel/typeops.ml @@ -444,6 +444,9 @@ and execute_list env l cu = let infer env constr = let (j,(cst,_)) = execute env constr (Constraint.empty, universes env) in + let j = if j.uj_val = constr then { j with uj_val = constr } else + (error "Kernel built a body different from its input\n"; + flush stdout; j) in (j, cst) let infer_type env constr = |
