From 8037baf307893d7ee1b389739175e5d82570e47a Mon Sep 17 00:00:00 2001 From: Georgy Bronnikov Date: Wed, 10 Jun 2020 12:44:32 +0300 Subject: [PATCH] IR: add SourceElement reference to IrClass --- .../src/org/jetbrains/kotlin/ir/declarations/IrClass.kt | 7 +++---- .../jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt | 6 ++++-- .../jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt | 6 ++---- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt index eb58b3c6d63..264a2cad767 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrClass.kt @@ -16,10 +16,7 @@ package org.jetbrains.kotlin.ir.declarations -import org.jetbrains.kotlin.descriptors.ClassDescriptor -import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.types.IrType @@ -41,6 +38,8 @@ interface IrClass : val isExpect: Boolean val isFun: Boolean + val source: SourceElement + var superTypes: List var thisReceiver: IrValueParameter? diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt index 8005a9153c6..3e5337ca16f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt @@ -45,7 +45,8 @@ class IrClassImpl( override val isExternal: Boolean = false, override val isInline: Boolean = false, override val isExpect: Boolean = false, - override val isFun: Boolean = false + override val isFun: Boolean = false, + override val source: SourceElement = SourceElement.NO_SOURCE ) : IrDeclarationBase(startOffset, endOffset, origin), IrClass, @@ -67,7 +68,8 @@ class IrClassImpl( isCompanion = descriptor.isCompanionObject, isInner = descriptor.isInner, isData = descriptor.isData, isExternal = descriptor.isEffectivelyExternal(), isInline = descriptor.isInline, isExpect = descriptor.isExpect, - isFun = descriptor.isFun + isFun = descriptor.isFun, + source = descriptor.source ) init { diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt index 1324ee20531..f26c5d99aa6 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/IrLazyClass.kt @@ -5,10 +5,7 @@ package org.jetbrains.kotlin.ir.declarations.lazy -import org.jetbrains.kotlin.descriptors.ClassDescriptor -import org.jetbrains.kotlin.descriptors.ClassKind -import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibility +import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.symbols.IrClassSymbol import org.jetbrains.kotlin.ir.types.IrType @@ -90,6 +87,7 @@ class IrLazyClass( val classProto: ProtoBuf.Class? get() = (descriptor as? DeserializedClassDescriptor)?.classProto val nameResolver: NameResolver? get() = (descriptor as? DeserializedClassDescriptor)?.c?.nameResolver + override val source: SourceElement get() = descriptor.source override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitClass(this, data)