diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt index 7c7669a0666..80da6397cb2 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt @@ -440,10 +440,14 @@ class Fir2IrClassifierStorage( symbolFactory = { IrTypeParameterPublicSymbolImpl(signature) } ) { symbol -> irFactory.createTypeParameter( - startOffset, endOffset, origin, symbol, - name, if (index < 0) 0 else index, - isReified, - variance + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = name, + symbol = symbol, + variance = variance, + index = if (index < 0) 0 else index, + isReified = isReified, ) } } else { @@ -452,19 +456,27 @@ class Fir2IrClassifierStorage( symbolFactory = { IrTypeParameterPublicSymbolImpl(signature) } ) { symbol -> irFactory.createTypeParameter( - startOffset, endOffset, origin, symbol, - name, if (index < 0) 0 else index, - isReified, - variance + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = name, + symbol = symbol, + variance = variance, + index = if (index < 0) 0 else index, + isReified = isReified, ) } } } ?: irFactory.createTypeParameter( - startOffset, endOffset, origin, IrTypeParameterSymbolImpl(), - name, if (index < 0) 0 else index, - isReified, - variance + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = name, + symbol = IrTypeParameterSymbolImpl(), + variance = variance, + index = if (index < 0) 0 else index, + isReified = isReified, ) } } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt index ee921a5a5d1..e44c39c8a3d 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrBuiltInsOverFir.kt @@ -458,8 +458,14 @@ class IrBuiltInsOverFir( checkNotNullSymbol = run { val typeParameter: IrTypeParameter = irFactory.createTypeParameter( - UNDEFINED_OFFSET, UNDEFINED_OFFSET, BUILTIN_OPERATOR, IrTypeParameterSymbolImpl(), Name.identifier("T0"), 0, true, - Variance.INVARIANT + startOffset = UNDEFINED_OFFSET, + endOffset = UNDEFINED_OFFSET, + origin = BUILTIN_OPERATOR, + name = Name.identifier("T0"), + symbol = IrTypeParameterSymbolImpl(), + variance = Variance.INVARIANT, + index = 0, + isReified = true ).apply { superTypes = listOf(anyType) } diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/descriptors/IrDescriptorBasedFunctionFactory.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/descriptors/IrDescriptorBasedFunctionFactory.kt index 00fa62490cf..b9026602e79 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/descriptors/IrDescriptorBasedFunctionFactory.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/descriptors/IrDescriptorBasedFunctionFactory.kt @@ -219,7 +219,14 @@ class IrDescriptorBasedFunctionFactory( val pSymbol = descriptorFactory.typeParameterDescriptor(index) { irFactory.createTypeParameter( - offset, offset, classOrigin, it, pName, index++, false, Variance.IN_VARIANCE + startOffset = offset, + endOffset = offset, + origin = classOrigin, + name = pName, + symbol = it, + variance = Variance.IN_VARIANCE, + index = index++, + isReified = false ) } val pDeclaration = pSymbol.owner @@ -231,7 +238,14 @@ class IrDescriptorBasedFunctionFactory( val rSymbol = descriptorFactory.typeParameterDescriptor(index) { irFactory.createTypeParameter( - offset, offset, classOrigin, it, Name.identifier("R"), index, false, Variance.OUT_VARIANCE + startOffset = offset, + endOffset = offset, + origin = classOrigin, + name = Name.identifier("R"), + symbol = it, + variance = Variance.OUT_VARIANCE, + index = index, + isReified = false ) } val rDeclaration = rSymbol.owner diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt index 64cda3d246c..a6eda7f9145 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt @@ -321,9 +321,14 @@ fun IrFunction.addValueParameter(name: Name, type: IrType, origin: IrDeclaration internal fun IrFactory.buildTypeParameter(builder: IrTypeParameterBuilder, parent: IrDeclarationParent): IrTypeParameter = with(builder) { createTypeParameter( - startOffset, endOffset, origin, - IrTypeParameterSymbolImpl(), - name, index, isReified, variance + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = name, + symbol = IrTypeParameterSymbolImpl(), + variance = variance, + index = index, + isReified = isReified, ).also { it.superTypes = superTypes it.parent = parent diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt index ddcd5f5dca9..fee3297c094 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFactory.kt @@ -183,11 +183,11 @@ interface IrFactory { startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrTypeParameterSymbol, name: Name, + symbol: IrTypeParameterSymbol, + variance: Variance, index: Int, isReified: Boolean, - variance: Variance, ): IrTypeParameter fun createValueParameter( diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt index 63002e16550..aa07c685fb7 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImpl.kt @@ -224,11 +224,11 @@ abstract class AbstractIrFactoryImpl : IrFactory { startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrTypeParameterSymbol, name: Name, + symbol: IrTypeParameterSymbol, + variance: Variance, index: Int, isReified: Boolean, - variance: Variance, ): IrTypeParameter = IrTypeParameterImpl(startOffset, endOffset, origin, symbol, name, index, isReified, variance, factory = this) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt index 2ec6b6f4224..b7848083bab 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFactoryImplForJsIC.kt @@ -346,21 +346,21 @@ class IrFactoryImplForJsIC(override val stageController: StageController) : Abst startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrTypeParameterSymbol, name: Name, + symbol: IrTypeParameterSymbol, + variance: Variance, index: Int, - isReified: Boolean, - variance: Variance + isReified: Boolean ): IrTypeParameter { return super.createTypeParameter( startOffset, endOffset, origin, - symbol, name, + symbol, + variance, index, isReified, - variance, ).register() } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt index 88c2d556560..5997adda9c0 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/lazy/LazyIrFactory.kt @@ -185,13 +185,13 @@ class LazyIrFactory( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, - symbol: IrTypeParameterSymbol, name: Name, + symbol: IrTypeParameterSymbol, + variance: Variance, index: Int, - isReified: Boolean, - variance: Variance + isReified: Boolean ): IrTypeParameter = if (symbol.isBound) symbol.owner else - delegate.createTypeParameter(startOffset, endOffset, origin, symbol, name, index, isReified, variance) + delegate.createTypeParameter(startOffset, endOffset, origin, name, symbol, variance, index, isReified) } \ No newline at end of file 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 114099500ac..606d2bf47d4 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 @@ -342,13 +342,14 @@ open class DeepCopyIrTreeWithSymbols( private fun copyTypeParameter(declaration: IrTypeParameter): IrTypeParameter = declaration.factory.createTypeParameter( - declaration.startOffset, declaration.endOffset, - mapDeclarationOrigin(declaration.origin), - symbolRemapper.getDeclaredTypeParameter(declaration.symbol), - symbolRenamer.getTypeParameterName(declaration.symbol), - declaration.index, - declaration.isReified, - declaration.variance + startOffset = declaration.startOffset, + endOffset = declaration.endOffset, + origin = mapDeclarationOrigin(declaration.origin), + name = symbolRenamer.getTypeParameterName(declaration.symbol), + symbol = symbolRemapper.getDeclaredTypeParameter(declaration.symbol), + variance = declaration.variance, + index = declaration.index, + isReified = declaration.isReified, ).apply { transformAnnotations(declaration) } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt index 76438213f42..f64e515795f 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/SymbolTable.kt @@ -988,8 +988,14 @@ open class SymbolTable( descriptor: TypeParameterDescriptor, typeParameterFactory: (IrTypeParameterSymbol) -> IrTypeParameter = { irFactory.createTypeParameter( - startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(descriptor), - it.descriptor.index, it.descriptor.isReified, it.descriptor.variance + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = nameProvider.nameForDeclaration(descriptor), + symbol = it, + variance = it.descriptor.variance, + index = it.descriptor.index, + isReified = it.descriptor.isReified ) } ): IrTypeParameter = @@ -1015,8 +1021,14 @@ open class SymbolTable( descriptor: TypeParameterDescriptor, typeParameterFactory: (IrTypeParameterSymbol) -> IrTypeParameter = { irFactory.createTypeParameter( - startOffset, endOffset, origin, it, nameProvider.nameForDeclaration(descriptor), - it.descriptor.index, it.descriptor.isReified, it.descriptor.variance + startOffset = startOffset, + endOffset = endOffset, + origin = origin, + name = nameProvider.nameForDeclaration(descriptor), + symbol = it, + variance = it.descriptor.variance, + index = it.descriptor.index, + isReified = it.descriptor.isReified ) } ): IrTypeParameter = diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt index 12c8bc4eecb..59e4d253274 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrDeclarationDeserializer.kt @@ -283,14 +283,14 @@ class IrDeclarationDeserializer( val factory = { symbol: IrTypeParameterSymbol -> irFactory.createTypeParameter( - coordinates.startOffset, - coordinates.endOffset, - deserializeIrDeclarationOrigin(proto.base.originName), - symbol, - name, - index, - flags.isReified, - flags.variance + startOffset = coordinates.startOffset, + endOffset = coordinates.endOffset, + origin = deserializeIrDeclarationOrigin(proto.base.originName), + name = name, + symbol = symbol, + variance = flags.variance, + index = index, + isReified = flags.isReified ) } diff --git a/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/AndroidIrExtension.kt b/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/AndroidIrExtension.kt index 84d46ef4c8c..7c726892603 100644 --- a/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/AndroidIrExtension.kt +++ b/plugins/android-extensions/android-extensions-compiler/src/org/jetbrains/kotlin/android/synthetic/codegen/AndroidIrExtension.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext import org.jetbrains.kotlin.backend.common.ir.addDispatchReceiver import org.jetbrains.kotlin.backend.common.lower.ConstructorDelegationKind import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder -import org.jetbrains.kotlin.backend.common.lower.callsSuper import org.jetbrains.kotlin.backend.common.lower.delegationKind import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.ir.IrStatement @@ -346,8 +345,14 @@ private val IrClassifierSymbol.isFragment: Boolean private fun TranslationPluginContext.declareTypeParameterStub(typeParameterDescriptor: TypeParameterDescriptor): IrTypeParameter { val symbol = IrTypeParameterSymbolImpl(typeParameterDescriptor) return irFactory.createTypeParameter( - UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.DEFINED, symbol, typeParameterDescriptor.name, - typeParameterDescriptor.index, typeParameterDescriptor.isReified, typeParameterDescriptor.variance + startOffset = UNDEFINED_OFFSET, + endOffset = UNDEFINED_OFFSET, + origin = IrDeclarationOrigin.DEFINED, + name = typeParameterDescriptor.name, + symbol = symbol, + variance = typeParameterDescriptor.variance, + index = typeParameterDescriptor.index, + isReified = typeParameterDescriptor.isReified, ) }