From 1ebf7faedcd04e9a3295f952bde1f6e86661037f Mon Sep 17 00:00:00 2001 From: Vasily Levchenko Date: Thu, 4 Apr 2019 16:09:34 +0300 Subject: [PATCH] [IR][refactoring] g/c IrReturnableBlock[Impl] - drop calculatable from 'inlineFunctionSymbol' fields: 'sourceFileSymbol' and 'sourceFileName' and replace then with extension values - drop unused constructors. --- .../js/lower/inline/FunctionInlining.kt | 2 +- .../kotlin/ir/expressions/IrBlock.kt | 14 ++++++++-- .../kotlin/ir/expressions/impl/IrBlockImpl.kt | 28 +------------------ .../ir/util/DeepCopyIrTreeWithSymbols.kt | 2 +- 4 files changed, 14 insertions(+), 32 deletions(-) diff --git a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/FunctionInlining.kt b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/FunctionInlining.kt index 33e1422f192..0160302b22a 100644 --- a/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/FunctionInlining.kt +++ b/compiler/ir/backend.js/src/org/jetbrains/kotlin/ir/backend/js/lower/inline/FunctionInlining.kt @@ -194,7 +194,7 @@ internal class FunctionInlining(val context: Context): IrElementTransformerVoidW symbol = irReturnableBlockSymbol, origin = if (isCoroutineIntrinsicCall) CoroutineIntrinsicLambdaOrigin else null, statements = statements, - sourceFileSymbol = sourceFile.symbol + inlineFunctionSymbol = callee.symbol ).apply { transformChildrenVoid(object : IrElementTransformerVoid() { override fun visitReturn(expression: IrReturn): IrExpression { diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBlock.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBlock.kt index c6c34dff971..a2640e6fc40 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBlock.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/IrBlock.kt @@ -18,9 +18,11 @@ package org.jetbrains.kotlin.ir.expressions import org.jetbrains.kotlin.ir.declarations.IrReturnTarget import org.jetbrains.kotlin.ir.declarations.IrSymbolOwner +import org.jetbrains.kotlin.ir.declarations.name import org.jetbrains.kotlin.ir.symbols.IrFileSymbol import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrReturnableBlockSymbol +import org.jetbrains.kotlin.ir.util.file interface IrContainerExpression : IrExpression, IrStatementContainer { val origin: IrStatementOrigin? @@ -39,7 +41,13 @@ interface IrComposite : IrContainerExpression { interface IrReturnableBlock : IrBlock, IrSymbolOwner, IrReturnTarget { override val symbol: IrReturnableBlockSymbol - val sourceFileSymbol: IrFileSymbol? - val sourceFileName: String val inlineFunctionSymbol: IrFunctionSymbol? -} \ No newline at end of file +} + +val IrReturnableBlock.sourceFileSymbol: IrFileSymbol? + get() = inlineFunctionSymbol?.owner?.file?.symbol + +@Deprecated("Please avoid using it") +val IrReturnableBlock.sourceFileName: String + get() = sourceFileSymbol?.owner?.name ?: "no source file" + diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockImpl.kt index bb23309dfb3..b11f476b901 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/expressions/impl/IrBlockImpl.kt @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.IrStatement import org.jetbrains.kotlin.ir.expressions.IrBlock import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin -import org.jetbrains.kotlin.ir.symbols.IrFileSymbol import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrReturnableBlockSymbol import org.jetbrains.kotlin.ir.symbols.impl.IrReturnableBlockSymbolImpl @@ -71,7 +70,6 @@ class IrReturnableBlockImpl( type: IrType, override val symbol: IrReturnableBlockSymbol, origin: IrStatementOrigin? = null, - override val sourceFileSymbol: IrFileSymbol? = null, override val inlineFunctionSymbol: IrFunctionSymbol? = null ) : IrContainerExpressionBase(startOffset, endOffset, type, origin), @@ -86,30 +84,8 @@ class IrReturnableBlockImpl( symbol: IrReturnableBlockSymbol, origin: IrStatementOrigin?, statements: List, - sourceFileSymbol: IrFileSymbol? = null, inlineFunctionSymbol: IrFunctionSymbol? = null - ) : this(startOffset, endOffset, type, symbol, origin, sourceFileSymbol, inlineFunctionSymbol) { - this.statements.addAll(statements) - } - - constructor( - startOffset: Int, - endOffset: Int, - type: IrType, - descriptor: FunctionDescriptor, - origin: IrStatementOrigin? = null, - sourceFileSymbol: IrFileSymbol? = null - ) : this(startOffset, endOffset, type, IrReturnableBlockSymbolImpl(descriptor), origin, sourceFileSymbol) - - constructor( - startOffset: Int, - endOffset: Int, - type: IrType, - descriptor: FunctionDescriptor, - origin: IrStatementOrigin?, - statements: List, - sourceFileSymbol: IrFileSymbol? = null - ) : this(startOffset, endOffset, type, descriptor, origin, sourceFileSymbol) { + ) : this(startOffset, endOffset, type, symbol, origin, inlineFunctionSymbol) { this.statements.addAll(statements) } @@ -117,8 +93,6 @@ class IrReturnableBlockImpl( symbol.bind(this) } - override val sourceFileName: String = sourceFileSymbol?.owner?.fileEntry?.name ?: "no source file" - override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitBlock(this, data) 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 941090134fa..56ca8b93b5f 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 @@ -374,7 +374,7 @@ open class DeepCopyIrTreeWithSymbols( symbolRemapper.getReferencedReturnableBlock(expression.symbol), mapStatementOrigin(expression.origin), expression.statements.map { it.transform() }, - expression.sourceFileSymbol + expression.inlineFunctionSymbol ) else IrBlockImpl(