Skip to content

Commit 6bcfdfc

Browse files
committed
Adjust getExtensionReceiverParameterIndex predicate name and change note
1 parent e410e27 commit 6bcfdfc

File tree

5 files changed

+8
-6
lines changed

5 files changed

+8
-6
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
---
22
category: minorAnalysis
33
---
4-
* The extraction of extension methods have been improved when default parameter values are present. The dispatch and extension receiver parameters are extracted in the correct order. The `ExtensionMethod::getExtensionParameterIndex` predicate has been introduced to facilitate getting the correct extension parameter index.
4+
* The extraction of Kotlin extension methods has been improved when default parameter values are present. The dispatch and extension receiver parameters are extracted in the correct order. The `ExtensionMethod::getExtensionReceiverParameterIndex` predicate has been introduced to facilitate getting the correct extension parameter index.

java/ql/lib/semmle/code/java/Member.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -820,7 +820,7 @@ class ExtensionMethod extends Method {
820820
* extension methods that are defined as members, the index is 1. Index 0 is the dispatch receiver of the `$default`
821821
* method.
822822
*/
823-
int getExtensionParameterIndex() {
823+
int getExtensionReceiverParameterIndex() {
824824
if
825825
exists(Method src |
826826
this = src.getKotlinParameterDefaultsProxy() and

java/ql/lib/semmle/code/java/Variable.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ class Parameter extends Element, @param, LocalScopeVariable {
9191

9292
/** Holds if this formal parameter is a parameter representing the dispatch receiver in an extension method. */
9393
predicate isExtensionParameter() {
94-
this.getPosition() = this.getCallable().(ExtensionMethod).getExtensionParameterIndex()
94+
this.getPosition() = this.getCallable().(ExtensionMethod).getExtensionReceiverParameterIndex()
9595
}
9696

9797
/**

java/ql/lib/semmle/code/java/security/PathSanitizer.qll

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,8 @@ private class PathNormalizeSanitizer extends MethodAccess {
299299
*/
300300
private Expr getVisualQualifier(MethodAccess ma) {
301301
if ma.getMethod() instanceof ExtensionMethod
302-
then result = ma.getArgument(ma.getMethod().(ExtensionMethod).getExtensionParameterIndex())
302+
then
303+
result = ma.getArgument(ma.getMethod().(ExtensionMethod).getExtensionReceiverParameterIndex())
303304
else result = ma.getQualifier()
304305
}
305306

@@ -313,7 +314,8 @@ private Argument getVisualArgument(MethodAccess ma, int argPos) {
313314
if ma.getMethod() instanceof ExtensionMethod
314315
then
315316
result =
316-
ma.getArgument(argPos + ma.getMethod().(ExtensionMethod).getExtensionParameterIndex() + 1)
317+
ma.getArgument(argPos + ma.getMethod().(ExtensionMethod).getExtensionReceiverParameterIndex() +
318+
1)
317319
else result = ma.getArgument(argPos)
318320
}
319321

java/ql/test/kotlin/library-tests/methods/methods.ql

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ query predicate extensionsMismatch(Method src, Method def) {
2929

3030
query predicate extensionIndex(ExtensionMethod m, int i, Type t) {
3131
m.fromSource() and
32-
m.getExtensionParameterIndex() = i and
32+
m.getExtensionReceiverParameterIndex() = i and
3333
m.getExtendedType() = t and
3434
m.getParameter(i).getType() = t
3535
}

0 commit comments

Comments
 (0)