diff --git a/compiler/ir/backend.common/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt b/compiler/ir/backend.common/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt index de66e91e095..8751ec6f708 100644 --- a/compiler/ir/backend.common/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt +++ b/compiler/ir/backend.common/src/org/jetbrains/kotlin/ir/builders/declarations/declarationBuilders.kt @@ -122,7 +122,7 @@ inline fun IrProperty.addSetter(builder: IrFunctionBuilder.() -> Unit = {}): IrS } } -fun IrFunctionBuilder.buildFun(originalDescriptor: FunctionDescriptor? = null): IrFunctionImpl { +fun IrFunctionBuilder.buildFun(originalDescriptor: FunctionDescriptor? = null): IrSimpleFunction { val wrappedDescriptor = when (originalDescriptor) { is DescriptorWithContainerSource -> WrappedFunctionDescriptorWithContainerSource(originalDescriptor.containerSource) is PropertyGetterDescriptor -> WrappedPropertyGetterDescriptor(originalDescriptor.annotations, originalDescriptor.source) @@ -141,7 +141,7 @@ fun IrFunctionBuilder.buildFun(originalDescriptor: FunctionDescriptor? = null): } } -fun IrFunctionBuilder.buildConstructor(): IrConstructorImpl { +fun IrFunctionBuilder.buildConstructor(): IrConstructor { val wrappedDescriptor = WrappedClassConstructorDescriptor() return IrConstructorImpl( startOffset, endOffset, origin, @@ -159,19 +159,21 @@ fun IrFunctionBuilder.buildConstructor(): IrConstructorImpl { * potentially external function (e.g. in an IrCall) we have to ensure that we keep * information from the original descriptor so as not to break inlining. */ -inline fun buildFunWithDescriptorForInlining(originalDescriptor: FunctionDescriptor, builder: IrFunctionBuilder.() -> Unit): IrFunctionImpl = +inline fun buildFunWithDescriptorForInlining( + originalDescriptor: FunctionDescriptor, builder: IrFunctionBuilder.() -> Unit +): IrSimpleFunction = IrFunctionBuilder().run { builder() buildFun(originalDescriptor) } -inline fun buildFun(builder: IrFunctionBuilder.() -> Unit): IrFunctionImpl = +inline fun buildFun(builder: IrFunctionBuilder.() -> Unit): IrSimpleFunction = IrFunctionBuilder().run { builder() buildFun() } -inline fun IrDeclarationContainer.addFunction(builder: IrFunctionBuilder.() -> Unit): IrFunctionImpl = +inline fun IrDeclarationContainer.addFunction(builder: IrFunctionBuilder.() -> Unit): IrSimpleFunction = buildFun(builder).also { function -> declarations.add(function) function.parent = this@addFunction @@ -201,13 +203,13 @@ fun IrDeclarationContainer.addFunction( } } -inline fun buildConstructor(builder: IrFunctionBuilder.() -> Unit): IrConstructorImpl = +inline fun buildConstructor(builder: IrFunctionBuilder.() -> Unit): IrConstructor = IrFunctionBuilder().run { builder() buildConstructor() } -inline fun IrClass.addConstructor(builder: IrFunctionBuilder.() -> Unit = {}): IrConstructorImpl = +inline fun IrClass.addConstructor(builder: IrFunctionBuilder.() -> Unit = {}): IrConstructor = buildConstructor { builder() returnType = defaultType diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/CreateScriptFunctionsPhase.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/CreateScriptFunctionsPhase.kt index ada990a9673..8ebe0c3233c 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/CreateScriptFunctionsPhase.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/CreateScriptFunctionsPhase.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.ir.backend.js.lower import org.jetbrains.kotlin.backend.common.CommonBackendContext import org.jetbrains.kotlin.backend.common.FileLoweringPass -import org.jetbrains.kotlin.backend.common.phaser.makeIrModulePhase import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.ir.IrStatement @@ -89,7 +88,7 @@ class CreateScriptFunctionsPhase(val context: CommonBackendContext) : FileLoweri return (irScript.statements.lastOrNull() as? IrExpression)?.type ?: context.irBuiltIns.unitType } - private fun createFunction(irScript: IrScript, name: String, returnType: IrType): IrFunctionImpl { + private fun createFunction(irScript: IrScript, name: String, returnType: IrType): IrSimpleFunction { val (startOffset, endOffset) = getFunctionBodyOffsets(irScript) val descriptor = WrappedSimpleFunctionDescriptor() diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt index 928cd39a775..3172b37ed77 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/JvmBackendContext.kt @@ -31,7 +31,6 @@ import org.jetbrains.kotlin.ir.builders.IrBuilderWithScope import org.jetbrains.kotlin.ir.builders.irBlock import org.jetbrains.kotlin.ir.builders.irNull import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrFunctionReference @@ -101,7 +100,7 @@ class JvmBackendContext( internal val multifileFacadeClassForPart = mutableMapOf() internal val multifileFacadeMemberToPartMember = mutableMapOf() - internal val hiddenConstructors = mutableMapOf() + internal val hiddenConstructors = mutableMapOf() internal val collectionStubComputer = CollectionStubComputer(this) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt index 1cb90bfb8a3..e479b5249e4 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/EnumClassLowering.kt @@ -24,7 +24,6 @@ import org.jetbrains.kotlin.ir.builders.declarations.addField import org.jetbrains.kotlin.ir.builders.declarations.addValueParameter import org.jetbrains.kotlin.ir.builders.declarations.buildConstructor import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.IrExpressionBodyImpl import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl @@ -53,7 +52,7 @@ private class EnumClassLowering(val context: JvmBackendContext) : ClassLoweringP } private inner class EnumClassTransformer(val irClass: IrClass) { - private val loweredEnumConstructors = hashMapOf() + private val loweredEnumConstructors = hashMapOf() private val loweredEnumConstructorParameters = hashMapOf() private val enumEntryOrdinals = TObjectIntHashMap() private val declarationToEnumEntry = mutableMapOf() diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmPropertiesLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmPropertiesLowering.kt index 0477a0f7097..e81f4e695c4 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmPropertiesLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/JvmPropertiesLowering.kt @@ -15,13 +15,11 @@ import org.jetbrains.kotlin.backend.jvm.ir.needsAccessor import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.descriptors.Modality -import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.builders.* import org.jetbrains.kotlin.ir.builders.declarations.buildFun import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl import org.jetbrains.kotlin.ir.expressions.IrCall import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrFieldAccessExpression @@ -29,7 +27,10 @@ import org.jetbrains.kotlin.ir.expressions.impl.IrBlockBodyImpl import org.jetbrains.kotlin.ir.types.classifierOrFail import org.jetbrains.kotlin.ir.types.makeNotNull import org.jetbrains.kotlin.ir.types.typeWith -import org.jetbrains.kotlin.ir.util.* +import org.jetbrains.kotlin.ir.util.coerceToUnit +import org.jetbrains.kotlin.ir.util.render +import org.jetbrains.kotlin.ir.util.resolveFakeOverride +import org.jetbrains.kotlin.ir.util.transformDeclarationsFlat import org.jetbrains.kotlin.ir.visitors.transformChildrenVoid import org.jetbrains.kotlin.load.java.JvmAbi import org.jetbrains.kotlin.name.Name @@ -119,7 +120,7 @@ class JvmPropertiesLowering(private val backendContext: JvmBackendContext) : IrE private fun shouldSubstituteAccessorWithField(property: IrProperty, accessor: IrSimpleFunction?): Boolean = accessor != null && !property.needsAccessor(accessor) - private fun createSyntheticMethodForAnnotations(declaration: IrProperty): IrFunctionImpl = + private fun createSyntheticMethodForAnnotations(declaration: IrProperty): IrSimpleFunction = buildFun { origin = JvmLoweredDeclarationOrigin.SYNTHETIC_METHOD_FOR_PROPERTY_ANNOTATIONS name = Name.identifier(computeSyntheticMethodName(declaration)) diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt index c4b8f2fdc9d..2bfe33ea9c8 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/SyntheticAccessorLowering.kt @@ -26,7 +26,6 @@ import org.jetbrains.kotlin.ir.builders.declarations.addValueParameter import org.jetbrains.kotlin.ir.builders.declarations.buildConstructor import org.jetbrains.kotlin.ir.builders.declarations.buildFun import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrConstructorImpl import org.jetbrains.kotlin.ir.expressions.* import org.jetbrains.kotlin.ir.expressions.impl.* import org.jetbrains.kotlin.ir.symbols.* @@ -219,7 +218,7 @@ internal class SyntheticAccessorLowering(val context: JvmBackendContext) : IrEle origin != JvmLoweredDeclarationOrigin.SYNTHETIC_ACCESSOR && origin != JvmLoweredDeclarationOrigin.SYNTHETIC_ACCESSOR_FOR_HIDDEN_CONSTRUCTOR) - private fun handleHiddenConstructor(declaration: IrConstructor): IrConstructorImpl { + private fun handleHiddenConstructor(declaration: IrConstructor): IrConstructor { require(declaration.isOrShouldBeHidden, declaration::render) return context.hiddenConstructors.getOrPut(declaration) { declaration.makeConstructorAccessor(JvmLoweredDeclarationOrigin.SYNTHETIC_ACCESSOR_FOR_HIDDEN_CONSTRUCTOR).also { accessor -> @@ -254,7 +253,7 @@ internal class SyntheticAccessorLowering(val context: JvmBackendContext) : IrEle private fun IrConstructor.makeConstructorAccessor( originForConstructorAccessor: IrDeclarationOrigin = JvmLoweredDeclarationOrigin.SYNTHETIC_ACCESSOR - ): IrConstructorImpl { + ): IrConstructor { val source = this return buildConstructor { diff --git a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/inlineclasses/MemoizedInlineClassReplacements.kt b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/inlineclasses/MemoizedInlineClassReplacements.kt index fb35c06dde5..09eadf67d48 100644 --- a/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/inlineclasses/MemoizedInlineClassReplacements.kt +++ b/compiler/ir/backend.jvm/src/org/jetbrains/kotlin/backend/jvm/lower/inlineclasses/MemoizedInlineClassReplacements.kt @@ -19,7 +19,6 @@ import org.jetbrains.kotlin.ir.builders.declarations.buildFun import org.jetbrains.kotlin.ir.builders.declarations.buildFunWithDescriptorForInlining import org.jetbrains.kotlin.ir.builders.declarations.buildProperty import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl @@ -184,7 +183,7 @@ class MemoizedInlineClassReplacements(private val mangleReturnTypes: Boolean) { function: IrFunction, replacementOrigin: IrDeclarationOrigin, noFakeOverride: Boolean = false, - body: IrFunctionImpl.() -> Unit + body: IrFunction.() -> Unit ) = buildFunWithDescriptorForInlining(function.descriptor) { updateFrom(function) if (function is IrConstructor) { diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt index 3dc8134d893..babb4fe6c2c 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/IrInterpreter.kt @@ -5,6 +5,13 @@ package org.jetbrains.kotlin.ir.interpreter +import org.jetbrains.kotlin.ir.IrElement +import org.jetbrains.kotlin.ir.IrStatement +import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns +import org.jetbrains.kotlin.ir.expressions.* +import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl +import org.jetbrains.kotlin.ir.expressions.impl.IrErrorExpressionImpl import org.jetbrains.kotlin.ir.interpreter.builtins.* import org.jetbrains.kotlin.ir.interpreter.exceptions.InterpreterException import org.jetbrains.kotlin.ir.interpreter.exceptions.InterpreterMethodNotFoundException @@ -13,15 +20,6 @@ import org.jetbrains.kotlin.ir.interpreter.intrinsics.IntrinsicEvaluator import org.jetbrains.kotlin.ir.interpreter.stack.StackImpl import org.jetbrains.kotlin.ir.interpreter.stack.Variable import org.jetbrains.kotlin.ir.interpreter.state.* -import org.jetbrains.kotlin.ir.IrElement -import org.jetbrains.kotlin.ir.IrStatement -import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl -import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyFunction -import org.jetbrains.kotlin.ir.descriptors.IrBuiltIns -import org.jetbrains.kotlin.ir.expressions.* -import org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl -import org.jetbrains.kotlin.ir.expressions.impl.IrErrorExpressionImpl import org.jetbrains.kotlin.ir.symbols.IrSymbol import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.types.impl.originalKotlinType @@ -100,8 +98,7 @@ class IrInterpreter(private val irBuiltIns: IrBuiltIns, private val bodyMap: Map try { incrementAndCheckCommands() val executionResult = when (this) { - is IrFunctionImpl -> interpretFunction(this) - is IrLazyFunction -> interpretFunction(this as IrSimpleFunction) + is IrSimpleFunction -> interpretFunction(this) is IrCall -> interpretCall(this) is IrConstructorCall -> interpretConstructorCall(this) is IrEnumConstructorCall -> interpretEnumConstructorCall(this) diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Label.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Label.kt index 51e4d56b373..7db56fac001 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Label.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/Label.kt @@ -9,6 +9,7 @@ import org.jetbrains.kotlin.ir.interpreter.stack.Stack import org.jetbrains.kotlin.ir.interpreter.state.Primitive import org.jetbrains.kotlin.ir.interpreter.state.isSubtypeOf import org.jetbrains.kotlin.ir.IrElement +import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyFunction import org.jetbrains.kotlin.ir.expressions.IrCall @@ -30,7 +31,7 @@ open class ExecutionResult(val returnLabel: ReturnLabel, private val owner: IrEl fun getNextLabel(irElement: IrElement, interpret: IrElement.() -> ExecutionResult): ExecutionResult { return when (returnLabel) { ReturnLabel.RETURN -> when (irElement) { - is IrCall, is IrReturnableBlock, is IrFunctionImpl, is IrLazyFunction -> if (owner == irElement) Next else this + is IrCall, is IrReturnableBlock, is IrSimpleFunction -> if (owner == irElement) Next else this else -> this } ReturnLabel.BREAK_WHEN -> when (irElement) { diff --git a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt index 6c0d42ba554..4af15568285 100644 --- a/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt +++ b/compiler/ir/ir.interpreter/src/org/jetbrains/kotlin/ir/interpreter/state/Wrapper.kt @@ -5,18 +5,18 @@ package org.jetbrains.kotlin.ir.interpreter.state -import org.jetbrains.kotlin.ir.interpreter.builtins.evaluateIntrinsicAnnotation -import org.jetbrains.kotlin.ir.interpreter.* -import org.jetbrains.kotlin.ir.interpreter.getEvaluateIntrinsicValue -import org.jetbrains.kotlin.ir.interpreter.getPrimitiveClass import org.jetbrains.kotlin.ir.declarations.IrClass import org.jetbrains.kotlin.ir.declarations.IrField import org.jetbrains.kotlin.ir.declarations.IrFunction import org.jetbrains.kotlin.ir.declarations.IrSimpleFunction -import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl +import org.jetbrains.kotlin.ir.interpreter.* +import org.jetbrains.kotlin.ir.interpreter.builtins.evaluateIntrinsicAnnotation import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.types.* -import org.jetbrains.kotlin.ir.util.* +import org.jetbrains.kotlin.ir.util.defaultType +import org.jetbrains.kotlin.ir.util.fqNameForIrSerialization +import org.jetbrains.kotlin.ir.util.fqNameWhenAvailable +import org.jetbrains.kotlin.ir.util.parentAsClass import java.lang.invoke.MethodHandle import java.lang.invoke.MethodHandles import java.lang.invoke.MethodType @@ -144,7 +144,7 @@ internal class Wrapper(val value: Any, override val irClass: IrClass) : Complex( private fun IrFunction.getOriginalOverriddenSymbols(): MutableList { val overriddenSymbols = mutableListOf() - if (this is IrFunctionImpl) { + if (this is IrSimpleFunction) { val pool = this.overriddenSymbols.toMutableList() val iterator = pool.listIterator() for (symbol in iterator) { diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrExternalPackageFragmentImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrExternalPackageFragmentImpl.kt index 6ac5b08ce31..cc3f9749bf9 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrExternalPackageFragmentImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrExternalPackageFragmentImpl.kt @@ -19,8 +19,8 @@ package org.jetbrains.kotlin.ir.declarations.impl import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor import org.jetbrains.kotlin.descriptors.impl.EmptyPackageFragmentDescriptor -import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.IrElementBase +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.declarations.IrDeclaration import org.jetbrains.kotlin.ir.declarations.IrExternalPackageFragment @@ -29,6 +29,7 @@ import org.jetbrains.kotlin.ir.symbols.impl.IrExternalPackageFragmentSymbolImpl import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberDescriptor class IrExternalPackageFragmentImpl( @@ -42,12 +43,14 @@ class IrExternalPackageFragmentImpl( } @ObsoleteDescriptorBasedAPI - override val packageFragmentDescriptor: PackageFragmentDescriptor get() = symbol.descriptor + override val packageFragmentDescriptor: PackageFragmentDescriptor + get() = symbol.descriptor override val declarations: MutableList = ArrayList() @OptIn(ObsoleteDescriptorBasedAPI::class) - override val containerSource get() = (symbol.descriptor as? DeserializedMemberDescriptor)?.containerSource + override val containerSource: DeserializedContainerSource? + get() = (symbol.descriptor as? DeserializedMemberDescriptor)?.containerSource override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitExternalPackageFragment(this, data) @@ -63,12 +66,9 @@ class IrExternalPackageFragmentImpl( } companion object { - fun createEmptyExternalPackageFragment( - module: ModuleDescriptor, - fqName: FqName - ): IrExternalPackageFragmentImpl = + fun createEmptyExternalPackageFragment(module: ModuleDescriptor, fqName: FqName): IrExternalPackageFragment = IrExternalPackageFragmentImpl( IrExternalPackageFragmentSymbolImpl(EmptyPackageFragmentDescriptor(module, fqName)), fqName ) } -} \ 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 88163b492f4..8a884274d8f 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 @@ -6,9 +6,9 @@ package org.jetbrains.kotlin.ir.util import org.jetbrains.kotlin.descriptors.ScriptDescriptor -import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.IrElement import org.jetbrains.kotlin.ir.IrStatement +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.* import org.jetbrains.kotlin.ir.expressions.* @@ -307,7 +307,7 @@ open class DeepCopyIrTreeWithSymbols( declaration.superTypes.mapTo(superTypes) { it.remapType() } } - private fun copyTypeParameter(declaration: IrTypeParameter) = + private fun copyTypeParameter(declaration: IrTypeParameter): IrTypeParameter = IrTypeParameterImpl( declaration.startOffset, declaration.endOffset, mapDeclarationOrigin(declaration.origin), diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt index bf1830971b9..829765b45de 100644 --- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt +++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/IrFileDeserializer.kt @@ -997,7 +997,7 @@ abstract class IrFileDeserializer( return result } - private fun deserializeIrValueParameter(proto: ProtoValueParameter, index: Int) = + private fun deserializeIrValueParameter(proto: ProtoValueParameter, index: Int): IrValueParameter = withDeserializedIrDeclarationBase(proto.base) { symbol, _, startOffset, endOffset, origin, fcode -> val flags = ValueParameterFlags.decode(fcode) val nameAndType = BinaryNameAndType.decode(proto.nameType) @@ -1019,7 +1019,7 @@ abstract class IrFileDeserializer( } } - private fun deserializeIrClass(proto: ProtoClass) = + private fun deserializeIrClass(proto: ProtoClass): IrClass = withDeserializedIrDeclarationBase(proto.base) { symbol, signature, startOffset, endOffset, origin, fcode -> val flags = ClassFlags.decode(fcode) @@ -1054,7 +1054,7 @@ abstract class IrFileDeserializer( } } - private fun deserializeIrTypeAlias(proto: ProtoTypeAlias) = + private fun deserializeIrTypeAlias(proto: ProtoTypeAlias): IrTypeAlias = withDeserializedIrDeclarationBase(proto.base) { symbol, uniqId, startOffset, endOffset, origin, fcode -> symbolTable.declareTypeAliasFromLinker((symbol as IrTypeAliasSymbol).descriptor, uniqId) { val flags = TypeAliasFlags.decode(fcode) @@ -1113,7 +1113,7 @@ abstract class IrFileDeserializer( private inline fun withDeserializedIrFunctionBase( proto: ProtoFunctionBase, block: (IrFunctionSymbol, IdSignature, Int, Int, IrDeclarationOrigin, Long) -> T - ) = withDeserializedIrDeclarationBase(proto.base) { symbol, idSig, startOffset, endOffset, origin, fcode -> + ): T = withDeserializedIrDeclarationBase(proto.base) { symbol, idSig, startOffset, endOffset, origin, fcode -> symbolTable.withScope(symbol.descriptor) { block(symbol as IrFunctionSymbol, idSig, startOffset, endOffset, origin, fcode).usingParent { withInlineGuard { @@ -1163,7 +1163,7 @@ abstract class IrFileDeserializer( } } - private fun deserializeIrVariable(proto: ProtoVariable) = + private fun deserializeIrVariable(proto: ProtoVariable): IrVariable = withDeserializedIrDeclarationBase(proto.base) { symbol, _, startOffset, endOffset, origin, fcode -> val flags = LocalVariableFlags.decode(fcode) val nameType = BinaryNameAndType.decode(proto.nameType) @@ -1197,7 +1197,7 @@ abstract class IrFileDeserializer( } } - private fun deserializeIrAnonymousInit(proto: ProtoAnonymousInit) = + private fun deserializeIrAnonymousInit(proto: ProtoAnonymousInit): IrAnonymousInitializer = withDeserializedIrDeclarationBase(proto.base) { symbol, _, startOffset, endOffset, origin, _ -> IrAnonymousInitializerImpl(startOffset, endOffset, origin, symbol as IrAnonymousInitializerSymbol).apply { // body = deserializeBlockBody(proto.body.blockBody, startOffset, endOffset) @@ -1207,7 +1207,7 @@ abstract class IrFileDeserializer( } } - private fun deserializeIrConstructor(proto: ProtoConstructor) = + private fun deserializeIrConstructor(proto: ProtoConstructor): IrConstructor = withDeserializedIrFunctionBase(proto.base) { symbol, idSig, startOffset, endOffset, origin, fcode -> val flags = FunctionFlags.decode(fcode) val nameType = BinaryNameAndType.decode(proto.base.nameType) @@ -1228,7 +1228,7 @@ abstract class IrFileDeserializer( } } - private fun deserializeIrField(proto: ProtoField) = + private fun deserializeIrField(proto: ProtoField): IrField = withDeserializedIrDeclarationBase(proto.base) { symbol, uniqId, startOffset, endOffset, origin, fcode -> val nameType = BinaryNameAndType.decode(proto.nameType) val type = deserializeIrType(nameType.typeIndex) @@ -1252,7 +1252,7 @@ abstract class IrFileDeserializer( } } - private fun deserializeIrLocalDelegatedProperty(proto: ProtoLocalDelegatedProperty) = + private fun deserializeIrLocalDelegatedProperty(proto: ProtoLocalDelegatedProperty): IrLocalDelegatedProperty = withDeserializedIrDeclarationBase(proto.base) { symbol, _, startOffset, endOffset, origin, fcode -> val flags = LocalVariableFlags.decode(fcode) val nameAndType = BinaryNameAndType.decode(proto.nameType) @@ -1272,7 +1272,7 @@ abstract class IrFileDeserializer( } } - private fun deserializeIrProperty(proto: ProtoProperty) = + private fun deserializeIrProperty(proto: ProtoProperty): IrProperty = withDeserializedIrDeclarationBase(proto.base) { symbol, uniqId, startOffset, endOffset, origin, fcode -> val flags = PropertyFlags.decode(fcode) symbolTable.declarePropertyFromLinker((symbol as IrPropertySymbol).descriptor, uniqId) { @@ -1391,8 +1391,8 @@ abstract class IrFileDeserializer( } } - fun deserializeDeclaration(proto: ProtoDeclaration, parent: IrDeclarationParent) = + fun deserializeDeclaration(proto: ProtoDeclaration, parent: IrDeclarationParent): IrDeclaration = usingParent(parent) { deserializeDeclaration(proto) } -} \ No newline at end of file +} 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 40030993373..01920f2214e 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,14 +18,13 @@ import org.jetbrains.kotlin.backend.common.ir.createImplicitParameterDeclaration import org.jetbrains.kotlin.backend.common.lower.DeclarationIrBuilder import org.jetbrains.kotlin.backend.common.lower.irBlock import org.jetbrains.kotlin.descriptors.* -import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.IrStatement +import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET import org.jetbrains.kotlin.ir.builders.* import org.jetbrains.kotlin.ir.builders.declarations.* import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.declarations.impl.IrExternalPackageFragmentImpl -import org.jetbrains.kotlin.ir.declarations.impl.IrFunctionImpl import org.jetbrains.kotlin.ir.expressions.IrCall import org.jetbrains.kotlin.ir.expressions.IrExpression import org.jetbrains.kotlin.ir.expressions.IrTypeOperator @@ -75,7 +74,7 @@ private class AndroidIrTransformer(val extension: AndroidIrExtension, val plugin } } - private fun createMethod(fqName: FqName, type: IrType, inInterface: Boolean = false, f: IrFunctionImpl.() -> Unit = {}) = + private fun createMethod(fqName: FqName, type: IrType, inInterface: Boolean = false, f: IrFunction.() -> Unit = {}) = cachedMethods.getOrPut(fqName) { val parent = createClass(fqName.parent(), inInterface) parent.addFunction { diff --git a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/GeneratorHelpers.kt b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/GeneratorHelpers.kt index e49c1e1e130..e1063d819d1 100644 --- a/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/GeneratorHelpers.kt +++ b/plugins/kotlin-serialization/kotlin-serialization-compiler/src/org/jetbrains/kotlinx/serialization/compiler/backend/ir/GeneratorHelpers.kt @@ -381,7 +381,7 @@ interface IrBuilderExtension { copyTypeParameters: Boolean = true ) { val function = this - fun irValueParameter(descriptor: ParameterDescriptor): IrValueParameterImpl = with(descriptor) { + fun irValueParameter(descriptor: ParameterDescriptor): IrValueParameter = with(descriptor) { IrValueParameterImpl( function.startOffset, function.endOffset, SERIALIZABLE_PLUGIN_ORIGIN, IrValueParameterSymbolImpl(this), name, indexOrMinusOne, type.toIrType(), varargElementType?.toIrType(), isCrossinline, isNoinline