K2: add package FQ name to ClassId of anonymous objects

This is needed because in order to figure out which declarations are
visible from anonymous objects in terms of overridability (see
`FirVisibilityChecker.isVisibleForOverriding`), we need to get the
package name of that anonymous object, because there's package-private
visibility on JVM.

 #KT-62017 Fixed
This commit is contained in:
Alexander Udalov
2023-09-18 17:00:08 +02:00
committed by Space Team
parent 59a9855373
commit 5cae87b263
28 changed files with 156 additions and 90 deletions
@@ -54,17 +54,17 @@ FILE: CallBasedInExpressionGenerator.kt
private final fun gen(argument: R|org/jetbrains/kotlin/codegen/range/inExpression/StackValue|): R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue| {
^gen object : R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue| {
private constructor(): R|<anonymous>| {
private constructor(): R|org/jetbrains/kotlin/codegen/range/inExpression/<anonymous>| {
super<R|org/jetbrains/kotlin/codegen/range/inExpression/BranchedValue|>(R|<local>/argument|, Null(null), R|<local>/argument|.<Unresolved name: type>#, <Unresolved name: Opcodes>#.<Unresolved name: IFEQ>#)
}
public open override fun putSelector(type: R|org/jetbrains/kotlin/codegen/range/inExpression/Type|, kotlinType: R|org/jetbrains/kotlin/codegen/range/inExpression/KotlinType?|, v: R|org/jetbrains/kotlin/codegen/range/inExpression/InstructionAdapter|): R|kotlin/Unit| {
this@R|/<anonymous>|.R|/<anonymous>.invokeFunction|(R|<local>/v|)
this@R|org/jetbrains/kotlin/codegen/range/inExpression/<anonymous>|.R|org/jetbrains/kotlin/codegen/range/inExpression/<anonymous>.invokeFunction|(R|<local>/v|)
<Unresolved name: coerceTo>#(R|<local>/type|, R|<local>/kotlinType|, R|<local>/v|)
}
public open override fun condJump(jumpLabel: R|org/jetbrains/kotlin/codegen/range/inExpression/Label|, v: R|org/jetbrains/kotlin/codegen/range/inExpression/InstructionAdapter|, jumpIfFalse: R|kotlin/Boolean|): R|kotlin/Unit| {
this@R|/<anonymous>|.R|/<anonymous>.invokeFunction|(R|<local>/v|)
this@R|org/jetbrains/kotlin/codegen/range/inExpression/<anonymous>|.R|org/jetbrains/kotlin/codegen/range/inExpression/<anonymous>.invokeFunction|(R|<local>/v|)
R|<local>/v|.<Unresolved name: visitJumpInsn>#(when () {
R|<local>/jumpIfFalse| -> {
<Unresolved name: Opcodes>#.<Unresolved name: IFEQ>#