JVM IR: use fast class reading mode in boxAgainstJava tests
annotationsViaActualTypeAliasFromBinary.kt is ignored because ExpectActualRemover can't find actual for the expected constructor of Anno now, because `ExpectedActualResolver.findActualForExpected` incorrectly filters out actual declarations without any source file, and Java classes loaded in the fast mode don't have any source files. This will need to be fixed separately, probably by making ExpectedActualResolver look for the actual class of an expected class member first (with source file-based filtering), and then unconditionally locating the corresponding member there
This commit is contained in:
+2
@@ -52,6 +52,8 @@ object ExpectedActualResolver {
|
||||
is CallableMemberDescriptor -> {
|
||||
expected.findNamesakesFromModule(platformModule, moduleVisibilityFilter).filter { actual ->
|
||||
expected != actual && !actual.isExpect &&
|
||||
// TODO: use some other way to determine that the declaration is from Kotlin.
|
||||
// This way behavior differs between fast and PSI-based Java class reading mode
|
||||
// TODO: support non-source definitions (e.g. from Java)
|
||||
actual.source.containingFile != SourceFile.NO_SOURCE_FILE
|
||||
}.groupBy { actual ->
|
||||
|
||||
Vendored
+1
@@ -1,4 +1,5 @@
|
||||
// !LANGUAGE: +MultiPlatformProjects
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// WITH_REFLECT
|
||||
// FILE: main.kt
|
||||
|
||||
|
||||
+1
-3
@@ -5,16 +5,14 @@
|
||||
|
||||
package org.jetbrains.kotlin.codegen.ir
|
||||
|
||||
import org.jetbrains.kotlin.cli.jvm.config.addJvmClasspathRoot
|
||||
import org.jetbrains.kotlin.codegen.AbstractBlackBoxAgainstJavaCodegenTest
|
||||
import org.jetbrains.kotlin.config.CompilerConfiguration
|
||||
import org.jetbrains.kotlin.config.JVMConfigurationKeys
|
||||
import org.jetbrains.kotlin.test.TargetBackend
|
||||
|
||||
abstract class AbstractIrBlackBoxAgainstJavaCodegenTest : AbstractBlackBoxAgainstJavaCodegenTest() {
|
||||
|
||||
override fun updateConfiguration(configuration: CompilerConfiguration) {
|
||||
configuration.addJvmClasspathRoot(javaClassesOutputDirectory)
|
||||
super.updateConfiguration(configuration)
|
||||
configuration.put(JVMConfigurationKeys.IR, true)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user