[bug hash] Ignore line and column in lambda's name when computing bug hash

Summary: In cpp, lambda's `operator()` name includes line and column numbers which were not ignore when computing bug hash.

Reviewed By: jberdine

Differential Revision: D24649125

fbshipit-source-id: 7a235fd3e
master
Daiva Naudziuniene 4 years ago committed by Facebook GitHub Bot
parent 9a3ea9aa61
commit 9166d60af7

@ -33,10 +33,14 @@ let compute_hash ~(severity : string) ~(bug_type : string) ~(proc_name : Procnam
let base_filename = Filename.basename file in let base_filename = Filename.basename file in
let hashable_procedure_name = Procname.hashable_name proc_name in let hashable_procedure_name = Procname.hashable_name proc_name in
let location_independent_qualifier = let location_independent_qualifier =
(* Removing the line,column, and infer temporary variable (e.g., n$67) information from the (* Removing the line,column, line and column in lambda's name
(e.g. test::lambda.cpp:10:15::operator()),
and infer temporary variable (e.g., n$67) information from the
error message as well as the index of the annonymmous class to make the hash invariant error message as well as the index of the annonymmous class to make the hash invariant
when moving the source code in the file *) when moving the source code in the file *)
Str.global_replace (Str.regexp "\\(line \\|column \\|parameter \\|\\$\\)[0-9]+") "$_" qualifier Str.global_replace
(Str.regexp "\\(line \\|column \\|:\\|parameter \\|\\$\\)[0-9]+")
"$_" qualifier
in in
Utils.better_hash Utils.better_hash
(severity, bug_type, hashable_procedure_name, base_filename, location_independent_qualifier) (severity, bug_type, hashable_procedure_name, base_filename, location_independent_qualifier)

Loading…
Cancel
Save