Improve resolution of callees in EtsApplicationGraph
#263
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR improves the resolution of callees in
EtsApplicationGraph
. In a perfect world, matching suitable methods by their signature would be enough, however in some cases the available signature is incomplete, e.g. enclosing class might be missing. In order to still be able to resolve such calls, we consequently try to resolve the (single) callee: first, by name only, and next, by name and class. If these lookups fail (for example, if there are still multiple methods with matching names and enclosing classes, which be in the case of a multi-file project), we simply fall-back to the default behavior and match by the whole signature. Overall, we still rely on the signature to uniquely represent a method.