Fix for KT-13133: Incorrect InnerClasses attribute value for anonymous object copied from an inline function
#KT-13133 Fixed
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
// WITH_REFLECT
|
||||
// FILE: 1.kt
|
||||
|
||||
package test
|
||||
|
||||
inline fun inf(crossinline cif: Any.() -> String): () -> String {
|
||||
return {
|
||||
object : () -> String {
|
||||
override fun invoke() = cif()
|
||||
}
|
||||
}()
|
||||
}
|
||||
// FILE: 2.kt
|
||||
|
||||
import test.*
|
||||
|
||||
fun box(): String {
|
||||
val simpleName = inf {
|
||||
javaClass.simpleName
|
||||
}()
|
||||
|
||||
if (simpleName != "" ) return "fail 1: $simpleName"
|
||||
|
||||
val name = inf {
|
||||
javaClass.name
|
||||
}()
|
||||
|
||||
if (name != "_2Kt\$box$\$inlined\$inf$2$1" ) return "fail 2: $name"
|
||||
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ fun box(): String {
|
||||
if (enclosingMethod?.name != "invoke") return "fail 1: ${enclosingMethod?.name}"
|
||||
|
||||
enclosingClass = res2.javaClass.enclosingClass
|
||||
if (enclosingClass?.name != "_2Kt\$box$\$inlined\$call\$lambda\$lambda$2") return "fail 2: ${enclosingClass?.name}"
|
||||
if (enclosingClass?.name != "_2Kt\$box$\$inlined\$call$2\$lambda$1") return "fail 2: ${enclosingClass?.name}"
|
||||
|
||||
return res2()
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ fun box(): String {
|
||||
}
|
||||
|
||||
if (encl1 != "_2Kt\$box\$\$inlined\$test\$lambda$1") return "fail 1: $encl1"
|
||||
if (encl2 != "_2Kt\$box\$\$inlined\$test\$lambda\$lambda$2") return "fail 2: $encl2"
|
||||
if (encl2 != "_2Kt\$box\$\$inlined\$test\$lambda$1$2") return "fail 2: $encl2"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
|
||||
+2
-2
@@ -17,6 +17,6 @@ inline fun test(s: () -> Unit) {
|
||||
s()
|
||||
}
|
||||
|
||||
// 2 INNERCLASS Kt10259Kt\$box\$\$inlined\$test\$lambda\$1
|
||||
// 2 INNERCLASS Kt10259Kt\$box\$\$inlined\$test\$lambda\$lambda\$1
|
||||
// 2 INNERCLASS Kt10259Kt\$box\$\$inlined\$test\$lambda\$1\s
|
||||
// 2 INNERCLASS Kt10259Kt\$box\$\$inlined\$test\$lambda\$1\$1
|
||||
// 4 INNERCLASS
|
||||
+2
-2
@@ -17,6 +17,6 @@ inline fun test(crossinline s: () -> Unit) {
|
||||
|
||||
// 3 INNERCLASS Kt10259_2Kt\$test\$1 null
|
||||
// 2 INNERCLASS Kt10259_2Kt\$test\$1\$1
|
||||
// 2 INNERCLASS Kt10259_2Kt\$box\$\$inlined\$test\$1
|
||||
// 2 INNERCLASS Kt10259_2Kt\$box\$\$inlined\$test\$lambda\$1
|
||||
// 2 INNERCLASS Kt10259_2Kt\$box\$\$inlined\$test\$1\s
|
||||
// 2 INNERCLASS Kt10259_2Kt\$box\$\$inlined\$test\$1\$1
|
||||
// 9 INNERCLASS
|
||||
+4
-4
@@ -21,9 +21,9 @@ inline fun test(crossinline s: () -> Unit) {
|
||||
|
||||
// 3 INNERCLASS Kt10259_3Kt\$test\$1 null
|
||||
// 2 INNERCLASS Kt10259_3Kt\$test\$1\$1
|
||||
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$1
|
||||
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$lambda\$1
|
||||
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$1\s
|
||||
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$1\$1\s
|
||||
// inlined:
|
||||
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$lambda\$lambda\$lambda\$1
|
||||
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$lambda\$lambda\$lambda\$lambda\$1
|
||||
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$1\$1\$lambda\$1\s
|
||||
// 2 INNERCLASS Kt10259_3Kt\$box\$\$inlined\$test\$1\$1\$lambda\$1\$1\s
|
||||
// 13 INNERCLASS
|
||||
Reference in New Issue
Block a user