Skip to content

Commit b841d5f

Browse files
authored
Merge pull request github#14622 from igfoo/igfoo/JavaBinarySourceElement
Kotlin: Add support for JavaBinarySourceElement sources
2 parents 81b3ff2 + 55df481 commit b841d5f

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

java/kotlin-extractor/src/main/kotlin/utils/ClassNames.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.github.codeql
33
import com.github.codeql.utils.getJvmName
44
import com.github.codeql.utils.versions.*
55
import com.intellij.openapi.vfs.StandardFileSystems
6+
import org.jetbrains.kotlin.fir.java.JavaBinarySourceElement
67
import org.jetbrains.kotlin.load.java.sources.JavaSourceElement
78
import org.jetbrains.kotlin.load.java.structure.impl.classFiles.BinaryJavaClass
89
import org.jetbrains.kotlin.load.kotlin.VirtualFileKotlinClass
@@ -80,6 +81,9 @@ fun getIrClassVirtualFile(irClass: IrClass): VirtualFile? {
8081
is BinaryJavaClass -> return element.virtualFile
8182
}
8283
}
84+
is JavaBinarySourceElement -> {
85+
return cSource.javaClass.virtualFile
86+
}
8387
is KotlinJvmBinarySourceElement -> {
8488
val binaryClass = cSource.binaryClass
8589
when(binaryClass) {
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package org.jetbrains.kotlin.fir.java
2+
3+
import org.jetbrains.kotlin.descriptors.SourceElement
4+
import org.jetbrains.kotlin.load.java.structure.impl.classFiles.BinaryJavaClass
5+
6+
/*
7+
We need this class to exist, but the compiler will never give us an
8+
instance of it.
9+
*/
10+
abstract class JavaBinarySourceElement private constructor(val javaClass: BinaryJavaClass): SourceElement {
11+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/*
2+
The compiler provides this class, so we don't have to do anything.
3+
*/

0 commit comments

Comments
 (0)