diff options
| author | herbelin | 2011-12-07 17:54:21 +0000 |
|---|---|---|
| committer | herbelin | 2011-12-07 17:54:21 +0000 |
| commit | 88896f0ec58077675027dc6b7969adacb2045051 (patch) | |
| tree | 7768212e3d01cf9538400f4a2626440073b98c6c | |
| parent | b01cda4e9cc3ffa7775b4a7df805358bff2e83b1 (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.ml | 4 | ||||
| -rw-r--r-- | test-suite/success/coercions.v | 8 |
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. |
