@ -18,6 +18,32 @@ module L = Die
type analyzer = Checkers | Linters [ @@ deriving compare ]
type analyzer = Checkers | Linters [ @@ deriving compare ]
type checkers =
{ annotation_reachability : bool ref
; biabduction : bool ref
; bufferoverrun : bool ref
; class_loads : bool ref
; cost : bool ref
; eradicate : bool ref
; fragment_retains_view : bool ref
; immutable_cast : bool ref
; inefficient_keyset_iterator : bool ref
; linters : bool ref
; litho : bool ref
; liveness : bool ref
; loop_hoisting : bool ref
; nullsafe : bool ref
; printf_args : bool ref
; pulse : bool ref
; purity : bool ref
; quandary : bool ref
; quandaryBO : bool ref
; racerd : bool ref
; resource_leak : bool ref
; siof : bool ref
; starvation : bool ref
; uninit : bool ref }
let equal_analyzer = [ % compare . equal : analyzer ]
let equal_analyzer = [ % compare . equal : analyzer ]
let string_to_analyzer = [ ( " checkers " , Checkers ) ; ( " linters " , Linters ) ]
let string_to_analyzer = [ ( " checkers " , Checkers ) ; ( " linters " , Linters ) ]
@ -637,30 +663,30 @@ and analyzer =
instance , to enable only the biabduction analysis , run with $ ( b , - - biabduction - only ) . "
instance , to enable only the biabduction analysis , run with $ ( b , - - biabduction - only ) . "
and ( annotation_reachability
and { annotation_reachability
, biabduction
; biabduction
, bufferoverrun
; bufferoverrun
, class_loads
; class_loads
, cost
; cost
, eradicate
; eradicate
, fragment_retains_view
; fragment_retains_view
, immutable_cast
; immutable_cast
, inefficient_keyset_iterator
; inefficient_keyset_iterator
, linters
; linters
, litho
; litho
, liveness
; liveness
, loop_hoisting
; loop_hoisting
, nullsafe
; nullsafe
, printf_args
; printf_args
, pulse
; pulse
, purity
; purity
, quandary
; quandary
, quandaryBO
; quandaryBO
, racerd
; racerd
, resource_leak
; resource_leak
, siof
; siof
, starvation
; starvation
, uninit ) =
; uninit } =
let mk_checker ? ( default = false ) ? ( deprecated = [] ) ~ long doc =
let mk_checker ? ( default = false ) ? ( deprecated = [] ) ~ long doc =
let var =
let var =
CLOpt . mk_bool ~ long
CLOpt . mk_bool ~ long
@ -759,30 +785,30 @@ and ( annotation_reachability
[] (* do all the work in ~f *) []
[] (* do all the work in ~f *) []
(* do all the work in ~f *)
(* do all the work in ~f *)
in
in
( annotation_reachability
{ annotation_reachability
, biabduction
; biabduction
, bufferoverrun
; bufferoverrun
, class_loads
; class_loads
, cost
; cost
, eradicate
; eradicate
, fragment_retains_view
; fragment_retains_view
, immutable_cast
; immutable_cast
, inefficient_keyset_iterator
; inefficient_keyset_iterator
, linters
; linters
, litho
; litho
, liveness
; liveness
, loop_hoisting
; loop_hoisting
, nullsafe
; nullsafe
, printf_args
; printf_args
, pulse
; pulse
, purity
; purity
, quandary
; quandary
, quandaryBO
; quandaryBO
, racerd
; racerd
, resource_leak
; resource_leak
, siof
; siof
, starvation
; starvation
, uninit )
; uninit }
and annotation_reachability_cxx =
and annotation_reachability_cxx =