jon.recoil.org

Module Jkind.Violation

type violation =
  1. | Not_a_subjkind : (Allowance.allowed * 'r1) Types.jkind * ('l * 'r2) Types.jkind * Jkind.Sub_failure_reason.t list -> Jkind.Violation.violation
  2. | No_intersection : 'd Types.jkind * ('l * Allowance.allowed) Types.jkind -> Jkind.Violation.violation
type t

Set ?missing_cmi to mark t as having arisen from a missing cmi

val is_missing_cmi : Jkind.Violation.t -> bool

Is this error from a missing cmi?

val report_with_offender : offender:(Stdlib.Format.formatter -> unit) -> level:int -> Stdlib.Format.formatter -> Jkind.Violation.t -> unit

Prints a violation and the thing that had an unexpected jkind (offender, which you supply an arbitrary printer for).

val report_with_offender_sort : offender:(Stdlib.Format.formatter -> unit) -> level:int -> Stdlib.Format.formatter -> Jkind.Violation.t -> unit

Like report_with_offender, but additionally prints that the issue is that a representable jkind was expected.

val report_with_name : name:string -> level:int -> Stdlib.Format.formatter -> Jkind.Violation.t -> unit

Simpler version of report_with_offender for when the thing that had an unexpected jkind is available as a string.