diff options
| -rw-r--r-- | test-suite/bugs/closed/4580.v | 6 | ||||
| -rw-r--r-- | toplevel/classes.ml | 2 |
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 _ = |
