diff options
Diffstat (limited to 'pretyping/typeclasses.ml')
-rw-r--r-- | pretyping/typeclasses.ml | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/pretyping/typeclasses.ml b/pretyping/typeclasses.ml index 24a381179..0ad940aca 100644 --- a/pretyping/typeclasses.ml +++ b/pretyping/typeclasses.ml @@ -98,6 +98,8 @@ let new_instance cl info glob poly impl = if glob then Some (Lib.sections_depth ()) else None in + if match global with Some n -> n>0 && isVarRef impl | _ -> false then + CErrors.user_err (Pp.str "Cannot set Global an instance referring to a section variable."); { is_class = cl.cl_impl; is_info = info ; is_global = global ; @@ -358,6 +360,7 @@ let discharge_instance (_, (action, inst)) = match inst.is_global with | None -> None | Some n -> + assert (not (isVarRef inst.is_impl)); Some (action, { inst with is_global = Some (pred n); |