diff --git a/java/kotlin-extractor2/src/main/kotlin/entities/Class.kt b/java/kotlin-extractor2/src/main/kotlin/entities/Class.kt index 74d53b8d3c4..756c3d74761 100644 --- a/java/kotlin-extractor2/src/main/kotlin/entities/Class.kt +++ b/java/kotlin-extractor2/src/main/kotlin/entities/Class.kt @@ -1,14 +1,11 @@ package com.github.codeql -import com.github.codeql.* import com.github.codeql.KotlinUsesExtractor.ClassLabelResults -import com.github.codeql.KotlinUsesExtractor.TypeContext import com.github.codeql.utils.isInterfaceLike import org.jetbrains.kotlin.analysis.api.KaExperimentalApi import org.jetbrains.kotlin.analysis.api.KaSession import org.jetbrains.kotlin.analysis.api.symbols.* import org.jetbrains.kotlin.analysis.api.types.KaClassType -import org.jetbrains.kotlin.analysis.api.types.KaType context(KaSession) @OptIn(KaExperimentalApi::class) @@ -211,7 +208,8 @@ fun KotlinUsesExtractor.useClassSource(c: KaClassSymbol): Label return useClassType(t) - else -> TODO() - } - /* - OLD: KE1 - when (t) { - is IrSimpleType -> return useSimpleType(t, context) - else -> { - logger.error("Unrecognised IrType: " + t.javaClass) - return extractErrorType() - } - } - */ -} diff --git a/java/kotlin-extractor2/src/main/kotlin/entities/Types.kt b/java/kotlin-extractor2/src/main/kotlin/entities/Types.kt new file mode 100644 index 00000000000..8c0f3d9f881 --- /dev/null +++ b/java/kotlin-extractor2/src/main/kotlin/entities/Types.kt @@ -0,0 +1,30 @@ +package com.github.codeql + +import com.github.codeql.KotlinUsesExtractor.TypeContext +import org.jetbrains.kotlin.analysis.api.types.KaClassType +import org.jetbrains.kotlin.analysis.api.types.KaType + +private fun KotlinUsesExtractor.useClassType( + c: KaClassType +): TypeResults { + val javaResult = addClassLabel(c) + val kotlinResult = TypeResult(fakeKotlinType() /* , "TODO", "TODO" */) + return TypeResults(javaResult, kotlinResult) +} + +fun KotlinUsesExtractor.useType(t: KaType, context: TypeContext = TypeContext.OTHER): TypeResults { + when (t) { + is KaClassType -> return useClassType(t) + else -> TODO() + } + /* + OLD: KE1 + when (t) { + is IrSimpleType -> return useSimpleType(t, context) + else -> { + logger.error("Unrecognised IrType: " + t.javaClass) + return extractErrorType() + } + } + */ +}