diff options
author | Benjamin Gregoire <Benjamin.Gregoire@inria.fr> | 2015-03-26 14:24:54 +0100 |
---|---|---|
committer | Benjamin Gregoire <Benjamin.Gregoire@inria.fr> | 2015-03-26 15:43:41 +0100 |
commit | 5c6a50d6ec1d04bacd3e41ffbb88453fef92cd5d (patch) | |
tree | e6ad09fca44ec6c848448c1d6be261897eecbf75 /kernel/vconv.ml | |
parent | c9074aa238e73bb932be67c67479b11bc95cd47a (diff) |
Fix bug 4157,
change the representation of inductive constructor
when there is too many non constant constructors in the inductive type
Conflicts:
kernel/cbytegen.ml
Diffstat (limited to 'kernel/vconv.ml')
-rw-r--r-- | kernel/vconv.ml | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/vconv.ml b/kernel/vconv.ml index 29315b0a9..6044e1846 100644 --- a/kernel/vconv.ml +++ b/kernel/vconv.ml @@ -63,9 +63,9 @@ 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 b1, Vconstr_block b2 -> + | Vconstr_block (tag1, b1), Vconstr_block (tag2, b2) -> let sz = bsize b1 in - if Int.equal (btag b1) (btag b2) && Int.equal sz (bsize b2) then + if Int.equal tag1 tag2 && Int.equal sz (bsize b2) then let rcu = ref cu in for i = 0 to sz - 1 do rcu := conv_val env CONV k (bfield b1 i) (bfield b2 i) !rcu |