IR: remove deprecated constructor of IrClassImpl

This commit is contained in:
Alexander Udalov
2020-07-06 23:36:25 +02:00
parent e6993e1b88
commit 0baa1c8723
4 changed files with 32 additions and 32 deletions
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.ir.expressions.impl.*
import org.jetbrains.kotlin.ir.expressions.mapValueParameters import org.jetbrains.kotlin.ir.expressions.mapValueParameters
import org.jetbrains.kotlin.ir.expressions.putTypeArguments import org.jetbrains.kotlin.ir.expressions.putTypeArguments
import org.jetbrains.kotlin.ir.expressions.typeParametersCount import org.jetbrains.kotlin.ir.expressions.typeParametersCount
import org.jetbrains.kotlin.ir.util.createIrClassFromDescriptor
import org.jetbrains.kotlin.ir.util.declareSimpleFunctionWithOverrides import org.jetbrains.kotlin.ir.util.declareSimpleFunctionWithOverrides
import org.jetbrains.kotlin.ir.util.properties import org.jetbrains.kotlin.ir.util.properties
import org.jetbrains.kotlin.ir.util.referenceFunction import org.jetbrains.kotlin.ir.util.referenceFunction
@@ -84,12 +85,12 @@ class ClassGenerator(
val modality = getEffectiveModality(ktClassOrObject, classDescriptor) val modality = getEffectiveModality(ktClassOrObject, classDescriptor)
return context.symbolTable.declareClass(classDescriptor) { return context.symbolTable.declareClass(classDescriptor) {
IrClassImpl( createIrClassFromDescriptor(
startOffset, endOffset, IrDeclarationOrigin.DEFINED, it, startOffset, endOffset, IrDeclarationOrigin.DEFINED, it, classDescriptor,
classDescriptor, context.symbolTable.nameProvider.nameForDeclaration(classDescriptor), visibility, modality
context.symbolTable.nameProvider.nameForDeclaration(classDescriptor), ).apply {
visibility = visibility, modality = modality, (this as IrClassImpl).metadata = MetadataSource.Class(it.descriptor)
).apply { metadata = MetadataSource.Class(it.descriptor) } }
}.buildWithScope { irClass -> }.buildWithScope { irClass ->
declarationGenerator.generateGlobalTypeParametersDeclarations(irClass, classDescriptor.declaredTypeParameters) declarationGenerator.generateGlobalTypeParametersDeclarations(irClass, classDescriptor.declaredTypeParameters)
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.ir.declarations.impl.*
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
import org.jetbrains.kotlin.ir.symbols.* import org.jetbrains.kotlin.ir.symbols.*
import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType import org.jetbrains.kotlin.ir.types.impl.IrUninitializedType
import org.jetbrains.kotlin.ir.util.createIrClassFromDescriptor
import org.jetbrains.kotlin.ir.util.withScope import org.jetbrains.kotlin.ir.util.withScope
import org.jetbrains.kotlin.psi.KtParameter import org.jetbrains.kotlin.psi.KtParameter
import org.jetbrains.kotlin.psi.KtPureElement import org.jetbrains.kotlin.psi.KtPureElement
@@ -75,11 +76,10 @@ class StandaloneDeclarationGenerator(private val context: GeneratorContext) {
} }
fun generateClass(startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: ClassDescriptor, symbol: IrClassSymbol): IrClass { fun generateClass(startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: ClassDescriptor, symbol: IrClassSymbol): IrClass {
val irClass = createIrClassFromDescriptor(startOffset, endOffset, origin, symbol, descriptor)
val irClass = IrClassImpl(startOffset, endOffset, origin, symbol, descriptor)
symbolTable.withScope(irClass) { symbolTable.withScope(irClass) {
irClass.metadata = MetadataSource.Class(descriptor) (irClass as IrClassImpl).metadata = MetadataSource.Class(descriptor)
generateGlobalTypeParametersDeclarations(irClass, descriptor.declaredTypeParameters) generateGlobalTypeParametersDeclarations(irClass, descriptor.declaredTypeParameters)
irClass.superTypes = descriptor.typeConstructor.supertypes.map { irClass.superTypes = descriptor.typeConstructor.supertypes.map {
@@ -27,7 +27,6 @@ import org.jetbrains.kotlin.ir.util.transformIfNeeded
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyExternal
import java.util.* import java.util.*
import kotlin.collections.ArrayList import kotlin.collections.ArrayList
@@ -53,26 +52,6 @@ class IrClassImpl(
IrClass, IrClass,
ClassCarrier { ClassCarrier {
constructor(
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrClassSymbol,
descriptor: ClassDescriptor,
name: Name = descriptor.name,
visibility: Visibility = descriptor.visibility,
modality: Modality = descriptor.modality
) : this(
startOffset, endOffset, origin, symbol,
name, kind = descriptor.kind,
visibility = visibility, modality = modality,
isCompanion = descriptor.isCompanionObject, isInner = descriptor.isInner,
isData = descriptor.isData, isExternal = descriptor.isEffectivelyExternal(),
isInline = descriptor.isInline, isExpect = descriptor.isExpect,
isFun = descriptor.isFun,
source = descriptor.source
)
init { init {
symbol.bind(this) symbol.bind(this)
} }
@@ -5,8 +5,13 @@
package org.jetbrains.kotlin.ir.util package org.jetbrains.kotlin.ir.util
import org.jetbrains.kotlin.descriptors.ParameterDescriptor import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.ValueParameterDescriptor import org.jetbrains.kotlin.ir.declarations.IrClass
import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin
import org.jetbrains.kotlin.ir.declarations.impl.IrClassImpl
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyExternal
import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.KotlinType
val ParameterDescriptor.indexOrMinusOne: Int val ParameterDescriptor.indexOrMinusOne: Int
@@ -20,3 +25,18 @@ val ParameterDescriptor.isCrossinline: Boolean
val ParameterDescriptor.isNoinline: Boolean val ParameterDescriptor.isNoinline: Boolean
get() = this is ValueParameterDescriptor && isNoinline get() = this is ValueParameterDescriptor && isNoinline
fun createIrClassFromDescriptor(
startOffset: Int,
endOffset: Int,
origin: IrDeclarationOrigin,
symbol: IrClassSymbol,
descriptor: ClassDescriptor,
name: Name = descriptor.name,
visibility: Visibility = descriptor.visibility,
modality: Modality = descriptor.modality
): IrClass = IrClassImpl(
startOffset, endOffset, origin, symbol, name, descriptor.kind, visibility, modality,
descriptor.isCompanionObject, descriptor.isInner, descriptor.isData, descriptor.isEffectivelyExternal(),
descriptor.isInline, descriptor.isExpect, descriptor.isFun, descriptor.source
)