Summary: Two methods with identical method names but different number/type of args will have the same hash: e.g. `foo(int x)` and `foo(int x, int y)`. For Config Impact analysis, we assumed this type of hash collusion would never happen when we are comparing config-impact reports, but that assumption is wrong as demonstrated by the modified tests. To deal with these, in cost analysis, we pick the highest degree among the potential collisions. We follow a similar idea here, picking the highest number of unchecked callees. That has its own disadvantages: E.g. giving an example from cost, if we had `foo(int x)` with O(1) before, and after the change, we have also added a linear `foo(int x, int y)`, I think we would introduce a complexity increase. Still, it is better than picking only the first/last. Reviewed By: skcho Differential Revision: D27156722 fbshipit-source-id: c37388f1cmaster
parent
f56f18350d
commit
2b144509ab
Loading…
Reference in new issue