diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt index 02bf781452e..2e1930d7bc0 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ClassGenerator.kt @@ -171,21 +171,21 @@ class ClassGenerator( private fun generateDelegatedProperty( irDelegate: IrField, - delegated: PropertyDescriptor, - overridden: PropertyDescriptor + delegatedDescriptor: PropertyDescriptor, + overriddenDescriptor: PropertyDescriptor ): IrPropertyImpl { val startOffset = irDelegate.startOffset val endOffset = irDelegate.endOffset val irProperty = IrPropertyImpl( startOffset, endOffset, IrDeclarationOrigin.DELEGATED_MEMBER, - false, delegated, delegated.type.toIrType() + false, delegatedDescriptor ) - irProperty.getter = generateDelegatedFunction(irDelegate, delegated.getter!!, overridden.getter!!) + irProperty.getter = generateDelegatedFunction(irDelegate, delegatedDescriptor.getter!!, overriddenDescriptor.getter!!) - if (delegated.isVar) { - irProperty.setter = generateDelegatedFunction(irDelegate, delegated.setter!!, overridden.setter!!) + if (delegatedDescriptor.isVar) { + irProperty.setter = generateDelegatedFunction(irDelegate, delegatedDescriptor.setter!!, overriddenDescriptor.setter!!) } return irProperty } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DeclarationGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DeclarationGenerator.kt index 5b4285def2e..1af3c781bb5 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DeclarationGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DeclarationGenerator.kt @@ -168,7 +168,6 @@ class DeclarationGenerator(override val context: GeneratorContext) : Generator { IrDeclarationOrigin.FAKE_OVERRIDE, false, propertyDescriptor, - propertyDescriptor.type.toIrType(), backingField, propertyDescriptor.getter?.let { generateFakeOverrideFunction(it, ktElement) }, propertyDescriptor.setter?.let { generateFakeOverrideFunction(it, ktElement) } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DelegatedPropertyGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DelegatedPropertyGenerator.kt index 3e7adc0551f..e08cff3010b 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DelegatedPropertyGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/DelegatedPropertyGenerator.kt @@ -58,8 +58,7 @@ class DelegatedPropertyGenerator(declarationGenerator: DeclarationGenerator) : D val irProperty = IrPropertyImpl( ktProperty.startOffset, ktProperty.endOffset, IrDeclarationOrigin.DEFINED, isDelegated = true, - descriptor = propertyDescriptor, - type = propertyDescriptor.type.toIrType() + descriptor = propertyDescriptor ).apply { backingField = generateDelegateFieldForProperty(propertyDescriptor, kPropertyType, ktDelegate) } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt index c508c712a65..2f2e2b7035b 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/PropertyGenerator.kt @@ -48,8 +48,7 @@ class PropertyGenerator(declarationGenerator: DeclarationGenerator) : Declaratio return IrPropertyImpl( ktParameter.startOffset, ktParameter.endOffset, IrDeclarationOrigin.DEFINED, false, - propertyDescriptor, - irPropertyType + propertyDescriptor ).also { irProperty -> irProperty.backingField = generatePropertyBackingField(ktParameter, propertyDescriptor) { @@ -104,8 +103,7 @@ class PropertyGenerator(declarationGenerator: DeclarationGenerator) : Declaratio ktProperty.startOffset, ktProperty.endOffset, IrDeclarationOrigin.DEFINED, false, - propertyDescriptor, - propertyDescriptor.type.toIrType() + propertyDescriptor ).buildWithScope { irProperty -> irProperty.backingField = if (propertyDescriptor.hasBackingField()) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt index 6cefa3b149e..531b9d9c423 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrProperty.kt @@ -26,7 +26,6 @@ interface IrProperty : IrDeclaration { override val descriptor: PropertyDescriptor val name: Name - val type: IrType val modality: Modality val visibility: Visibility val isVar: Boolean diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt index 4360b7694bc..a771b251de2 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrPropertyImpl.kt @@ -20,7 +20,6 @@ import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.PropertyDescriptor import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.util.transform import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor @@ -34,7 +33,6 @@ class IrPropertyImpl( origin: IrDeclarationOrigin, override val descriptor: PropertyDescriptor, override val name: Name, - override val type: IrType, override val visibility: Visibility, override val modality: Modality, override val isVar: Boolean, @@ -50,11 +48,10 @@ class IrPropertyImpl( endOffset: Int, origin: IrDeclarationOrigin, isDelegated: Boolean, - descriptor: PropertyDescriptor, - type: IrType + descriptor: PropertyDescriptor ) : this( startOffset, endOffset, origin, descriptor, - descriptor.name, type, descriptor.visibility, descriptor.modality, + descriptor.name, descriptor.visibility, descriptor.modality, isVar = descriptor.isVar, isConst = descriptor.isConst, isLateinit = descriptor.isLateInit, @@ -66,9 +63,8 @@ class IrPropertyImpl( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - descriptor: PropertyDescriptor, - type: IrType - ) : this(startOffset, endOffset, origin, descriptor.isDelegated, descriptor, type) + descriptor: PropertyDescriptor + ) : this(startOffset, endOffset, origin, descriptor.isDelegated, descriptor) constructor( startOffset: Int, @@ -76,9 +72,8 @@ class IrPropertyImpl( origin: IrDeclarationOrigin, isDelegated: Boolean, descriptor: PropertyDescriptor, - type: IrType, backingField: IrField? - ) : this(startOffset, endOffset, origin, isDelegated, descriptor, type) { + ) : this(startOffset, endOffset, origin, isDelegated, descriptor) { this.backingField = backingField } @@ -88,11 +83,10 @@ class IrPropertyImpl( origin: IrDeclarationOrigin, isDelegated: Boolean, descriptor: PropertyDescriptor, - type: IrType, backingField: IrField?, getter: IrSimpleFunction?, setter: IrSimpleFunction? - ) : this(startOffset, endOffset, origin, isDelegated, descriptor, type, backingField) { + ) : this(startOffset, endOffset, origin, isDelegated, descriptor, backingField) { this.getter = getter this.setter = setter } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeclarationStubGenerator.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeclarationStubGenerator.kt index fc67753d645..6edebce6b3a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeclarationStubGenerator.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeclarationStubGenerator.kt @@ -62,10 +62,7 @@ class DeclarationStubGenerator( } private fun generatePropertyStub(descriptor: PropertyDescriptor): IrProperty = - IrPropertyImpl( - UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, - descriptor, descriptor.type.toIrType() - ).also { irProperty -> + IrPropertyImpl(UNDEFINED_OFFSET, UNDEFINED_OFFSET, origin, descriptor).also { irProperty -> val getterDescriptor = descriptor.getter if (getterDescriptor == null) { irProperty.backingField = diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt index 0380b862c50..917ee1aca62 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt @@ -227,7 +227,6 @@ open class DeepCopyIrTree : IrElementTransformerVoid() { mapDeclarationOrigin(declaration.origin), declaration.isDelegated, mapPropertyDeclaration(declaration.descriptor), - declaration.type, // TODO declaration.backingField?.transform(), declaration.getter?.transform(), declaration.setter?.transform() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt index 5f0e926921f..7f0c9b94244 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTreeWithSymbols.kt @@ -160,7 +160,6 @@ open class DeepCopyIrTreeWithSymbols( mapDeclarationOrigin(declaration.origin), declaration.isDelegated, declaration.descriptor, - declaration.type.remapType(), declaration.backingField?.transform(), declaration.getter?.transform(), declaration.setter?.transform() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt index 8bf7c705fa9..0aaf3244bc2 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/RenderIrElement.kt @@ -101,7 +101,7 @@ class RenderIrElementVisitor : IrElementVisitor { override fun visitProperty(declaration: IrProperty, data: Nothing?): String = declaration.run { "PROPERTY ${renderOriginIfNonTrivial()}" + - "name:$name type:${type.render()} visibility:$visibility modality:$modality " + + "name:$name visibility:$visibility modality:$modality " + "flags:${renderPropertyFlags()}" }