mirror of
https://github.com/github/codeql.git
synced 2026-05-02 04:05:14 +02:00
Revert extracting this and this@TYPE parameters
This commit is contained in:
@@ -413,8 +413,9 @@ class KotlinFileExtractor(val logger: FileLogger, val tw: FileTrapWriter, val fi
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
val parentId: Label<out DbMethod> = useDeclarationParent(vp.parent) as Label<out DbMethod>
|
||||
var idx = vp.index
|
||||
if (isQualifiedThisFunction(vp)) {
|
||||
idx = -2
|
||||
if (idx < 0) {
|
||||
// We're not extracting this and this@TYPE parameters of functions:
|
||||
logger.warnElement(Severity.ErrorSevere, "Unexpected negative index for parameter", vp)
|
||||
}
|
||||
val label = "@\"params;{$parentId};$idx\""
|
||||
return label
|
||||
@@ -470,17 +471,10 @@ class KotlinFileExtractor(val logger: FileLogger, val tw: FileTrapWriter, val fi
|
||||
extractValueParameter(vp, id, i)
|
||||
}
|
||||
|
||||
var index = -1
|
||||
val extReceiver = f.extensionReceiverParameter
|
||||
if (extReceiver != null) {
|
||||
extractValueParameter(extReceiver, id, index--)
|
||||
|
||||
tw.writeKtExtensionFunctions(id)
|
||||
}
|
||||
|
||||
val dispReceiver = f.dispatchReceiverParameter
|
||||
if (dispReceiver != null) {
|
||||
extractValueParameter(dispReceiver, id, index)
|
||||
val extendedType = useType(extReceiver.type)
|
||||
tw.writeKtExtensionFunctions(id, extendedType)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1061,5 +1061,6 @@ ktBreakContinueTarget(
|
||||
)
|
||||
|
||||
ktExtensionFunctions(
|
||||
unique int id: @method ref
|
||||
unique int id: @method ref,
|
||||
int typeid: @type ref
|
||||
)
|
||||
|
||||
@@ -673,10 +673,12 @@ class InstanceField extends Field {
|
||||
|
||||
/** A Kotlin extension function. */
|
||||
class ExtensionMethod extends Method {
|
||||
ExtensionMethod() { ktExtensionFunctions(this) }
|
||||
Type extendedType;
|
||||
|
||||
ExtensionMethod() { ktExtensionFunctions(this, extendedType) }
|
||||
|
||||
/** Gets the type being extended by this method. */
|
||||
Type getExtendedType() { result = getParameter(-1).getType() }
|
||||
Type getExtendedType() { result = extendedType }
|
||||
|
||||
override string getAPrimaryQlClass() { result = "ExtensionMethod" }
|
||||
}
|
||||
|
||||
@@ -1,30 +1,15 @@
|
||||
| methods2.kt:4:1:5:1 | fooBarTopLevelMethod | methods2.kt:4:26:4:31 | x | 0 |
|
||||
| methods2.kt:4:1:5:1 | fooBarTopLevelMethod | methods2.kt:4:34:4:39 | y | 1 |
|
||||
| methods2.kt:7:1:10:1 | equals | methods2.kt:7:1:10:1 | <this> | -1 |
|
||||
| methods2.kt:7:1:10:1 | equals | methods2.kt:7:1:10:1 | other | 0 |
|
||||
| methods2.kt:7:1:10:1 | hashCode | methods2.kt:7:1:10:1 | <this> | -1 |
|
||||
| methods2.kt:7:1:10:1 | toString | methods2.kt:7:1:10:1 | <this> | -1 |
|
||||
| methods2.kt:8:5:9:5 | fooBarClassMethod | methods2.kt:8:5:9:5 | <this> | -1 |
|
||||
| methods2.kt:8:5:9:5 | fooBarClassMethod | methods2.kt:8:27:8:32 | x | 0 |
|
||||
| methods2.kt:8:5:9:5 | fooBarClassMethod | methods2.kt:8:35:8:40 | y | 1 |
|
||||
| methods3.kt:3:1:3:39 | fooBarTopLevelMethod | methods3.kt:3:5:3:7 | <this> | -1 |
|
||||
| methods3.kt:3:1:3:39 | fooBarTopLevelMethod | methods3.kt:3:30:3:35 | x | 0 |
|
||||
| methods3.kt:5:1:7:1 | equals | methods3.kt:5:1:7:1 | <this> | -1 |
|
||||
| methods3.kt:5:1:7:1 | equals | methods3.kt:5:1:7:1 | other | 0 |
|
||||
| methods3.kt:5:1:7:1 | hashCode | methods3.kt:5:1:7:1 | <this> | -1 |
|
||||
| methods3.kt:5:1:7:1 | toString | methods3.kt:5:1:7:1 | <this> | -1 |
|
||||
| methods3.kt:6:5:6:43 | fooBarTopLevelMethod | methods3.kt:6:5:6:43 | <this> | -2 |
|
||||
| methods3.kt:6:5:6:43 | fooBarTopLevelMethod | methods3.kt:6:9:6:11 | <this> | -1 |
|
||||
| methods3.kt:6:5:6:43 | fooBarTopLevelMethod | methods3.kt:6:34:6:39 | x | 0 |
|
||||
| methods.kt:2:1:3:1 | topLevelMethod | methods.kt:2:20:2:25 | x | 0 |
|
||||
| methods.kt:2:1:3:1 | topLevelMethod | methods.kt:2:28:2:33 | y | 1 |
|
||||
| methods.kt:5:1:13:1 | equals | methods.kt:5:1:13:1 | <this> | -1 |
|
||||
| methods.kt:5:1:13:1 | equals | methods.kt:5:1:13:1 | other | 0 |
|
||||
| methods.kt:5:1:13:1 | hashCode | methods.kt:5:1:13:1 | <this> | -1 |
|
||||
| methods.kt:5:1:13:1 | toString | methods.kt:5:1:13:1 | <this> | -1 |
|
||||
| methods.kt:6:5:7:5 | classMethod | methods.kt:6:5:7:5 | <this> | -1 |
|
||||
| methods.kt:6:5:7:5 | classMethod | methods.kt:6:21:6:26 | x | 0 |
|
||||
| methods.kt:6:5:7:5 | classMethod | methods.kt:6:29:6:34 | y | 1 |
|
||||
| methods.kt:9:5:12:5 | anotherClassMethod | methods.kt:9:5:12:5 | <this> | -1 |
|
||||
| methods.kt:9:5:12:5 | anotherClassMethod | methods.kt:9:28:9:33 | a | 0 |
|
||||
| methods.kt:9:5:12:5 | anotherClassMethod | methods.kt:9:36:9:41 | b | 1 |
|
||||
|
||||
@@ -1,38 +1,11 @@
|
||||
| variables.kt:2:1:8:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:2:1:8:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:2:1:8:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:2:1:8:1 | other | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:3:5:3:21 | prop | file://:0:0:0:0 | int | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:5:5:7:5 | <this> | variables.kt:2:1:8:1 | Foo | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:5:20:5:29 | param | file://:0:0:0:0 | int | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:6:9:6:25 | int local | file://:0:0:0:0 | int | variables.kt:6:21:6:25 | ... + ... |
|
||||
| variables.kt:10:1:10:21 | topLevel | file://:0:0:0:0 | int | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:12:1:15:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:12:1:15:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:12:1:15:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:12:1:15:1 | other | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:13:5:13:15 | <this> | variables.kt:12:1:15:1 | C1 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:14:5:14:15 | <this> | variables.kt:12:1:15:1 | C1 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:16:1:34:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:16:1:34:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:16:1:34:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:16:1:34:1 | other | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:16:11:16:18 | o | variables.kt:12:1:15:1 | C1 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:16:11:16:18 | o | variables.kt:12:1:15:1 | C1 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:17:5:17:15 | <this> | variables.kt:16:1:34:1 | C2 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:18:5:18:15 | <this> | variables.kt:16:1:34:1 | C2 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:20:5:22:5 | <this> | variables.kt:16:1:34:1 | C2 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:23:5:33:5 | <this> | variables.kt:16:1:34:1 | C2 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:23:9:23:10 | <this> | variables.kt:12:1:15:1 | C1 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:36:1:45:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:36:1:45:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:36:1:45:1 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:36:1:45:1 | other | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:37:5:37:15 | <this> | variables.kt:36:1:45:1 | C3 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:38:5:44:5 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:38:5:44:5 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:38:5:44:5 | <this> | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:38:5:44:5 | <this> | variables.kt:36:1:45:1 | C3 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:38:11:44:5 | other | file://:0:0:0:0 | Any | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:39:9:39:19 | <this> | variables.kt:38:5:44:5 | C4 | file://:0:0:0:0 | <none> |
|
||||
| variables.kt:40:9:43:9 | <this> | variables.kt:38:5:44:5 | C4 | file://:0:0:0:0 | <none> |
|
||||
|
||||
Reference in New Issue
Block a user