IR: add SourceElement reference to IrClass

This commit is contained in:
Georgy Bronnikov
2020-06-10 12:44:32 +03:00
parent 811e8d0f24
commit 8037baf307
3 changed files with 9 additions and 10 deletions
@@ -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<IrType>
var thisReceiver: IrValueParameter?
@@ -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<ClassCarrier>(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 {
@@ -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 <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
visitor.visitClass(this, data)