Adjust PathSanitizer to use fixed $default extension method functionality

This commit is contained in:
Tamas Vajk
2022-12-07 13:28:10 +01:00
parent f646938d91
commit 81c35c8b27

View File

@@ -298,8 +298,8 @@ private class PathNormalizeSanitizer extends MethodAccess {
* what `getQualifier` actually gets in Java and Kotlin.
*/
private Expr getVisualQualifier(MethodAccess ma) {
if getSourceMethod(ma.getMethod()) instanceof ExtensionMethod
then result = ma.getArgument(0)
if ma.getMethod() instanceof ExtensionMethod
then result = ma.getArgument(ma.getMethod().(ExtensionMethod).getExtensionParameterIndex())
else result = ma.getQualifier()
}
@@ -310,8 +310,10 @@ private Expr getVisualQualifier(MethodAccess ma) {
*/
bindingset[argPos]
private Argument getVisualArgument(MethodAccess ma, int argPos) {
if getSourceMethod(ma.getMethod()) instanceof ExtensionMethod
then result = ma.getArgument(argPos + 1)
if ma.getMethod() instanceof ExtensionMethod
then
result =
ma.getArgument(argPos + ma.getMethod().(ExtensionMethod).getExtensionParameterIndex() + 1)
else result = ma.getArgument(argPos)
}