aboutsummaryrefslogtreecommitdiffhomepage
path: root/pretyping/cbv.ml
diff options
context:
space:
mode:
authorGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2014-10-15 16:55:56 +0200
committerGravatar Matthieu Sozeau <matthieu.sozeau@inria.fr>2014-10-15 16:57:19 +0200
commit978ae7d9323558099efb0c4e4e39549221378d5d (patch)
tree355d40432834d1207d26b339f9a9f21e97d38faa /pretyping/cbv.ml
parentf8023074b3a82e8c8adb4ee380c07a68bdea5961 (diff)
To stay closer to non-primitive projections, only unfold primitive
projections in cbv when delta _and_ beta flags are set. Add test-suite file for bug 3700 too.
Diffstat (limited to 'pretyping/cbv.ml')
-rw-r--r--pretyping/cbv.ml5
1 files changed, 3 insertions, 2 deletions
diff --git a/pretyping/cbv.ml b/pretyping/cbv.ml
index 4db9cf066..0e7804bc7 100644
--- a/pretyping/cbv.ml
+++ b/pretyping/cbv.ml
@@ -200,8 +200,9 @@ let rec norm_head info env t stack =
| Proj (p, c) ->
let p' =
- if red_set (info_flags info) (fCONST (Projection.constant p)) then
- Projection.unfold p
+ if red_set (info_flags info) (fCONST (Projection.constant p))
+ && red_set (info_flags info) fBETA
+ then Projection.unfold p
else p
in
let pinfo = Environ.lookup_projection p (info_env info) in