diff options
author | Benjamin Gregoire <Benjamin.Gregoire@inria.fr> | 2015-03-27 06:44:02 +0100 |
---|---|---|
committer | Benjamin Gregoire <Benjamin.Gregoire@inria.fr> | 2015-03-27 06:46:08 +0100 |
commit | 924a6e99f85aa0d70d42e753d6901b067ebf8f1d (patch) | |
tree | bc6d71b35edbd645394aa441722f7a2a14741ec5 /kernel/vconv.ml | |
parent | 00894adf6fc11f4336a3ece0c347676bbf0b4c11 (diff) |
use a more compact representation of non-constant constructors
for which there corresponding tag are greater than max_variant_tag.
The code is a merge with the patch proposed by Bruno on
github barras/coq
commit/504c753d7bb104ff4453fa0ede21c870ae2bb00c
Diffstat (limited to 'kernel/vconv.ml')
-rw-r--r-- | kernel/vconv.ml | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/vconv.ml b/kernel/vconv.ml index 6044e1846..1c31cc041 100644 --- a/kernel/vconv.ml +++ b/kernel/vconv.ml @@ -63,7 +63,8 @@ and conv_whd env pb k whd1 whd2 cu = else conv_arguments env k args1 args2 (conv_cofix env k cf1 cf2 cu) | Vconstr_const i1, Vconstr_const i2 -> if Int.equal i1 i2 then cu else raise NotConvertible - | Vconstr_block (tag1, b1), Vconstr_block (tag2, b2) -> + | Vconstr_block b1, Vconstr_block b2 -> + let tag1 = btag b1 and tag2 = btag b2 in let sz = bsize b1 in if Int.equal tag1 tag2 && Int.equal sz (bsize b2) then let rcu = ref cu in |