diff --git a/nj2k/testData/newJ2k/postProcessing/java8MapForEachWithFullJdk.java b/nj2k/testData/newJ2k/postProcessing/java8MapForEachWithFullJdk.java index da0ca262fdd..e2a61a4c09c 100644 --- a/nj2k/testData/newJ2k/postProcessing/java8MapForEachWithFullJdk.java +++ b/nj2k/testData/newJ2k/postProcessing/java8MapForEachWithFullJdk.java @@ -1,3 +1,5 @@ +// RUNTIME_WITH_FULL_JDK + import java.util.HashMap; class Test { diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/AbstractNewJavaToKotlinConverterSingleFileTest.kt b/nj2k/tests/org/jetbrains/kotlin/nj2k/AbstractNewJavaToKotlinConverterSingleFileTest.kt index fb7e89c5413..a5407c34583 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/AbstractNewJavaToKotlinConverterSingleFileTest.kt +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/AbstractNewJavaToKotlinConverterSingleFileTest.kt @@ -21,12 +21,15 @@ import com.intellij.openapi.project.Project import com.intellij.openapi.projectRoots.Sdk import com.intellij.openapi.projectRoots.SdkModificator import com.intellij.openapi.projectRoots.impl.JavaSdkImpl +import com.intellij.openapi.util.io.FileUtil import com.intellij.psi.codeStyle.JavaCodeStyleSettings +import com.intellij.testFramework.LightProjectDescriptor import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor import org.jetbrains.kotlin.j2k.AbstractJavaToKotlinConverterSingleFileTest import org.jetbrains.kotlin.j2k.ConverterSettings import org.jetbrains.kotlin.nj2k.postProcessing.NewJ2kPostProcessor +import org.jetbrains.kotlin.test.InTextDirectivesUtils import org.jetbrains.kotlin.test.KotlinTestUtils import java.io.File @@ -58,10 +61,18 @@ abstract class AbstractNewJavaToKotlinConverterSingleFileTest : AbstractJavaToKo File(javaPath.replace(".java", ".new.kt")).takeIf { it.exists() } ?: super.provideExpectedFile(javaPath) + private fun projectDescriptorByFileDirective(): LightProjectDescriptor { + if (isAllFilesPresentInTest()) return KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE + val fileText = FileUtil.loadFile(File(testDataPath, fileName()), true) + return if (InTextDirectivesUtils.isDirectiveDefined(fileText, "RUNTIME_WITH_FULL_JDK")) + KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE_FULL_JDK + else KotlinWithJdkAndRuntimeLightProjectDescriptor.INSTANCE + } + override fun getProjectDescriptor(): KotlinWithJdkAndRuntimeLightProjectDescriptor = object : KotlinWithJdkAndRuntimeLightProjectDescriptor() { override fun getSdk(): Sdk? { - val sdk = super@AbstractNewJavaToKotlinConverterSingleFileTest.getProjectDescriptor().sdk ?: return null + val sdk = projectDescriptorByFileDirective().sdk ?: return null runWriteAction { val modificator: SdkModificator = sdk.sdkModificator JavaSdkImpl.attachJdkAnnotations(modificator)