Light classes: use JVM target from the module
Using "JVM_1_8" always resulted in incorrect mapping of Kotlin annotation targets to Java element types. The change in AbstractKotlinRenderLogTest is needed because while CliTraceHolder.module is technically a descriptor leak, it was never detected by this test accidentally, because of the depth cutoff equal to 10, which started to not be enough after the minor refactoring of replacing `Delegates.notNull` with `lateinit`.
This commit is contained in:
+8
-4
@@ -16,6 +16,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.javac.components
|
||||
|
||||
import org.jetbrains.kotlin.config.JvmTarget
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.javac.JavacWrapper
|
||||
import org.jetbrains.kotlin.load.java.AbstractJavaClassFinder
|
||||
@@ -25,12 +26,16 @@ import org.jetbrains.kotlin.resolve.BindingTrace
|
||||
import org.jetbrains.kotlin.resolve.lazy.KotlinCodeAnalyzer
|
||||
|
||||
class JavacBasedClassFinder : AbstractJavaClassFinder() {
|
||||
|
||||
private lateinit var javac: JavacWrapper
|
||||
|
||||
override fun initialize(trace: BindingTrace, codeAnalyzer: KotlinCodeAnalyzer, languageVersionSettings: LanguageVersionSettings) {
|
||||
override fun initialize(
|
||||
trace: BindingTrace,
|
||||
codeAnalyzer: KotlinCodeAnalyzer,
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
jvmTarget: JvmTarget,
|
||||
) {
|
||||
javac = JavacWrapper.getInstance(project)
|
||||
super.initialize(trace, codeAnalyzer, languageVersionSettings)
|
||||
super.initialize(trace, codeAnalyzer, languageVersionSettings, jvmTarget)
|
||||
}
|
||||
|
||||
override fun findClass(request: JavaClassFinder.Request) =
|
||||
@@ -40,5 +45,4 @@ class JavacBasedClassFinder : AbstractJavaClassFinder() {
|
||||
override fun findPackage(fqName: FqName) = javac.findPackage(fqName, javaSearchScope)
|
||||
|
||||
override fun knownClassNamesInPackage(packageFqName: FqName) = javac.knownClassNamesInPackage(packageFqName)
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user