KT-47475 Do not copy InnerClass attribute for WhenMapping classes
diff --git a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/ObjectTransformer.kt b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/ObjectTransformer.kt
index 626766f..3cd637f 100644
--- a/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/ObjectTransformer.kt
+++ b/compiler/backend/src/org/jetbrains/kotlin/codegen/inline/ObjectTransformer.kt
@@ -83,6 +83,13 @@
                     methodNodes.add(this)
                 }
             }
+
+            override fun visitInnerClass(name: String?, outerName: String?, innerName: String?, access: Int) {
+                // Drop the attribute as the recreated class is not an inner class of the original outer class.
+                // In principle, we could also generate a new attribute with outerName set to the caller-side class,
+                // but that would require modification of both the inner (recreated) and the outer (caller-side) classes.
+                // The latter would require a lot of work without any clear benefits.
+            }
         }, ClassReader.SKIP_FRAMES)
 
         assert(methodNodes.size == 1) {
diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java
index f1d2d52..3ab2dda 100644
--- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java
+++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java
@@ -50276,6 +50276,12 @@
         }
 
         @Test
+        @TestMetadata("kt47475.kt")
+        public void testKt47475() throws Exception {
+            runTest("compiler/testData/codegen/box/when/kt47475.kt");
+        }
+
+        @Test
         @TestMetadata("kt5307.kt")
         public void testKt5307() throws Exception {
             runTest("compiler/testData/codegen/box/when/kt5307.kt");
diff --git a/compiler/testData/codegen/box/when/kt47475.kt b/compiler/testData/codegen/box/when/kt47475.kt
new file mode 100644
index 0000000..569e7ab
--- /dev/null
+++ b/compiler/testData/codegen/box/when/kt47475.kt
@@ -0,0 +1,27 @@
+// TARGET_BACKEND: JVM
+// CHECK_BYTECODE_TEXT
+
+// MODULE: lib
+// FILE: lib.kt
+
+enum class SomeEnum{A, B}
+
+inline fun inlineEnumWhen(someEnum: SomeEnum) = when(someEnum) {
+    SomeEnum.A -> "A"
+    else -> "not A"
+}
+
+// JVM_IR_TEMPLATES
+// 2 INNERCLASS
+
+// MODULE: caller(lib)
+// FILE: caller.kt
+
+fun box(): String {
+    inlineEnumWhen(SomeEnum.A)
+    val mappings = Class.forName("CallerKt\$box\$\$inlined\$inlineEnumWhen\$1\$wm\$LibKt\$WhenMappings")
+    return if (mappings.enclosingClass == null) "OK" else "FAIL"
+}
+
+// JVM_IR_TEMPLATES
+// 0 INNERCLASS
\ No newline at end of file
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java
index 0dd6c72..0f2af66 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java
@@ -48740,6 +48740,12 @@
         }
 
         @Test
+        @TestMetadata("kt47475.kt")
+        public void testKt47475() throws Exception {
+            runTest("compiler/testData/codegen/box/when/kt47475.kt");
+        }
+
+        @Test
         @TestMetadata("kt5307.kt")
         public void testKt5307() throws Exception {
             runTest("compiler/testData/codegen/box/when/kt5307.kt");
diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java
index 68a2784..d1f1fe3 100644
--- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java
+++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java
@@ -50276,6 +50276,12 @@
         }
 
         @Test
+        @TestMetadata("kt47475.kt")
+        public void testKt47475() throws Exception {
+            runTest("compiler/testData/codegen/box/when/kt47475.kt");
+        }
+
+        @Test
         @TestMetadata("kt5307.kt")
         public void testKt5307() throws Exception {
             runTest("compiler/testData/codegen/box/when/kt5307.kt");
diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java
index c142cff..58225e2 100644
--- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java
+++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java
@@ -39608,6 +39608,11 @@
             runTest("compiler/testData/codegen/box/when/kt47365.kt");
         }
 
+        @TestMetadata("kt47475.kt")
+        public void testKt47475() throws Exception {
+            runTest("compiler/testData/codegen/box/when/kt47475.kt");
+        }
+
         @TestMetadata("kt5307.kt")
         public void testKt5307() throws Exception {
             runTest("compiler/testData/codegen/box/when/kt5307.kt");