joern
joern copied to clipboard
[kotlin2cpg] Improve fullnames.
Improve and cleanup the fullname calculation for methods and callsites. The most noteable changes here are:
- The lambda function naming schema changed from
package.<fileName>.<lambda>counter:signature
topackage.scope.<lambda>counter:signature
. This give a better indication which lambda function is represented also gets rid of exception of using the filename in the method fullnames. - Fixed lambda function signatures.
- The fullname schema of extension methods changed from
extendedClassFullName.extensionMethodName:signatureWithoutThisParameter
topackage.extensionMethodName:signatureWithThisParameter
The fact that the this parameter is part of the signature is an exception in our java fullnames but necessary in order to distinguish otherwise identical extension methods. - We avoid the recalculation of the binding context with every file processed. This is now done once at the begining.
- Calls to
::class
are now represented as calls to<operator>.class
. - Calculate proper BINDING nodes for lambda and anonymous functions.
- Calculate proper base class for type decls created for lambda and anonymous functions.