mirror of
https://github.com/github/codeql.git
synced 2025-12-21 03:06:31 +01:00
Kotlin: getFunctionLabel: Make parentId be nullable
This allows us to simplify the set of functions.
This commit is contained in:
@@ -412,7 +412,7 @@ open class KotlinFileExtractor(
|
||||
}
|
||||
|
||||
// add method:
|
||||
val obinitLabel = getFunctionLabel(c, "<obinit>", listOf(), pluginContext.irBuiltIns.unitType, extensionReceiverParameter = null, functionTypeParameters = listOf(), classTypeArgsIncludingOuterClasses = listOf())
|
||||
val obinitLabel = getFunctionLabel(c, parentId, "<obinit>", listOf(), pluginContext.irBuiltIns.unitType, extensionReceiverParameter = null, functionTypeParameters = listOf(), classTypeArgsIncludingOuterClasses = listOf())
|
||||
val obinitId = tw.getLabelFor<DbMethod>(obinitLabel)
|
||||
val returnType = useType(pluginContext.irBuiltIns.unitType)
|
||||
tw.writeMethods(obinitId, "<obinit>", "<obinit>()", returnType.javaResult.id, returnType.kotlinResult.id, parentId, obinitId)
|
||||
@@ -1561,7 +1561,7 @@ open class KotlinFileExtractor(
|
||||
val id = tw.getFreshIdLabel<DbMethodaccess>()
|
||||
val type = useType(e.type)
|
||||
val locId = tw.getLocation(e)
|
||||
val methodLabel = getFunctionLabel(irCallable.parent, "<obinit>", listOf(), e.type, null, functionTypeParameters = listOf(), classTypeArgsIncludingOuterClasses = listOf())
|
||||
val methodLabel = getFunctionLabel(irCallable.parent, null, "<obinit>", listOf(), e.type, null, functionTypeParameters = listOf(), classTypeArgsIncludingOuterClasses = listOf())
|
||||
val methodId = tw.getLabelFor<DbMethod>(methodLabel)
|
||||
tw.writeExprs_methodaccess(id, type.javaResult.id, type.kotlinResult.id, exprParent.parent, exprParent.idx)
|
||||
tw.writeHasLocation(id, locId)
|
||||
|
||||
@@ -627,10 +627,6 @@ class X {
|
||||
else -> listOf()
|
||||
}
|
||||
|
||||
fun getFunctionLabel(f: IrFunction, classTypeArgsIncludingOuterClasses: List<IrTypeArgument>? = null) : String {
|
||||
return getFunctionLabel(f.parent, getFunctionShortName(f), f.valueParameters, f.returnType, f.extensionReceiverParameter, getFunctionTypeParameters(f), classTypeArgsIncludingOuterClasses)
|
||||
}
|
||||
|
||||
fun getEnclosingClass(it: IrDeclarationParent): IrClass? =
|
||||
when(it) {
|
||||
is IrClass -> it
|
||||
@@ -638,25 +634,16 @@ class X {
|
||||
else -> null
|
||||
}
|
||||
|
||||
fun getFunctionLabel(
|
||||
parent: IrDeclarationParent,
|
||||
name: String,
|
||||
parameters: List<IrValueParameter>,
|
||||
returnType: IrType,
|
||||
extensionReceiverParameter: IrValueParameter?,
|
||||
functionTypeParameters: List<IrTypeParameter>,
|
||||
classTypeArgsIncludingOuterClasses: List<IrTypeArgument>?
|
||||
): String {
|
||||
val parentId = useDeclarationParent(parent, false, classTypeArgsIncludingOuterClasses, true)
|
||||
return getFunctionLabel(parent, parentId, name, parameters, returnType, extensionReceiverParameter, functionTypeParameters, classTypeArgsIncludingOuterClasses)
|
||||
fun getFunctionLabel(f: IrFunction, classTypeArgsIncludingOuterClasses: List<IrTypeArgument>? = null) : String {
|
||||
return getFunctionLabel(f, null, classTypeArgsIncludingOuterClasses)
|
||||
}
|
||||
|
||||
fun getFunctionLabel(f: IrFunction, parentId: Label<out DbElement>, classTypeArgsIncludingOuterClasses: List<IrTypeArgument>?) =
|
||||
fun getFunctionLabel(f: IrFunction, parentId: Label<out DbElement>?, classTypeArgsIncludingOuterClasses: List<IrTypeArgument>?) =
|
||||
getFunctionLabel(f.parent, parentId, getFunctionShortName(f), f.valueParameters, f.returnType, f.extensionReceiverParameter, getFunctionTypeParameters(f), classTypeArgsIncludingOuterClasses)
|
||||
|
||||
fun getFunctionLabel(
|
||||
parent: IrDeclarationParent,
|
||||
parentId: Label<out DbElement>,
|
||||
maybeParentId: Label<out DbElement>?,
|
||||
name: String,
|
||||
parameters: List<IrValueParameter>,
|
||||
returnType: IrType,
|
||||
@@ -664,6 +651,7 @@ class X {
|
||||
functionTypeParameters: List<IrTypeParameter>,
|
||||
classTypeArgsIncludingOuterClasses: List<IrTypeArgument>?
|
||||
): String {
|
||||
val parentId = maybeParentId ?: useDeclarationParent(parent, false, classTypeArgsIncludingOuterClasses, true)
|
||||
val allParams = if (extensionReceiverParameter == null) {
|
||||
parameters
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user