From bad7fa597b09c80491d6bfb4d8f1e48c4bc18c07 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 2 Aug 2023 12:19:33 +0200 Subject: [PATCH] Tests: move some tests to diagnostics --- ...CompilerTestFE10TestdataTestGenerated.java | 6 +++ ...sticCompilerFE10TestDataTestGenerated.java | 6 +++ ...eeOldFrontendDiagnosticsTestGenerated.java | 6 +++ ...siOldFrontendDiagnosticsTestGenerated.java | 6 +++ ...gnosticsTestWithJvmIrBackendGenerated.java | 6 +++ ...gnosticsTestWithJvmIrBackendGenerated.java | 6 +++ .../library/JavaInterface.java | 3 -- .../noWarningsOnJavaKotlinInheritance.kt | 18 -------- .../suspensionPointInMonitor/library/a.kt | 17 ------- .../suspensionPointInMonitor/output.txt | 13 ------ .../noWarningOnJavaKotlinInheritance.kt | 28 ++++++++++++ .../suspensionPointInMonitor.kt} | 44 +++++++++++++++---- .../test/runners/DiagnosticTestGenerated.java | 6 +++ ...gnosticsTestWithJvmIrBackendGenerated.java | 6 +++ .../CompileKotlinAgainstCustomBinariesTest.kt | 32 -------------- 15 files changed, 112 insertions(+), 91 deletions(-) delete mode 100644 compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/library/JavaInterface.java delete mode 100644 compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/noWarningsOnJavaKotlinInheritance.kt delete mode 100644 compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/library/a.kt delete mode 100644 compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/output.txt create mode 100644 compiler/testData/diagnostics/tests/override/parameterNames/noWarningOnJavaKotlinInheritance.kt rename compiler/testData/{compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt => diagnostics/testsWithJvmBackend/suspensionPointInMonitor.kt} (51%) diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java index 26c1e1fb34d..ea4d6d69ed0 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java @@ -24624,6 +24624,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia public void testKotlinInheritsJava() throws Exception { runTest("compiler/testData/diagnostics/tests/override/parameterNames/kotlinInheritsJava.kt"); } + + @Test + @TestMetadata("noWarningOnJavaKotlinInheritance.kt") + public void testNoWarningOnJavaKotlinInheritance() throws Exception { + runTest("compiler/testData/diagnostics/tests/override/parameterNames/noWarningOnJavaKotlinInheritance.kt"); + } } @Nested diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java index a9e79821267..53f24a7b01a 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java @@ -24624,6 +24624,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated public void testKotlinInheritsJava() throws Exception { runTest("compiler/testData/diagnostics/tests/override/parameterNames/kotlinInheritsJava.kt"); } + + @Test + @TestMetadata("noWarningOnJavaKotlinInheritance.kt") + public void testNoWarningOnJavaKotlinInheritance() throws Exception { + runTest("compiler/testData/diagnostics/tests/override/parameterNames/noWarningOnJavaKotlinInheritance.kt"); + } } @Nested diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index 5c0bfca256f..4824447eb0b 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -24624,6 +24624,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir public void testKotlinInheritsJava() throws Exception { runTest("compiler/testData/diagnostics/tests/override/parameterNames/kotlinInheritsJava.kt"); } + + @Test + @TestMetadata("noWarningOnJavaKotlinInheritance.kt") + public void testNoWarningOnJavaKotlinInheritance() throws Exception { + runTest("compiler/testData/diagnostics/tests/override/parameterNames/noWarningOnJavaKotlinInheritance.kt"); + } } @Nested diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index 6e15a9583f0..8a189ebeda4 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -24630,6 +24630,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia public void testKotlinInheritsJava() throws Exception { runTest("compiler/testData/diagnostics/tests/override/parameterNames/kotlinInheritsJava.kt"); } + + @Test + @TestMetadata("noWarningOnJavaKotlinInheritance.kt") + public void testNoWarningOnJavaKotlinInheritance() throws Exception { + runTest("compiler/testData/diagnostics/tests/override/parameterNames/noWarningOnJavaKotlinInheritance.kt"); + } } @Nested diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestWithJvmIrBackendGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestWithJvmIrBackendGenerated.java index a9259ce24b6..f03d8bce30e 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestWithJvmIrBackendGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeDiagnosticsTestWithJvmIrBackendGenerated.java @@ -72,6 +72,12 @@ public class FirLightTreeDiagnosticsTestWithJvmIrBackendGenerated extends Abstra runTest("compiler/testData/diagnostics/testsWithJvmBackend/suspendInlineCycle.kt"); } + @Test + @TestMetadata("suspensionPointInMonitor.kt") + public void testSuspensionPointInMonitor() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJvmBackend/suspensionPointInMonitor.kt"); + } + @Nested @TestMetadata("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticsTestWithJvmIrBackendGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticsTestWithJvmIrBackendGenerated.java index ff919819f93..56c16797655 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticsTestWithJvmIrBackendGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiDiagnosticsTestWithJvmIrBackendGenerated.java @@ -72,6 +72,12 @@ public class FirPsiDiagnosticsTestWithJvmIrBackendGenerated extends AbstractFirP runTest("compiler/testData/diagnostics/testsWithJvmBackend/suspendInlineCycle.kt"); } + @Test + @TestMetadata("suspensionPointInMonitor.kt") + public void testSuspensionPointInMonitor() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJvmBackend/suspensionPointInMonitor.kt"); + } + @Nested @TestMetadata("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/library/JavaInterface.java b/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/library/JavaInterface.java deleted file mode 100644 index b45fbf1744f..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/library/JavaInterface.java +++ /dev/null @@ -1,3 +0,0 @@ -public interface JavaInterface { - void foo(int javaName); -} diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/noWarningsOnJavaKotlinInheritance.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/noWarningsOnJavaKotlinInheritance.kt deleted file mode 100644 index f92523206a0..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/noWarningsOnJavaKotlinInheritance/noWarningsOnJavaKotlinInheritance.kt +++ /dev/null @@ -1,18 +0,0 @@ -// Simple inheritance. Checks that there's no PARAMETER_NAME_CHANGED_ON_OVERRIDE warning - -class SimpleSubclass : JavaInterface { - override fun foo(kotlinName: Int) {} -} - - -// Class extends both Java and Kotlin traits. Checks that there's no DIFFERENT_NAMES_FOR_THE_SAME_PARAMETER_IN_SUPERTYPES warning - -interface KotlinTrait { - public fun foo(someOtherName: Int) {} -} - -class BothTraitsSubclass : JavaInterface, KotlinTrait { - override fun foo(someOtherName: Int) { - super.foo(someOtherName) - } -} diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/library/a.kt b/compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/library/a.kt deleted file mode 100644 index 679dbcdab3c..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/library/a.kt +++ /dev/null @@ -1,17 +0,0 @@ -val lock = Any() - -inline fun inlineMe(c: () -> Unit) { - synchronized(lock) { - c() - } -} - -inline fun monitorInFinally(a: () -> Unit, b: () -> Unit) { - try { - a() - } finally { - synchronized(lock) { - b() - } - } -} \ No newline at end of file diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/output.txt b/compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/output.txt deleted file mode 100644 index 0bb75df7bfb..00000000000 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/output.txt +++ /dev/null @@ -1,13 +0,0 @@ -compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt:8:13: error: a suspension point at SourceKt$test$1.invokeSuspend(source.kt:10) is inside a critical section - builder { - ^ -compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt:14:13: error: a suspension point at SourceKt$test$2.invokeSuspend(source.kt:17) is inside a critical section - builder { - ^ -compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt:49:1: error: a suspension point at SourceKt$test$3$invokeSuspend$$inlined$withCrossinline$2.invokeSuspend(source.kt:60) is inside a critical section -inline fun withCrossinline(crossinline a: suspend () -> Unit): suspend () -> Unit { -^ -compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt:50:34: error: a suspension point at SourceKt$withCrossinline$c$1.invokeSuspend(source.kt:52) is inside a critical section - val c : suspend () -> Unit = { - ^ -COMPILATION_ERROR diff --git a/compiler/testData/diagnostics/tests/override/parameterNames/noWarningOnJavaKotlinInheritance.kt b/compiler/testData/diagnostics/tests/override/parameterNames/noWarningOnJavaKotlinInheritance.kt new file mode 100644 index 00000000000..17a765f46c7 --- /dev/null +++ b/compiler/testData/diagnostics/tests/override/parameterNames/noWarningOnJavaKotlinInheritance.kt @@ -0,0 +1,28 @@ +// FIR_IDENTICAL +// MODULE: lib +// FILE: JavaInterface.java + +public interface JavaInterface { + void foo(int javaName); +} + +// MODULE: main(lib) +// FILE: test.kt + +// Simple inheritance. Checks that there's no PARAMETER_NAME_CHANGED_ON_OVERRIDE warning + +class SimpleSubclass : JavaInterface { + override fun foo(kotlinName: Int) {} +} + +// Class extends both Java and Kotlin interfaces. Checks that there's no DIFFERENT_NAMES_FOR_THE_SAME_PARAMETER_IN_SUPERTYPES warning + +interface KotlinInterface { + public fun foo(someOtherName: Int) {} +} + +class BothTraitsSubclass : JavaInterface, KotlinInterface { + override fun foo(someOtherName: Int) { + super.foo(someOtherName) + } +} diff --git a/compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt b/compiler/testData/diagnostics/testsWithJvmBackend/suspensionPointInMonitor.kt similarity index 51% rename from compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt rename to compiler/testData/diagnostics/testsWithJvmBackend/suspensionPointInMonitor.kt index fb1be9a9e0c..6ec7c504018 100644 --- a/compiler/testData/compileKotlinAgainstCustomBinaries/suspensionPointInMonitor/source.kt +++ b/compiler/testData/diagnostics/testsWithJvmBackend/suspensionPointInMonitor.kt @@ -1,3 +1,31 @@ +// !DIAGNOSTICS: -UNUSED_PARAMETER +// FIR_IDENTICAL +// WITH_STDLIB + +// MODULE: lib +// FILE: lib.kt + +val lock = Any() + +inline fun inlineMe(c: () -> Unit) { + synchronized(lock) { + c() + } +} + +inline fun monitorInFinally(a: () -> Unit, b: () -> Unit) { + try { + a() + } finally { + synchronized(lock) { + b() + } + } +} + +// MODULE: main(lib) +// FILE: main.kt + fun builder(c: suspend () -> Unit) {} private val lock = Any() @@ -5,18 +33,18 @@ private val lock = Any() suspend fun suspensionPoint() {} fun test() { - builder { + builder { inlineMe { suspensionPoint() } - } + } - builder { + builder { monitorInFinally( {}, { suspensionPoint() } ) - } + } builder { withCrossinline {} @@ -46,11 +74,11 @@ interface SuspendRunnable { } -inline fun withCrossinline(crossinline a: suspend () -> Unit): suspend () -> Unit { - val c : suspend () -> Unit = { +inline fun withCrossinline(crossinline a: suspend () -> Unit): suspend () -> Unit { + val c : suspend () -> Unit = { inlineMe { a() } - } + } return c -} +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index e1a0c3694d1..b2fca0cf577 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -25696,6 +25696,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { public void testKotlinInheritsJava() throws Exception { runTest("compiler/testData/diagnostics/tests/override/parameterNames/kotlinInheritsJava.kt"); } + + @Test + @TestMetadata("noWarningOnJavaKotlinInheritance.kt") + public void testNoWarningOnJavaKotlinInheritance() throws Exception { + runTest("compiler/testData/diagnostics/tests/override/parameterNames/noWarningOnJavaKotlinInheritance.kt"); + } } @Nested diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java index 84c15562b79..af12cb0aba8 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticsTestWithJvmIrBackendGenerated.java @@ -73,6 +73,12 @@ public class DiagnosticsTestWithJvmIrBackendGenerated extends AbstractDiagnostic runTest("compiler/testData/diagnostics/testsWithJvmBackend/suspendInlineCycle.kt"); } + @Test + @TestMetadata("suspensionPointInMonitor.kt") + public void testSuspensionPointInMonitor() throws Exception { + runTest("compiler/testData/diagnostics/testsWithJvmBackend/suspensionPointInMonitor.kt"); + } + @Nested @TestMetadata("compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt index f427f322441..fabc850eaa7 100644 --- a/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt +++ b/compiler/tests/org/jetbrains/kotlin/jvm/compiler/CompileKotlinAgainstCustomBinariesTest.kt @@ -8,9 +8,6 @@ package org.jetbrains.kotlin.jvm.compiler import com.intellij.openapi.util.io.FileUtil import org.jetbrains.kotlin.cli.common.CLICompiler import org.jetbrains.kotlin.cli.common.ExitCode -import org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport -import org.jetbrains.kotlin.cli.common.messages.MessageRenderer -import org.jetbrains.kotlin.cli.common.messages.PrintingMessageCollector import org.jetbrains.kotlin.cli.js.K2JSCompiler import org.jetbrains.kotlin.cli.jvm.K2JVMCompiler import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles @@ -129,15 +126,6 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration compileKotlin("main.kt", tmpdir, listOf(compileLibrary("library"))) } - fun testSuspensionPointInMonitor() { - compileKotlin( - "source.kt", - tmpdir, - listOf(compileLibrary("library", additionalOptions = listOf("-Xskip-metadata-version-check"))), - additionalOptions = listOf("-Xskip-metadata-version-check") - ) - } - fun testDuplicateObjectInBinaryAndSources() { val allDescriptors = analyzeAndGetAllDescriptors(compileLibrary("library")) assertEquals(allDescriptors.toString(), 2, allDescriptors.size) @@ -161,26 +149,6 @@ class CompileKotlinAgainstCustomBinariesTest : AbstractKotlinCompilerIntegration doTestBrokenLibrary("library", "a/E.class") } - fun testNoWarningsOnJavaKotlinInheritance() { - // This test checks that there are no PARAMETER_NAME_CHANGED_ON_OVERRIDE or DIFFERENT_NAMES_FOR_THE_SAME_PARAMETER_IN_SUPERTYPES - // warnings when subclassing in Kotlin from Java binaries (in case when no parameter names are available for Java classes) - - val library = compileLibrary("library") - val environment = createEnvironment(listOf(library)) - - val ktFile = KotlinTestUtils.loadKtFile(environment.project, getTestDataFileWithExtension("kt")) - val result = JvmResolveUtil.analyze(ktFile, environment) - result.throwIfError() - - AnalyzerWithCompilerReport.reportDiagnostics( - result.bindingContext.diagnostics, - PrintingMessageCollector(System.err, MessageRenderer.PLAIN_FULL_PATHS, false), - renderInternalDiagnosticName = false - ) - - assertEquals("There should be no diagnostics", 0, result.bindingContext.diagnostics.count()) - } - fun testIncompleteHierarchyInJava() { doTestBrokenLibrary("library", "test/Super.class") }