You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.7 KiB

(*
* Copyright (c) 2016 - present Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*)
open! IStd
type mode = On | Off
type issue_desc =
{ id: string
; (* issue id *)
description: string
; (* Description in the error message *)
doc_url: string option
; mode: mode
; name: string option
; (* issue name, if no name is given name will be a readable version of id,
by removing underscores and capitalizing first letters of words *)
loc: Location.t
; (* location in the code *)
severity: Exceptions.err_kind
; suggestion: string option
(* an optional suggestion or correction *) }
let string_of_mode m = match m with On -> "On" | Off -> "Off"
let pp_issue fmt issue =
Format.fprintf fmt "{@\n Id = %s@\n" issue.id ;
Format.fprintf fmt "{ Name = %s@\n" (Option.value ~default:"" issue.name) ;
Format.fprintf fmt " Severity = %s@\n" (Exceptions.err_kind_string issue.severity) ;
Format.fprintf fmt " Mode = %s@\n" (string_of_mode issue.mode) ;
Format.fprintf fmt " Description = %s@\n" issue.description ;
Format.fprintf fmt " Suggestion = %s@\n" (Option.value ~default:"" issue.suggestion) ;
Format.fprintf fmt " Docs URL = %s@\n" (Option.value ~default:"" issue.doc_url) ;
Format.fprintf fmt " Loc = %s@\n" (Location.to_string issue.loc) ;
Format.fprintf fmt "}@\n"
let should_run_check mode =
match mode with
| On ->
true
| Off ->
Config.debug_mode || Config.debug_exceptions || not Config.filtering