IR: add SourceElement reference to IrClass
This commit is contained in:
@@ -16,10 +16,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.ir.declarations
|
package org.jetbrains.kotlin.ir.declarations
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
|
|
||||||
@@ -41,6 +38,8 @@ interface IrClass :
|
|||||||
val isExpect: Boolean
|
val isExpect: Boolean
|
||||||
val isFun: Boolean
|
val isFun: Boolean
|
||||||
|
|
||||||
|
val source: SourceElement
|
||||||
|
|
||||||
var superTypes: List<IrType>
|
var superTypes: List<IrType>
|
||||||
|
|
||||||
var thisReceiver: IrValueParameter?
|
var thisReceiver: IrValueParameter?
|
||||||
|
|||||||
@@ -45,7 +45,8 @@ class IrClassImpl(
|
|||||||
override val isExternal: Boolean = false,
|
override val isExternal: Boolean = false,
|
||||||
override val isInline: Boolean = false,
|
override val isInline: Boolean = false,
|
||||||
override val isExpect: 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),
|
IrDeclarationBase<ClassCarrier>(startOffset, endOffset, origin),
|
||||||
IrClass,
|
IrClass,
|
||||||
@@ -67,7 +68,8 @@ class IrClassImpl(
|
|||||||
isCompanion = descriptor.isCompanionObject, isInner = descriptor.isInner,
|
isCompanion = descriptor.isCompanionObject, isInner = descriptor.isInner,
|
||||||
isData = descriptor.isData, isExternal = descriptor.isEffectivelyExternal(),
|
isData = descriptor.isData, isExternal = descriptor.isEffectivelyExternal(),
|
||||||
isInline = descriptor.isInline, isExpect = descriptor.isExpect,
|
isInline = descriptor.isInline, isExpect = descriptor.isExpect,
|
||||||
isFun = descriptor.isFun
|
isFun = descriptor.isFun,
|
||||||
|
source = descriptor.source
|
||||||
)
|
)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
|||||||
@@ -5,10 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.ir.declarations.lazy
|
package org.jetbrains.kotlin.ir.declarations.lazy
|
||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
import org.jetbrains.kotlin.descriptors.*
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
@@ -90,6 +87,7 @@ class IrLazyClass(
|
|||||||
|
|
||||||
val classProto: ProtoBuf.Class? get() = (descriptor as? DeserializedClassDescriptor)?.classProto
|
val classProto: ProtoBuf.Class? get() = (descriptor as? DeserializedClassDescriptor)?.classProto
|
||||||
val nameResolver: NameResolver? get() = (descriptor as? DeserializedClassDescriptor)?.c?.nameResolver
|
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 =
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
|
||||||
visitor.visitClass(this, data)
|
visitor.visitClass(this, data)
|
||||||
|
|||||||
Reference in New Issue
Block a user