aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2016-02-19 14:27:31 +0100
committerPierre-Marie Pédrot2016-02-19 14:29:59 +0100
commit924d2833644735a9fa8289ffaa9bac9fbc43982c (patch)
tree417e27f2cb630d8a16cc0bb527fd957c83df2c2f
parentd3012c8ac308b18272ddaa90c4eae7e517b63c7c (diff)
Fixing bug #4580: [Set Refine Instance Mode] also used for Program Instance.
-rw-r--r--test-suite/bugs/closed/4580.v6
-rw-r--r--toplevel/classes.ml2
2 files changed, 7 insertions, 1 deletions
diff --git a/test-suite/bugs/closed/4580.v b/test-suite/bugs/closed/4580.v
new file mode 100644
index 0000000000..4ffd5f0f4b
--- /dev/null
+++ b/test-suite/bugs/closed/4580.v
@@ -0,0 +1,6 @@
+Require Import Program.
+
+Class Foo (A : Type) := foo : A.
+
+Unset Refine Instance Mode.
+Program Instance f1 : Foo nat := S _.
diff --git a/toplevel/classes.ml b/toplevel/classes.ml
index f73dd5a2e6..5f73b70a2e 100644
--- a/toplevel/classes.ml
+++ b/toplevel/classes.ml
@@ -290,7 +290,7 @@ let new_instance ?(abstract=false) ?(global=false) poly ctx (instid, bk, cl) pro
if not (Evd.has_undefined evm) && not (Option.is_empty term) then
declare_instance_constant k pri global imps ?hook id pl
poly evm (Option.get term) termtype
- else if !refine_instance || Option.is_empty term then begin
+ else if Flags.is_program_mode () || !refine_instance || Option.is_empty term then begin
let kind = Decl_kinds.Global, poly, Decl_kinds.DefinitionBody Decl_kinds.Instance in
if Flags.is_program_mode () then
let hook vis gr _ =