IR: remove hack related to inline class representation in lazy IR
This commit effectively reverts changes from
b5f9b1dfc0, fixing the problem from
KT-44723 in a stabler way. It is possible because we now serialize
inline class representation to metadata and after previous changes, we
have that representation as a field in IrClass.
This commit is contained in:
@@ -78,13 +78,7 @@ class IrLazyClass(
|
|||||||
|
|
||||||
private fun shouldBuildStub(descriptor: DeclarationDescriptor): Boolean =
|
private fun shouldBuildStub(descriptor: DeclarationDescriptor): Boolean =
|
||||||
descriptor !is DeclarationDescriptorWithVisibility ||
|
descriptor !is DeclarationDescriptorWithVisibility ||
|
||||||
!DescriptorVisibilities.isPrivate(descriptor.visibility) ||
|
!DescriptorVisibilities.isPrivate(descriptor.visibility)
|
||||||
// Always build lazy IR stubs for inline class primary constructors.
|
|
||||||
// This is needed because primary constructors of inline classes can be private, and prior to 1.5.0, there was no way
|
|
||||||
// to determine the inline class representation other than by loading the single value parameter of the primary constructor
|
|
||||||
// (corresponding metadata entry was added in 1.5.0). Backend still tries to load inline class representation in this way
|
|
||||||
// to support compilation against inline classes compiled with 1.4.30 or earlier.
|
|
||||||
(descriptor is ConstructorDescriptor && isInline)
|
|
||||||
|
|
||||||
override var typeParameters: List<IrTypeParameter> by lazyVar(stubGenerator.lock) {
|
override var typeParameters: List<IrTypeParameter> by lazyVar(stubGenerator.lock) {
|
||||||
descriptor.declaredTypeParameters.mapTo(arrayListOf()) {
|
descriptor.declaredTypeParameters.mapTo(arrayListOf()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user