Open kitty-1998 opened 7 months ago
Thanks, yes, this is a known issue. The CHA call graph only includes edges to concrete methods, not abstract methods like Inner.bar
. Here, the bar
implementation that gets invoked is not immediately evident in the bytecode; the class containing the bar
implementation is generated at runtime using invokedynamic
(see details here). We do handle such cases with other call graph algorithms, but it's not obviously to me how to handle it in CHA without a good amount of additional complexity.
Hi, I found a code example which may help improve Wala. See the minimized code example below:
The method
main
calledbar
and call graph should have this edge, but I used CHA algorithm to construct the call graph and found no callee target ofmain
.My Wala version: 1.6.4