[LazyIR] Exclude INVISIBLE_FAKE callable members from class declarations

Fixes KT-55509
This commit is contained in:
Dmitriy Dolovov
2022-12-21 14:28:11 +01:00
committed by Space Team
parent 4c925d0588
commit 4428971401
2 changed files with 15 additions and 5 deletions
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.ir.declarations.lazy
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities.isPrivate
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
import org.jetbrains.kotlin.ir.declarations.*
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
@@ -73,10 +74,10 @@ class IrLazyClass(
}
private fun shouldBuildStub(descriptor: DeclarationDescriptor): Boolean =
descriptor !is DeclarationDescriptorWithVisibility ||
!DescriptorVisibilities.isPrivate(descriptor.visibility) ||
descriptor !is DeclarationDescriptorWithVisibility
|| (!isPrivate(descriptor.visibility) && descriptor.visibility != DescriptorVisibilities.INVISIBLE_FAKE)
// This exception is needed for K/N caches usage.
isObject && descriptor is ClassConstructorDescriptor
|| isObject && descriptor is ClassConstructorDescriptor
override var typeParameters: List<IrTypeParameter> by lazyVar(stubGenerator.lock) {
descriptor.declaredTypeParameters.mapTo(arrayListOf()) {