Tests: do not report backend diagnostics if there's frontend error
In most affected tests, the backend diagnostic such as "conflicting JVM signature" or "accidental override" is directly caused by some already existing error reported by frontend, so it doesn't make sense to check backend diagnostics there. Tests where that was not the case were moved/copied to `testsWithJvmBackend`.
This commit is contained in:
committed by
Space Team
parent
dca6c21d7f
commit
55f9f74d5c
Generated
-6
@@ -44908,12 +44908,6 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
|
||||
runTest("compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/jvmNames.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("jvmNamesDuplicate.kt")
|
||||
public void testJvmNamesDuplicate() {
|
||||
runTest("compiler/testData/diagnostics/testsWithStdLib/duplicateJvmSignature/jvmNamesDuplicate.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("jvmOverloads.kt")
|
||||
public void testJvmOverloads() {
|
||||
|
||||
+50
@@ -295,6 +295,12 @@ public class DiagnosticsTestWithJvmIrBackendGenerated extends AbstractDiagnostic
|
||||
runTest("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/erasure/extensionProperties.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericFunctions.kt")
|
||||
public void testGenericFunctions() {
|
||||
runTest("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/erasure/genericFunctions.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("genericType.kt")
|
||||
public void testGenericType() {
|
||||
@@ -307,6 +313,12 @@ public class DiagnosticsTestWithJvmIrBackendGenerated extends AbstractDiagnostic
|
||||
runTest("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/erasure/inheritFromTwoTraits.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("inheritGenericMethodsWithDifferentSubstitution.kt")
|
||||
public void testInheritGenericMethodsWithDifferentSubstitution() {
|
||||
runTest("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/erasure/inheritGenericMethodsWithDifferentSubstitution.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("kotlinAndJavaCollections.kt")
|
||||
public void testKotlinAndJavaCollections() {
|
||||
@@ -518,6 +530,44 @@ public class DiagnosticsTestWithJvmIrBackendGenerated extends AbstractDiagnostic
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/javaInterop")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class JavaInterop {
|
||||
@Test
|
||||
public void testAllFilesPresentInJavaInterop() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/javaInterop"), Pattern.compile("^(.+)\\.kts?$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), TargetBackend.JVM_IR, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("inheritFromJavaCollectionSubclassWithContainsOverload.kt")
|
||||
public void testInheritFromJavaCollectionSubclassWithContainsOverload() {
|
||||
runTest("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/javaInterop/inheritFromJavaCollectionSubclassWithContainsOverload.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("supertypeDifferentParameterNullability.kt")
|
||||
public void testSupertypeDifferentParameterNullability() {
|
||||
runTest("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/javaInterop/supertypeDifferentParameterNullability.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/jvmName")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
public class JvmName {
|
||||
@Test
|
||||
public void testAllFilesPresentInJvmName() {
|
||||
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/jvmName"), Pattern.compile("^(.+)\\.kts?$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), TargetBackend.JVM_IR, true);
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("conflictsWIthJvmNameInClass.kt")
|
||||
public void testConflictsWIthJvmNameInClass() {
|
||||
runTest("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/jvmName/conflictsWIthJvmNameInClass.kt");
|
||||
}
|
||||
}
|
||||
|
||||
@Nested
|
||||
@TestMetadata("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/specialNames")
|
||||
@TestDataPath("$PROJECT_ROOT")
|
||||
|
||||
+6
-2
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.cli.jvm.compiler.getJvmSignatureDiagnostics
|
||||
import org.jetbrains.kotlin.descriptors.impl.ModuleDescriptorImpl
|
||||
import org.jetbrains.kotlin.diagnostics.Diagnostic
|
||||
import org.jetbrains.kotlin.diagnostics.Errors
|
||||
import org.jetbrains.kotlin.diagnostics.Severity
|
||||
import org.jetbrains.kotlin.platform.jvm.isJvm
|
||||
import org.jetbrains.kotlin.psi.KtDeclaration
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
@@ -44,9 +45,8 @@ class ClassicDiagnosticsHandler(testServices: TestServices) : ClassicFrontendAna
|
||||
|
||||
private val reporter = ClassicDiagnosticReporter(testServices)
|
||||
|
||||
@OptIn(ExperimentalStdlibApi::class)
|
||||
override fun processModule(module: TestModule, info: ClassicFrontendOutputArtifact) {
|
||||
var allDiagnostics = info.analysisResult.bindingContext.diagnostics + computeJvmSignatureDiagnostics(info)
|
||||
var allDiagnostics = info.analysisResult.bindingContext.diagnostics.toList()
|
||||
if (AdditionalFilesDirectives.CHECK_TYPE in module.directives) {
|
||||
allDiagnostics = allDiagnostics.filter { it.factory.name != Errors.UNDERSCORE_USAGE_WITHOUT_BACKTICKS.name }
|
||||
}
|
||||
@@ -54,6 +54,10 @@ class ClassicDiagnosticsHandler(testServices: TestServices) : ClassicFrontendAna
|
||||
allDiagnostics = allDiagnostics.filter { it.factory.name != Errors.NEWER_VERSION_IN_SINCE_KOTLIN.name }
|
||||
}
|
||||
|
||||
if (allDiagnostics.none { it.severity == Severity.ERROR }) {
|
||||
allDiagnostics = allDiagnostics + computeJvmSignatureDiagnostics(info)
|
||||
}
|
||||
|
||||
val diagnosticsPerFile = allDiagnostics.groupBy { it.psiFile }
|
||||
val withNewInferenceModeEnabled = testServices.withNewInferenceModeEnabled()
|
||||
val configuration = reporter.createConfiguration(module)
|
||||
|
||||
Reference in New Issue
Block a user