diff --git a/compiler/testData/javac/diagnostics/tests/qualifiedExpression/PackageVsClass2.kt.WithoutJavac.txt b/compiler/testData/javac/diagnostics/tests/qualifiedExpression/PackageVsClass2.kt.WithoutJavac.txt new file mode 100644 index 00000000000..401a4a90d69 --- /dev/null +++ b/compiler/testData/javac/diagnostics/tests/qualifiedExpression/PackageVsClass2.kt.WithoutJavac.txt @@ -0,0 +1,47 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +// FILE: a/a.java +package a; + +public class a {} + +// FILE: a/b.java +package a; + +public class b { + public void a_b() {} +} + +// FILE: test/a.java +package test; + +public class a {} + +// FILE: test/d.java +package test; + +public class d { + public a.b getB() { return null; } +} + +// FILE: b.kt +package test + +val x = d().getB() + +// FILE: test/c.java +package test; + +import a.a; + +public class c { + public static a getA() { return null; } +} + +// FILE: c.kt +package test + +fun foo() { + val a = c.getA() + a.a + a.a() +} diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt index 5199eb1fa14..fcd171efbcf 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/AbstractDiagnosticsTest.kt @@ -141,18 +141,8 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() { } var exceptionFromDescriptorValidation: Throwable? = null - val originalTestFile = testDataFile.readText() try { - val postfix = when { - InTextDirectivesUtils.isDirectiveDefined(originalTestFile, "// JAVAC_EXPECTED_FILE") && - environment.configuration.getBoolean(JVMConfigurationKeys.USE_JAVAC) -> ".javac.txt" - - InTextDirectivesUtils.isDirectiveDefined(originalTestFile, "// NI_EXPECTED_FILE") && - files.any { it.newInferenceEnabled } && !USE_OLD_INFERENCE_DIAGNOSTICS_FOR_NI -> ".ni.txt" - - else -> ".txt" - } - val expectedFile = File(FileUtil.getNameWithoutExtension(testDataFile.absolutePath) + postfix) + val expectedFile = getExpectedDescriptorFile(testDataFile, files) validateAndCompareDescriptorWithFile(expectedFile, files, modules) } catch (e: Throwable) { @@ -190,7 +180,7 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() { exceptionFromDynamicCallDescriptorsValidation = e } - KotlinTestUtils.assertEqualsToFile(testDataFile, actualText.toString()) + KotlinTestUtils.assertEqualsToFile(getExpectedDiagnosticsFile(testDataFile), actualText.toString()) assertTrue("Diagnostics mismatch. See the output above", ok) @@ -202,6 +192,26 @@ abstract class AbstractDiagnosticsTest : BaseDiagnosticsTest() { performAdditionalChecksAfterDiagnostics(testDataFile, files, groupedByModule, modules, moduleBindings) } + protected open fun getExpectedDiagnosticsFile(testDataFile: File): File { + return testDataFile + } + + protected open fun getExpectedDescriptorFile(testDataFile: File, files: List): File { + val originalTestFileText = testDataFile.readText() + + val postfix = when { + InTextDirectivesUtils.isDirectiveDefined(originalTestFileText, "// JAVAC_EXPECTED_FILE") && + environment.configuration.getBoolean(JVMConfigurationKeys.USE_JAVAC) -> ".javac.txt" + + InTextDirectivesUtils.isDirectiveDefined(originalTestFileText, "// NI_EXPECTED_FILE") && + files.any { it.newInferenceEnabled } && !USE_OLD_INFERENCE_DIAGNOSTICS_FOR_NI -> ".ni.txt" + + else -> ".txt" + } + + return File(FileUtil.getNameWithoutExtension(testDataFile.absolutePath) + postfix) + } + protected open fun performAdditionalChecksAfterDiagnostics( testDataFile: File, testFiles: List, diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/javac/AbstractJavacDiagnosticsTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/javac/AbstractJavacDiagnosticsTest.kt index 4780506fa71..51e61d6bf01 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/javac/AbstractJavacDiagnosticsTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/checkers/javac/AbstractJavacDiagnosticsTest.kt @@ -18,6 +18,7 @@ package org.jetbrains.kotlin.checkers.javac import org.jetbrains.kotlin.checkers.AbstractDiagnosticsTest import org.jetbrains.kotlin.config.JVMConfigurationKeys +import org.jetbrains.kotlin.test.KotlinTestUtils import java.io.File abstract class AbstractJavacDiagnosticsTest : AbstractDiagnosticsTest() { @@ -39,5 +40,19 @@ abstract class AbstractJavacDiagnosticsTest : AbstractDiagnosticsTest() { super.doTest(path) } + override fun getExpectedDiagnosticsFile(testDataFile: File): File { + val suffix = if (useJavac) ".WithJavac.txt" else ".WithoutJavac.txt" + val specialFile = File(testDataFile.parent, testDataFile.name + suffix) + return specialFile.takeIf { it.exists() } ?: super.getExpectedDiagnosticsFile(testDataFile) + } + + override fun createTestFiles(file: File, expectedText: String, modules: MutableMap?): List { + val specialFile = getExpectedDiagnosticsFile(file) + if (file.path == specialFile.path) { + return super.createTestFiles(file, expectedText, modules) + } + + return super.createTestFiles(specialFile, KotlinTestUtils.doLoadFile(specialFile), modules) + } }