Summary: This diff adds a layer of report deduplication logic in addition to the existing scheme. Suppose issue 1 with trace1a and trace1b, and issue 2 with trace2a and trace2b. If trace1a ends at the same location as trace2a (resp., trace2b) and trace1b ends at the same location as trace2b (resp., trace2a), then consider issues 1 and 2 to be duplicates. This chooses to report the issue with the smaller sum of trace lengths, breaking ties using the issue hashes, and eventually the entire issue. Therefore there is a potential for flakiness with respect the the choice of which report to make within a hash-equivalence class. Reviewed By: sblackshear Differential Revision: D6519607 fbshipit-source-id: 63210abmaster
parent
7e8739de0a
commit
22ec29fabc
@ -0,0 +1,16 @@
|
||||
(*
|
||||
* Copyright (c) 2017 - 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 t = Typ.Procname.t * RacerDDomain.TraceElem.t * Location.t list
|
||||
|
||||
let encode decoded = B64.encode (Marshal.to_string decoded [])
|
||||
|
||||
let decode encoded = Marshal.from_string (B64.decode encoded) 0
|
@ -0,0 +1,16 @@
|
||||
(*
|
||||
* Copyright (c) 2017 - 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 t = Typ.Procname.t * RacerDDomain.TraceElem.t * Location.t list
|
||||
|
||||
val encode : t -> string
|
||||
|
||||
val decode : string -> t
|
Loading…
Reference in new issue