diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 42d604bf23f..72af0f9bb4a 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -32555,6 +32555,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/tests/when/kt48653_before.kt"); } + @Test + @TestMetadata("kt49702.kt") + public void testKt49702() throws Exception { + runTest("compiler/testData/diagnostics/tests/when/kt49702.kt"); + } + @Test @TestMetadata("kt9929.kt") public void testKt9929() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index c877b88be57..bd93fd3003f 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -32555,6 +32555,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/tests/when/kt48653_before.kt"); } + @Test + @TestMetadata("kt49702.kt") + public void testKt49702() throws Exception { + runTest("compiler/testData/diagnostics/tests/when/kt49702.kt"); + } + @Test @TestMetadata("kt9929.kt") public void testKt9929() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java index c3796125be5..1de434c3b08 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java @@ -32555,6 +32555,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac runTest("compiler/testData/diagnostics/tests/when/kt48653_before.kt"); } + @Test + @TestMetadata("kt49702.kt") + public void testKt49702() throws Exception { + runTest("compiler/testData/diagnostics/tests/when/kt49702.kt"); + } + @Test @TestMetadata("kt9929.kt") public void testKt9929() throws Exception { diff --git a/compiler/frontend.common/src/org/jetbrains/kotlin/diagnostics/WhenMissingCase.kt b/compiler/frontend.common/src/org/jetbrains/kotlin/diagnostics/WhenMissingCase.kt index 0f2b2f6e31c..6fd92d9526a 100644 --- a/compiler/frontend.common/src/org/jetbrains/kotlin/diagnostics/WhenMissingCase.kt +++ b/compiler/frontend.common/src/org/jetbrains/kotlin/diagnostics/WhenMissingCase.kt @@ -45,7 +45,8 @@ sealed class WhenMissingCase { } override fun toString(): String { - val name = classId.shortClassName.identifier + val className = classId.shortClassName + val name = if (className.isSpecial) className.asString() else className.identifier return if (isSingleton) name else "is $name" } } diff --git a/compiler/testData/diagnostics/tests/when/kt49702.kt b/compiler/testData/diagnostics/tests/when/kt49702.kt new file mode 100644 index 00000000000..65716474c01 --- /dev/null +++ b/compiler/testData/diagnostics/tests/when/kt49702.kt @@ -0,0 +1,9 @@ +// FIR_IDENTICAL +sealed class A { + class B:A() + class :A() + fun test(a : A) { + ' branches or 'else' branch instead")!>when(a) { + } + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/when/kt49702.txt b/compiler/testData/diagnostics/tests/when/kt49702.txt new file mode 100644 index 00000000000..e1fa94edbe5 --- /dev/null +++ b/compiler/testData/diagnostics/tests/when/kt49702.txt @@ -0,0 +1,25 @@ +package + +public sealed class A { + protected constructor A() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public final fun test(/*0*/ a: A): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + + public final class : A { + public constructor () + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public final override /*1*/ /*fake_override*/ fun test(/*0*/ a: A): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } + + public final class B : A { + public constructor B() + public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean + public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int + public final override /*1*/ /*fake_override*/ fun test(/*0*/ a: A): kotlin.Unit + public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String + } +} 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 a3732383278..93300fda835 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 @@ -32651,6 +32651,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/when/kt48653_before.kt"); } + @Test + @TestMetadata("kt49702.kt") + public void testKt49702() throws Exception { + runTest("compiler/testData/diagnostics/tests/when/kt49702.kt"); + } + @Test @TestMetadata("kt9929.kt") public void testKt9929() throws Exception {