From 6f8e2b4718352d7d0a1268ed87d3a7a4cd6802ca Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 26 Jun 2023 11:54:39 +0300 Subject: [PATCH] FIR2IR: Drop a set of redundant or unclear TODOs --- .../jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt | 1 - .../jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt | 3 --- .../src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt | 3 +-- .../kotlin/fir/backend/generators/AdapterGenerator.kt | 3 --- .../kotlin/fir/backend/generators/CallAndReferenceGenerator.kt | 1 - .../kotlin/fir/signaturer/FirBasedSignatureComposer.kt | 2 +- 6 files changed, 2 insertions(+), 11 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index c21517af62c..17dfdb1286c 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -1615,7 +1615,6 @@ class Fir2IrDeclarationStorage( val parentOrigin = (irParent as? IrDeclaration)?.origin ?: IrDeclarationOrigin.DEFINED val declarationOrigin = computeDeclarationOrigin(firSymbol, parentOrigin) - // TODO: package fragment members (?) when (val parent = irParent) { is Fir2IrLazyClass -> { assert(parentOrigin != IrDeclarationOrigin.DEFINED) { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt index 98505ce974d..e0ad0028517 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt @@ -137,7 +137,6 @@ class Fir2IrImplicitCastInserter( override fun visitWhenSubjectExpression(whenSubjectExpression: FirWhenSubjectExpression, data: IrElement): IrElement = data - // TODO: cast `condition` expression to boolean? override fun visitWhenBranch(whenBranch: FirWhenBranch, data: IrElement): IrBranch { val irBranch = data as IrBranch (irBranch.result as? IrContainerExpression)?.let { @@ -151,7 +150,6 @@ class Fir2IrImplicitCastInserter( // ================================================================================== - // TODO: cast `condition` expression to boolean? override fun visitDoWhileLoop(doWhileLoop: FirDoWhileLoop, data: IrElement): IrElement { val loop = data as IrDoWhileLoop (loop.body as? IrContainerExpression)?.let { @@ -160,7 +158,6 @@ class Fir2IrImplicitCastInserter( return data } - // TODO: cast `condition` expression to boolean? override fun visitWhileLoop(whileLoop: FirWhileLoop, data: IrElement): IrElement { val loop = data as IrWhileLoop (loop.body as? IrContainerExpression)?.let { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index fff06b2c433..7300bc39391 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -466,7 +466,7 @@ class Fir2IrVisitor( } override fun visitWrappedArgumentExpression(wrappedArgumentExpression: FirWrappedArgumentExpression, data: Any?): IrElement { - // TODO: change this temporary hack to something correct + // Note: we deal with specific arguments in CallAndReferenceGenerator return convertToIrExpression(wrappedArgumentExpression.expression) } @@ -694,7 +694,6 @@ class Fir2IrVisitor( } } } - // TODO handle qualified "this" in instance methods of non-inner classes (inner class cases are handled by InnerClassesLowering) return visitQualifiedAccessExpression(thisReceiverExpression, data) } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt index 092d17f8756..bd525133d8a 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt @@ -165,7 +165,6 @@ internal class AdapterGenerator( if (boundReceiver == null) { IrFunctionExpressionImpl(startOffset, endOffset, type, irAdapterFunction, IrStatementOrigin.ADAPTED_FUNCTION_REFERENCE) } else { - // TODO add a bound receiver property to IrFunctionExpressionImpl? val irAdapterRef = IrFunctionReferenceImpl( startOffset, endOffset, type, irAdapterFunction.symbol, irAdapterFunction.typeParameters.size, irAdapterFunction.valueParameters.size, null, IrStatementOrigin.ADAPTED_FUNCTION_REFERENCE @@ -590,7 +589,6 @@ internal class AdapterGenerator( argument: FirExpression, parameterType: ConeKotlinType ): IrExpression { - // TODO: should refer to LanguageVersionSettings.SuspendConversion if (this is IrBlock && origin == IrStatementOrigin.ADAPTED_FUNCTION_REFERENCE) { return this } @@ -610,7 +608,6 @@ internal class AdapterGenerator( val suspendConvertedType = parameterType.toIrType() as IrSimpleType return argument.convertWithOffsets { startOffset, endOffset -> val irAdapterFunction = createAdapterFunctionForArgument(startOffset, endOffset, suspendConvertedType, type, invokeSymbol) - // TODO add a bound receiver property to IrFunctionExpressionImpl? val irAdapterRef = IrFunctionReferenceImpl( startOffset, endOffset, suspendConvertedType, irAdapterFunction.symbol, irAdapterFunction.typeParameters.size, irAdapterFunction.valueParameters.size, null, IrStatementOrigin.SUSPEND_CONVERSION diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt index 65d00710314..a2f2d934464 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt @@ -972,7 +972,6 @@ class CallAndReferenceGenerator( argument: FirExpression, parameter: FirValueParameter? ): IrExpression { - // TODO: Need to refer to language feature: AllowAssigningArrayElementsToVarargsInNamedFormForFunctions if (this !is IrVarargImpl || parameter?.isVararg != true || argument !is FirVarargArgumentsExpression || diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt index 782eb25734a..b58ad0b76f0 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt @@ -157,7 +157,7 @@ class FirBasedSignatureComposer(override val mangler: FirMangler) : Fir2IrSignat } is FirScript -> { IdSignature.CommonSignature( - packageFqName = declaration.name.asString(), // TODO: find package id + packageFqName = declaration.name.asString(), declarationFqName = declaration.name.asString(), id = builder.hashId, mask = builder.mask,