aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorherbelin2011-12-07 17:54:21 +0000
committerherbelin2011-12-07 17:54:21 +0000
commit88896f0ec58077675027dc6b7969adacb2045051 (patch)
tree7768212e3d01cf9538400f4a2626440073b98c6c
parentb01cda4e9cc3ffa7775b4a7df805358bff2e83b1 (diff)
Fixing a bug of commit r13310 (activating coercions only when module
is imported): in case of nested modules, activation was done as soon as the outermost module was imported. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@14775 85f007b7-540e-0410-9357-904b9bb8a0f7
-rw-r--r--pretyping/classops.ml4
-rw-r--r--test-suite/success/coercions.v8
2 files changed, 10 insertions, 2 deletions
diff --git a/pretyping/classops.ml b/pretyping/classops.ml
index fe4d0f300a..62d774bd77 100644
--- a/pretyping/classops.ml
+++ b/pretyping/classops.ml
@@ -375,8 +375,8 @@ let load_coercion _ o =
then
cache_coercion o
-let open_coercion _ o =
- if not
+let open_coercion i o =
+ if i = 1 && not
(!automatically_import_coercions || Flags.version_less_or_equal Flags.V8_2)
then
cache_coercion o
diff --git a/test-suite/success/coercions.v b/test-suite/success/coercions.v
index 908b5f77d3..001beae7e8 100644
--- a/test-suite/success/coercions.v
+++ b/test-suite/success/coercions.v
@@ -81,3 +81,11 @@ Coercion irrelevent := (fun _ => I) : True -> car (Build_Setoid True).
Definition ClaimB := forall (X Y:Setoid) (f: extSetoid X Y) (x:X), f x= f x.
+(* Check that coercions are made visible only when modules are imported *)
+
+Module A.
+ Module B. Coercion b2n (b:bool) := if b then 0 else 1. End B.
+ Fail Check S true.
+End A.
+Import A.
+Fail Check S true.