mirror of
https://github.com/github/codeql.git
synced 2025-12-16 16:53:25 +01:00
Merge pull request #13508 from igfoo/igfoo/rc_kot
Kotlin: Backport some Kotlin 1.9 fixes to the rc/3.10 branch
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,2 @@
|
||||
description: Remove ENUM_ENTRIES
|
||||
compatibility: full
|
||||
@@ -1701,12 +1701,13 @@ open class KotlinFileExtractor(
|
||||
|
||||
private fun extractSyntheticBody(b: IrSyntheticBody, callable: Label<out DbCallable>) {
|
||||
with("synthetic body", b) {
|
||||
when (b.kind) {
|
||||
IrSyntheticBodyKind.ENUM_VALUES -> tw.writeKtSyntheticBody(callable, 1)
|
||||
IrSyntheticBodyKind.ENUM_VALUEOF -> tw.writeKtSyntheticBody(callable, 2)
|
||||
val kind = b.kind
|
||||
when {
|
||||
kind == IrSyntheticBodyKind.ENUM_VALUES -> tw.writeKtSyntheticBody(callable, 1)
|
||||
kind == IrSyntheticBodyKind.ENUM_VALUEOF -> tw.writeKtSyntheticBody(callable, 2)
|
||||
kind == kind_ENUM_ENTRIES -> tw.writeKtSyntheticBody(callable, 3)
|
||||
else -> {
|
||||
// TODO: Support IrSyntheticBodyKind.ENUM_ENTRIES
|
||||
logger.errorElement("Unhandled synthetic body kind " + b.kind.javaClass, b)
|
||||
logger.errorElement("Unhandled synthetic body kind " + kind, b)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5316,7 +5317,10 @@ open class KotlinFileExtractor(
|
||||
private fun extractTypeAccessRecursive(t: IrType, location: Label<out DbLocation>, parent: Label<out DbExprparent>, idx: Int, typeContext: TypeContext = TypeContext.OTHER): Label<out DbExpr> {
|
||||
val typeAccessId = extractTypeAccess(useType(t, typeContext), location, parent, idx)
|
||||
if (t is IrSimpleType) {
|
||||
t.arguments.forEachIndexed { argIdx, arg ->
|
||||
// From 1.9, the list might change when we call erase,
|
||||
// so we make a copy that it is safe to iterate over.
|
||||
val argumentsCopy = t.arguments.toList()
|
||||
argumentsCopy.forEachIndexed { argIdx, arg ->
|
||||
extractWildcardTypeAccessRecursive(arg, location, typeAccessId, argIdx)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind
|
||||
|
||||
val kind_ENUM_ENTRIES: IrSyntheticBodyKind? = null
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
package com.github.codeql.utils.versions
|
||||
|
||||
import org.jetbrains.kotlin.ir.expressions.IrSyntheticBodyKind
|
||||
|
||||
val kind_ENUM_ENTRIES: IrSyntheticBodyKind? = IrSyntheticBodyKind.ENUM_ENTRIES
|
||||
|
||||
@@ -1219,6 +1219,7 @@ ktSyntheticBody(
|
||||
int kind: int ref
|
||||
// 1: ENUM_VALUES
|
||||
// 2: ENUM_VALUEOF
|
||||
// 3: ENUM_ENTRIES
|
||||
)
|
||||
|
||||
ktLocalFunction(
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,2 @@
|
||||
description: Add ENUM_ENTRIES
|
||||
compatibility: full
|
||||
Reference in New Issue
Block a user