[IR][refactoring] g/c IrReturnableBlock[Impl]
- drop calculatable from 'inlineFunctionSymbol' fields: 'sourceFileSymbol' and 'sourceFileName' and replace then with extension values - drop unused constructors.
This commit is contained in:
+1
-1
@@ -194,7 +194,7 @@ internal class FunctionInlining(val context: Context): IrElementTransformerVoidW
|
|||||||
symbol = irReturnableBlockSymbol,
|
symbol = irReturnableBlockSymbol,
|
||||||
origin = if (isCoroutineIntrinsicCall) CoroutineIntrinsicLambdaOrigin else null,
|
origin = if (isCoroutineIntrinsicCall) CoroutineIntrinsicLambdaOrigin else null,
|
||||||
statements = statements,
|
statements = statements,
|
||||||
sourceFileSymbol = sourceFile.symbol
|
inlineFunctionSymbol = callee.symbol
|
||||||
).apply {
|
).apply {
|
||||||
transformChildrenVoid(object : IrElementTransformerVoid() {
|
transformChildrenVoid(object : IrElementTransformerVoid() {
|
||||||
override fun visitReturn(expression: IrReturn): IrExpression {
|
override fun visitReturn(expression: IrReturn): IrExpression {
|
||||||
|
|||||||
@@ -18,9 +18,11 @@ package org.jetbrains.kotlin.ir.expressions
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrReturnTarget
|
import org.jetbrains.kotlin.ir.declarations.IrReturnTarget
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrSymbolOwner
|
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.IrFileSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrReturnableBlockSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrReturnableBlockSymbol
|
||||||
|
import org.jetbrains.kotlin.ir.util.file
|
||||||
|
|
||||||
interface IrContainerExpression : IrExpression, IrStatementContainer {
|
interface IrContainerExpression : IrExpression, IrStatementContainer {
|
||||||
val origin: IrStatementOrigin?
|
val origin: IrStatementOrigin?
|
||||||
@@ -39,7 +41,13 @@ interface IrComposite : IrContainerExpression {
|
|||||||
|
|
||||||
interface IrReturnableBlock : IrBlock, IrSymbolOwner, IrReturnTarget {
|
interface IrReturnableBlock : IrBlock, IrSymbolOwner, IrReturnTarget {
|
||||||
override val symbol: IrReturnableBlockSymbol
|
override val symbol: IrReturnableBlockSymbol
|
||||||
val sourceFileSymbol: IrFileSymbol?
|
|
||||||
val sourceFileName: String
|
|
||||||
val inlineFunctionSymbol: IrFunctionSymbol?
|
val inlineFunctionSymbol: IrFunctionSymbol?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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"
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.IrStatement
|
|||||||
import org.jetbrains.kotlin.ir.expressions.IrBlock
|
import org.jetbrains.kotlin.ir.expressions.IrBlock
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock
|
import org.jetbrains.kotlin.ir.expressions.IrReturnableBlock
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
|
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.IrFunctionSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrReturnableBlockSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrReturnableBlockSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.impl.IrReturnableBlockSymbolImpl
|
import org.jetbrains.kotlin.ir.symbols.impl.IrReturnableBlockSymbolImpl
|
||||||
@@ -71,7 +70,6 @@ class IrReturnableBlockImpl(
|
|||||||
type: IrType,
|
type: IrType,
|
||||||
override val symbol: IrReturnableBlockSymbol,
|
override val symbol: IrReturnableBlockSymbol,
|
||||||
origin: IrStatementOrigin? = null,
|
origin: IrStatementOrigin? = null,
|
||||||
override val sourceFileSymbol: IrFileSymbol? = null,
|
|
||||||
override val inlineFunctionSymbol: IrFunctionSymbol? = null
|
override val inlineFunctionSymbol: IrFunctionSymbol? = null
|
||||||
) :
|
) :
|
||||||
IrContainerExpressionBase(startOffset, endOffset, type, origin),
|
IrContainerExpressionBase(startOffset, endOffset, type, origin),
|
||||||
@@ -86,30 +84,8 @@ class IrReturnableBlockImpl(
|
|||||||
symbol: IrReturnableBlockSymbol,
|
symbol: IrReturnableBlockSymbol,
|
||||||
origin: IrStatementOrigin?,
|
origin: IrStatementOrigin?,
|
||||||
statements: List<IrStatement>,
|
statements: List<IrStatement>,
|
||||||
sourceFileSymbol: IrFileSymbol? = null,
|
|
||||||
inlineFunctionSymbol: IrFunctionSymbol? = null
|
inlineFunctionSymbol: IrFunctionSymbol? = null
|
||||||
) : this(startOffset, endOffset, type, symbol, origin, sourceFileSymbol, inlineFunctionSymbol) {
|
) : this(startOffset, endOffset, type, symbol, origin, 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<IrStatement>,
|
|
||||||
sourceFileSymbol: IrFileSymbol? = null
|
|
||||||
) : this(startOffset, endOffset, type, descriptor, origin, sourceFileSymbol) {
|
|
||||||
this.statements.addAll(statements)
|
this.statements.addAll(statements)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -117,8 +93,6 @@ class IrReturnableBlockImpl(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val sourceFileName: String = sourceFileSymbol?.owner?.fileEntry?.name ?: "no source file"
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R =
|
||||||
visitor.visitBlock(this, data)
|
visitor.visitBlock(this, data)
|
||||||
|
|
||||||
|
|||||||
@@ -374,7 +374,7 @@ open class DeepCopyIrTreeWithSymbols(
|
|||||||
symbolRemapper.getReferencedReturnableBlock(expression.symbol),
|
symbolRemapper.getReferencedReturnableBlock(expression.symbol),
|
||||||
mapStatementOrigin(expression.origin),
|
mapStatementOrigin(expression.origin),
|
||||||
expression.statements.map { it.transform() },
|
expression.statements.map { it.transform() },
|
||||||
expression.sourceFileSymbol
|
expression.inlineFunctionSymbol
|
||||||
)
|
)
|
||||||
else
|
else
|
||||||
IrBlockImpl(
|
IrBlockImpl(
|
||||||
|
|||||||
Reference in New Issue
Block a user