GumTreeDiff / gumtree

An awesome code differencing tool
https://github.com/GumTreeDiff/gumtree/wiki
GNU Lesser General Public License v3.0
917 stars 173 forks source link

Fix for type arguments of the generic functions in jdt #327

Closed pouryafard75 closed 8 months ago

pouryafard75 commented 8 months ago

This PR aims to fix issue https://github.com/GumTreeDiff/gumtree/issues/323.

TypeArguments of the method invocation are ignored after the introduction of MethodInvocationReceiver in 3.0 gen.jdt. Since java only allows to pass the type argument in case of having the receiver, I thought its better to have the reciver as the parent of the type arguments. In other words:

<String> emptyList()                         --> This runs into compilation error ❌ Collections.<String> emptyList()  --> Works fine ✅

Also, typeArguments seem to be an empty list (not null) in case of having basic method invocations. So there is no need for additional null check. I have also added a test to capture the newly added subtree.

jrfaller commented 8 months ago

Hi @pouryafard75 and thanks a lot for the PR!

LGTM! merging.