IR: push down implementations of startOffset/endOffset/type/...
Do not store these as properties in IrElementBase, IrExpressionBase and similar classes. This helps to reduce boilerplate in implementations (just "override val" in the constructor, instead of taking a parameter and passing it to the superclass), and also slightly optimizes memory in cases where the value is trivial (UNDEFINED_OFFSET, 0, etc) and thus does not need to be stored.
This commit is contained in:
+8
-7
@@ -11,9 +11,9 @@ import org.jetbrains.kotlin.backend.common.ir.Symbols
|
|||||||
import org.jetbrains.kotlin.backend.common.ir.createTemporaryVariableWithWrappedDescriptor
|
import org.jetbrains.kotlin.backend.common.ir.createTemporaryVariableWithWrappedDescriptor
|
||||||
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
import org.jetbrains.kotlin.backend.common.lower.createIrBuilder
|
||||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
import org.jetbrains.kotlin.ir.UNDEFINED_OFFSET
|
||||||
import org.jetbrains.kotlin.ir.builders.irReturn
|
import org.jetbrains.kotlin.ir.builders.irReturn
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
@@ -509,13 +509,14 @@ class FunctionInlining(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class IrGetValueWithoutLocation(
|
private class IrGetValueWithoutLocation(
|
||||||
symbol: IrValueSymbol,
|
override val symbol: IrValueSymbol,
|
||||||
override val origin: IrStatementOrigin? = null
|
override val origin: IrStatementOrigin? = null
|
||||||
) : IrTerminalDeclarationReferenceBase<IrValueSymbol>(
|
) : IrTerminalDeclarationReferenceBase<IrValueSymbol>(), IrGetValue {
|
||||||
UNDEFINED_OFFSET, UNDEFINED_OFFSET,
|
override val startOffset: Int get() = UNDEFINED_OFFSET
|
||||||
symbol.owner.type,
|
override val endOffset: Int get() = UNDEFINED_OFFSET
|
||||||
symbol
|
|
||||||
), IrGetValue {
|
override val type: IrType get() = symbol.owner.type
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D) =
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D) =
|
||||||
visitor.visitGetValue(this, data)
|
visitor.visitGetValue(this, data)
|
||||||
|
|
||||||
|
|||||||
+10
-2
@@ -24,7 +24,10 @@ 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.IrValueParameterSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrValueParameterSymbol
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrVariableSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.*
|
import org.jetbrains.kotlin.ir.types.IrDynamicType
|
||||||
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
|
import org.jetbrains.kotlin.ir.types.isNothing
|
||||||
|
import org.jetbrains.kotlin.ir.types.isUnit
|
||||||
import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols
|
import org.jetbrains.kotlin.ir.util.deepCopyWithSymbols
|
||||||
import org.jetbrains.kotlin.ir.util.getInlinedClass
|
import org.jetbrains.kotlin.ir.util.getInlinedClass
|
||||||
import org.jetbrains.kotlin.ir.visitors.*
|
import org.jetbrains.kotlin.ir.visitors.*
|
||||||
@@ -39,7 +42,12 @@ data class LoopBounds(val headState: SuspendState, val exitState: SuspendState)
|
|||||||
|
|
||||||
data class TryState(val tryState: SuspendState, val catchState: SuspendState)
|
data class TryState(val tryState: SuspendState, val catchState: SuspendState)
|
||||||
|
|
||||||
class IrDispatchPoint(val target: SuspendState) : IrExpressionBase(UNDEFINED_OFFSET, UNDEFINED_OFFSET, target.entryBlock.type) {
|
class IrDispatchPoint(val target: SuspendState) : IrExpressionBase() {
|
||||||
|
override val startOffset: Int get() = UNDEFINED_OFFSET
|
||||||
|
override val endOffset: Int get() = UNDEFINED_OFFSET
|
||||||
|
|
||||||
|
override val type: IrType get() = target.entryBlock.type
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D) = visitor.visitExpression(this, data)
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D) = visitor.visitExpression(this, data)
|
||||||
|
|
||||||
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {}
|
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {}
|
||||||
|
|||||||
+4
-1
@@ -22,7 +22,10 @@ import org.jetbrains.kotlin.ir.declarations.IrFactory
|
|||||||
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
import org.jetbrains.kotlin.ir.declarations.impl.IrFactoryImpl
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
||||||
|
|
||||||
class IrBlockBodyImpl(startOffset: Int, endOffset: Int) : IrElementBase(startOffset, endOffset), IrBlockBody {
|
class IrBlockBodyImpl(
|
||||||
|
override val startOffset: Int,
|
||||||
|
override val endOffset: Int
|
||||||
|
) : IrElementBase(), IrBlockBody {
|
||||||
constructor(startOffset: Int, endOffset: Int, statements: List<IrStatement>) : this(startOffset, endOffset) {
|
constructor(startOffset: Int, endOffset: Int, statements: List<IrStatement>) : this(startOffset, endOffset) {
|
||||||
this.statements.addAll(statements)
|
this.statements.addAll(statements)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -23,10 +23,10 @@ import org.jetbrains.kotlin.ir.expressions.IrExpression
|
|||||||
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
|
||||||
|
|
||||||
class IrExpressionBodyImpl(
|
class IrExpressionBodyImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
initializer: (IrExpressionBody.() -> Unit)? = null
|
initializer: (IrExpressionBody.() -> Unit)? = null
|
||||||
) : IrElementBase(startOffset, endOffset), IrExpressionBody {
|
) : IrElementBase(), IrExpressionBody {
|
||||||
init {
|
init {
|
||||||
initializer?.invoke(this)
|
initializer?.invoke(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,4 +16,4 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.ir
|
package org.jetbrains.kotlin.ir
|
||||||
|
|
||||||
abstract class IrElementBase(override val startOffset: Int, override val endOffset: Int) : IrElement
|
abstract class IrElementBase : IrElement
|
||||||
|
|||||||
+7
-1
@@ -35,9 +35,15 @@ import org.jetbrains.kotlin.serialization.deserialization.descriptors.Deserializ
|
|||||||
class IrExternalPackageFragmentImpl(
|
class IrExternalPackageFragmentImpl(
|
||||||
override val symbol: IrExternalPackageFragmentSymbol,
|
override val symbol: IrExternalPackageFragmentSymbol,
|
||||||
override val fqName: FqName
|
override val fqName: FqName
|
||||||
) : IrElementBase(UNDEFINED_OFFSET, UNDEFINED_OFFSET),
|
) : IrElementBase(),
|
||||||
IrExternalPackageFragment {
|
IrExternalPackageFragment {
|
||||||
|
|
||||||
|
override val startOffset: Int
|
||||||
|
get() = UNDEFINED_OFFSET
|
||||||
|
|
||||||
|
override val endOffset: Int
|
||||||
|
get() = UNDEFINED_OFFSET
|
||||||
|
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,10 +34,7 @@ class IrFileImpl(
|
|||||||
override val fileEntry: SourceManager.FileEntry,
|
override val fileEntry: SourceManager.FileEntry,
|
||||||
override val symbol: IrFileSymbol,
|
override val symbol: IrFileSymbol,
|
||||||
override val fqName: FqName
|
override val fqName: FqName
|
||||||
) :
|
) : IrElementBase(), IrFile {
|
||||||
IrElementBase(0, fileEntry.maxOffset),
|
|
||||||
IrFile {
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
fileEntry: SourceManager.FileEntry,
|
fileEntry: SourceManager.FileEntry,
|
||||||
packageFragmentDescriptor: PackageFragmentDescriptor
|
packageFragmentDescriptor: PackageFragmentDescriptor
|
||||||
@@ -47,6 +44,12 @@ class IrFileImpl(
|
|||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override val startOffset: Int
|
||||||
|
get() = 0
|
||||||
|
|
||||||
|
override val endOffset: Int
|
||||||
|
get() = fileEntry.maxOffset
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val packageFragmentDescriptor: PackageFragmentDescriptor get() = symbol.descriptor
|
override val packageFragmentDescriptor: PackageFragmentDescriptor get() = symbol.descriptor
|
||||||
|
|
||||||
|
|||||||
@@ -29,22 +29,18 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrBlockImpl(
|
class IrBlockImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
origin: IrStatementOrigin? = null
|
override val origin: IrStatementOrigin? = null,
|
||||||
) :
|
) : IrContainerExpressionBase(), IrBlock {
|
||||||
IrContainerExpressionBase(startOffset, endOffset, type, origin),
|
|
||||||
IrBlock {
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
type: IrType,
|
type: IrType,
|
||||||
origin: IrStatementOrigin?,
|
origin: IrStatementOrigin?,
|
||||||
statements: List<IrStatement>
|
statements: List<IrStatement>
|
||||||
) :
|
) : this(startOffset, endOffset, type, origin) {
|
||||||
this(startOffset, endOffset, type, origin) {
|
|
||||||
this.statements.addAll(statements)
|
this.statements.addAll(statements)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,16 +61,13 @@ fun IrBlockImpl.inlineStatement(statement: IrStatement) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class IrReturnableBlockImpl(
|
class IrReturnableBlockImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val symbol: IrReturnableBlockSymbol,
|
override val symbol: IrReturnableBlockSymbol,
|
||||||
origin: IrStatementOrigin? = null,
|
override val origin: IrStatementOrigin? = null,
|
||||||
override val inlineFunctionSymbol: IrFunctionSymbol? = null
|
override val inlineFunctionSymbol: IrFunctionSymbol? = null
|
||||||
) :
|
) : IrContainerExpressionBase(), IrReturnableBlock {
|
||||||
IrContainerExpressionBase(startOffset, endOffset, type, origin),
|
|
||||||
IrReturnableBlock {
|
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
override val descriptor: FunctionDescriptor
|
override val descriptor: FunctionDescriptor
|
||||||
get() = symbol.descriptor
|
get() = symbol.descriptor
|
||||||
|
|||||||
+2
-11
@@ -17,16 +17,7 @@
|
|||||||
package org.jetbrains.kotlin.ir.expressions.impl
|
package org.jetbrains.kotlin.ir.expressions.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrBreakContinue
|
import org.jetbrains.kotlin.ir.expressions.IrBreakContinue
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrLoop
|
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
|
||||||
|
|
||||||
abstract class IrBreakContinueBase(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
type: IrType,
|
|
||||||
override var loop: IrLoop
|
|
||||||
) : IrTerminalExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrBreakContinue {
|
|
||||||
|
|
||||||
|
abstract class IrBreakContinueBase : IrTerminalExpressionBase(), IrBreakContinue {
|
||||||
override var label: String? = null
|
override var label: String? = null
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,13 +22,11 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrBreakImpl(
|
class IrBreakImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
loop: IrLoop
|
override var loop: IrLoop,
|
||||||
) : IrBreakContinueBase(startOffset, endOffset, type, loop),
|
) : IrBreakContinueBase(), IrBreak {
|
||||||
IrBreak {
|
|
||||||
|
|
||||||
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.visitBreak(this, data)
|
visitor.visitBreak(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,23 +28,15 @@ import org.jetbrains.kotlin.ir.util.render
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrCallImpl(
|
class IrCallImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val symbol: IrFunctionSymbol,
|
override val symbol: IrFunctionSymbol,
|
||||||
typeArgumentsCount: Int,
|
typeArgumentsCount: Int,
|
||||||
valueArgumentsCount: Int,
|
valueArgumentsCount: Int,
|
||||||
origin: IrStatementOrigin? = null,
|
override val origin: IrStatementOrigin? = null,
|
||||||
override val superQualifierSymbol: IrClassSymbol? = null
|
override val superQualifierSymbol: IrClassSymbol? = null
|
||||||
) :
|
) : IrCallWithIndexedArgumentsBase(typeArgumentsCount, valueArgumentsCount), IrCall {
|
||||||
IrCallWithIndexedArgumentsBase(
|
|
||||||
startOffset, endOffset, type,
|
|
||||||
typeArgumentsCount,
|
|
||||||
valueArgumentsCount,
|
|
||||||
origin
|
|
||||||
),
|
|
||||||
IrCall {
|
|
||||||
|
|
||||||
init {
|
init {
|
||||||
if (symbol is IrConstructorSymbol) {
|
if (symbol is IrConstructorSymbol) {
|
||||||
throw AssertionError("Should be IrConstructorCall: ${this.render()}")
|
throw AssertionError("Should be IrConstructorCall: ${this.render()}")
|
||||||
|
|||||||
+2
-17
@@ -17,29 +17,14 @@
|
|||||||
package org.jetbrains.kotlin.ir.expressions.impl
|
package org.jetbrains.kotlin.ir.expressions.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
|
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
abstract class IrCallWithIndexedArgumentsBase(
|
abstract class IrCallWithIndexedArgumentsBase(
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
type: IrType,
|
|
||||||
typeArgumentsCount: Int,
|
typeArgumentsCount: Int,
|
||||||
valueArgumentsCount: Int,
|
final override val valueArgumentsCount: Int,
|
||||||
origin: IrStatementOrigin? = null
|
) : IrMemberAccessExpressionBase<IrFunctionSymbol>(typeArgumentsCount) {
|
||||||
) :
|
|
||||||
IrMemberAccessExpressionBase<IrFunctionSymbol>(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
type,
|
|
||||||
typeArgumentsCount,
|
|
||||||
valueArgumentsCount,
|
|
||||||
origin
|
|
||||||
) {
|
|
||||||
|
|
||||||
private val argumentsByParameterIndex: Array<IrExpression?> = arrayOfNulls(valueArgumentsCount)
|
private val argumentsByParameterIndex: Array<IrExpression?> = arrayOfNulls(valueArgumentsCount)
|
||||||
|
|
||||||
override fun getValueArgument(index: Int): IrExpression? {
|
override fun getValueArgument(index: Int): IrExpression? {
|
||||||
|
|||||||
+5
-6
@@ -22,13 +22,12 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrClassReferenceImpl(
|
class IrClassReferenceImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
symbol: IrClassifierSymbol,
|
override val symbol: IrClassifierSymbol,
|
||||||
override val classType: IrType
|
override val classType: IrType
|
||||||
) : IrTerminalDeclarationReferenceBase<IrClassifierSymbol>(startOffset, endOffset, type, symbol), IrClassReference {
|
) : IrTerminalDeclarationReferenceBase<IrClassifierSymbol>(), IrClassReference {
|
||||||
|
|
||||||
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.visitClassReference(this, data)
|
visitor.visitClassReference(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-11
@@ -22,16 +22,12 @@ import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
|
|||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
|
|
||||||
class IrCompositeImpl(
|
class IrCompositeImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
origin: IrStatementOrigin? = null
|
override val origin: IrStatementOrigin? = null,
|
||||||
) :
|
) : IrContainerExpressionBase(), IrComposite {
|
||||||
IrContainerExpressionBase(startOffset, endOffset, type, origin),
|
|
||||||
IrComposite {
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
@@ -44,5 +40,4 @@ class IrCompositeImpl(
|
|||||||
|
|
||||||
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.visitComposite(this, data)
|
visitor.visitComposite(this, data)
|
||||||
|
}
|
||||||
}
|
|
||||||
|
|||||||
@@ -18,20 +18,16 @@ package org.jetbrains.kotlin.ir.expressions.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConst
|
import org.jetbrains.kotlin.ir.expressions.IrConst
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
|
||||||
import org.jetbrains.kotlin.ir.types.*
|
import org.jetbrains.kotlin.ir.types.*
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrConstImpl<T>(
|
class IrConstImpl<T>(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val kind: IrConstKind<T>,
|
override val kind: IrConstKind<T>,
|
||||||
override val value: T
|
override val value: T
|
||||||
) :
|
) : IrTerminalExpressionBase(), IrConst<T> {
|
||||||
IrTerminalExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrConst<T> {
|
|
||||||
|
|
||||||
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.visitConst(this, data)
|
visitor.visitConst(this, data)
|
||||||
|
|
||||||
@@ -87,4 +83,4 @@ class IrConstImpl<T>(
|
|||||||
else -> constNull(startOffset, endOffset, type)
|
else -> constNull(startOffset, endOffset, type)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-10
@@ -15,18 +15,15 @@ import org.jetbrains.kotlin.ir.util.parentAsClass
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrConstructorCallImpl(
|
class IrConstructorCallImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val symbol: IrConstructorSymbol,
|
override val symbol: IrConstructorSymbol,
|
||||||
typeArgumentsCount: Int,
|
typeArgumentsCount: Int,
|
||||||
override val constructorTypeArgumentsCount: Int,
|
override val constructorTypeArgumentsCount: Int,
|
||||||
valueArgumentsCount: Int,
|
valueArgumentsCount: Int,
|
||||||
origin: IrStatementOrigin? = null
|
override val origin: IrStatementOrigin? = null,
|
||||||
) :
|
) : IrCallWithIndexedArgumentsBase(typeArgumentsCount, valueArgumentsCount), IrConstructorCall {
|
||||||
IrCallWithIndexedArgumentsBase(startOffset, endOffset, type, typeArgumentsCount, valueArgumentsCount, origin),
|
|
||||||
IrConstructorCall {
|
|
||||||
|
|
||||||
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.visitConstructorCall(this, data)
|
visitor.visitConstructorCall(this, data)
|
||||||
|
|
||||||
@@ -92,7 +89,9 @@ class IrConstructorCallImpl(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun fromSymbolOwner(type: IrType, constructorSymbol: IrConstructorSymbol, origin: IrStatementOrigin? = null) =
|
fun fromSymbolOwner(type: IrType, constructorSymbol: IrConstructorSymbol, origin: IrStatementOrigin? = null) =
|
||||||
fromSymbolOwner(UNDEFINED_OFFSET, UNDEFINED_OFFSET, type, constructorSymbol, constructorSymbol.owner.parentAsClass.typeParameters.size, origin)
|
fromSymbolOwner(
|
||||||
|
UNDEFINED_OFFSET, UNDEFINED_OFFSET, type, constructorSymbol, constructorSymbol.owner.parentAsClass.typeParameters.size,
|
||||||
|
origin
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-12
@@ -18,22 +18,12 @@ package org.jetbrains.kotlin.ir.expressions.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.ir.IrStatement
|
import org.jetbrains.kotlin.ir.IrStatement
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrContainerExpression
|
import org.jetbrains.kotlin.ir.expressions.IrContainerExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
|
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
|
||||||
import org.jetbrains.kotlin.ir.util.transform
|
import org.jetbrains.kotlin.ir.util.transform
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
abstract class IrContainerExpressionBase(
|
abstract class IrContainerExpressionBase : IrExpressionBase(), IrContainerExpression {
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
type: IrType,
|
|
||||||
override val origin: IrStatementOrigin? = null
|
|
||||||
) :
|
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrContainerExpression {
|
|
||||||
|
|
||||||
override val statements: MutableList<IrStatement> = ArrayList(2)
|
override val statements: MutableList<IrStatement> = ArrayList(2)
|
||||||
|
|
||||||
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {
|
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {
|
||||||
@@ -43,4 +33,4 @@ abstract class IrContainerExpressionBase(
|
|||||||
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
|
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
|
||||||
statements.transform { it.transform(transformer, data) }
|
statements.transform { it.transform(transformer, data) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,14 +22,11 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrContinueImpl(
|
class IrContinueImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
loop: IrLoop
|
override var loop: IrLoop,
|
||||||
) :
|
) : IrBreakContinueBase(), IrContinue {
|
||||||
IrBreakContinueBase(startOffset, endOffset, type, loop),
|
|
||||||
IrContinue {
|
|
||||||
|
|
||||||
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.visitContinue(this, data)
|
visitor.visitContinue(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-9
@@ -18,13 +18,7 @@ package org.jetbrains.kotlin.ir.expressions.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrDeclarationReference
|
import org.jetbrains.kotlin.ir.expressions.IrDeclarationReference
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
|
||||||
|
|
||||||
abstract class IrDeclarationReferenceBase<out S : IrSymbol>(
|
abstract class IrDeclarationReferenceBase<out S : IrSymbol> : IrExpressionBase(), IrDeclarationReference {
|
||||||
startOffset: Int,
|
abstract override val symbol: S
|
||||||
endOffset: Int,
|
}
|
||||||
type: IrType,
|
|
||||||
override val symbol: S
|
|
||||||
) :
|
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrDeclarationReference
|
|
||||||
|
|||||||
+7
-12
@@ -18,27 +18,22 @@ package org.jetbrains.kotlin.ir.expressions.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrDelegatingConstructorCall
|
import org.jetbrains.kotlin.ir.expressions.IrDelegatingConstructorCall
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
|
||||||
import org.jetbrains.kotlin.ir.expressions.typeParametersCount
|
import org.jetbrains.kotlin.ir.expressions.typeParametersCount
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrDelegatingConstructorCallImpl(
|
class IrDelegatingConstructorCallImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val symbol: IrConstructorSymbol,
|
override val symbol: IrConstructorSymbol,
|
||||||
typeArgumentsCount: Int,
|
typeArgumentsCount: Int,
|
||||||
valueArgumentsCount: Int
|
valueArgumentsCount: Int
|
||||||
) :
|
) : IrCallWithIndexedArgumentsBase(typeArgumentsCount, valueArgumentsCount), IrDelegatingConstructorCall {
|
||||||
IrCallWithIndexedArgumentsBase(
|
override val origin: IrStatementOrigin?
|
||||||
startOffset,
|
get() = null
|
||||||
endOffset,
|
|
||||||
type,
|
|
||||||
typeArgumentsCount = typeArgumentsCount,
|
|
||||||
valueArgumentsCount = valueArgumentsCount
|
|
||||||
),
|
|
||||||
IrDelegatingConstructorCall {
|
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
constructor(
|
constructor(
|
||||||
|
|||||||
+5
-8
@@ -23,14 +23,11 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrDoWhileLoopImpl(
|
class IrDoWhileLoopImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
origin: IrStatementOrigin?
|
override val origin: IrStatementOrigin?,
|
||||||
) :
|
) : IrLoopBase(), IrDoWhileLoop {
|
||||||
IrLoopBase(startOffset, endOffset, type, origin),
|
|
||||||
IrDoWhileLoop {
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||||
return visitor.visitDoWhileLoop(this, data)
|
return visitor.visitDoWhileLoop(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-8
@@ -12,15 +12,12 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrDynamicMemberExpressionImpl(
|
class IrDynamicMemberExpressionImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val memberName: String,
|
override val memberName: String,
|
||||||
override var receiver: IrExpression
|
override var receiver: IrExpression
|
||||||
) :
|
) : IrExpressionBase(), IrDynamicMemberExpression {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrDynamicMemberExpression {
|
|
||||||
|
|
||||||
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.visitDynamicMemberExpression(this, data)
|
visitor.visitDynamicMemberExpression(this, data)
|
||||||
|
|
||||||
@@ -31,4 +28,4 @@ class IrDynamicMemberExpressionImpl(
|
|||||||
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
|
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
|
||||||
receiver = receiver.transform(transformer, data)
|
receiver = receiver.transform(transformer, data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-8
@@ -14,14 +14,11 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|||||||
import org.jetbrains.kotlin.utils.SmartList
|
import org.jetbrains.kotlin.utils.SmartList
|
||||||
|
|
||||||
class IrDynamicOperatorExpressionImpl(
|
class IrDynamicOperatorExpressionImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val operator: IrDynamicOperator
|
override val operator: IrDynamicOperator
|
||||||
) :
|
) : IrExpressionBase(), IrDynamicOperatorExpression {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrDynamicOperatorExpression {
|
|
||||||
|
|
||||||
override lateinit var receiver: IrExpression
|
override lateinit var receiver: IrExpression
|
||||||
|
|
||||||
override val arguments: MutableList<IrExpression> = SmartList()
|
override val arguments: MutableList<IrExpression> = SmartList()
|
||||||
@@ -42,4 +39,4 @@ class IrDynamicOperatorExpressionImpl(
|
|||||||
arguments[i] = arguments[i].transform(transformer, data)
|
arguments[i] = arguments[i].transform(transformer, data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-12
@@ -18,26 +18,21 @@ package org.jetbrains.kotlin.ir.expressions.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrEnumConstructorCall
|
import org.jetbrains.kotlin.ir.expressions.IrEnumConstructorCall
|
||||||
|
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrEnumConstructorCallImpl(
|
class IrEnumConstructorCallImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val symbol: IrConstructorSymbol,
|
override val symbol: IrConstructorSymbol,
|
||||||
typeArgumentsCount: Int,
|
typeArgumentsCount: Int,
|
||||||
valueArgumentsCount: Int
|
valueArgumentsCount: Int
|
||||||
) :
|
) : IrCallWithIndexedArgumentsBase(typeArgumentsCount, valueArgumentsCount), IrEnumConstructorCall {
|
||||||
IrCallWithIndexedArgumentsBase(
|
override val origin: IrStatementOrigin?
|
||||||
startOffset,
|
get() = null
|
||||||
endOffset,
|
|
||||||
type,
|
|
||||||
typeArgumentsCount = typeArgumentsCount,
|
|
||||||
valueArgumentsCount = valueArgumentsCount
|
|
||||||
),
|
|
||||||
IrEnumConstructorCall {
|
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
constructor(
|
constructor(
|
||||||
|
|||||||
+5
-8
@@ -24,14 +24,11 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|||||||
import org.jetbrains.kotlin.utils.SmartList
|
import org.jetbrains.kotlin.utils.SmartList
|
||||||
|
|
||||||
class IrErrorCallExpressionImpl(
|
class IrErrorCallExpressionImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val description: String
|
override val description: String
|
||||||
) :
|
) : IrExpressionBase(), IrErrorCallExpression {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrErrorCallExpression {
|
|
||||||
|
|
||||||
override var explicitReceiver: IrExpression? = null
|
override var explicitReceiver: IrExpression? = null
|
||||||
override val arguments: MutableList<IrExpression> = SmartList()
|
override val arguments: MutableList<IrExpression> = SmartList()
|
||||||
|
|
||||||
@@ -54,4 +51,4 @@ class IrErrorCallExpressionImpl(
|
|||||||
arguments[i] = irExpression.transform(transformer, data)
|
arguments[i] = irExpression.transform(transformer, data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-9
@@ -22,18 +22,14 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrErrorExpressionImpl(
|
class IrErrorExpressionImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val description: String
|
override val description: String
|
||||||
) :
|
) : IrTerminalExpressionBase(), IrExpressionWithCopy, IrErrorExpression {
|
||||||
IrTerminalExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrExpressionWithCopy,
|
|
||||||
IrErrorExpression {
|
|
||||||
|
|
||||||
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.visitErrorExpression(this, data)
|
visitor.visitErrorExpression(this, data)
|
||||||
|
|
||||||
override fun copy(): IrErrorExpressionImpl =
|
override fun copy(): IrErrorExpressionImpl =
|
||||||
IrErrorExpressionImpl(startOffset, endOffset, type, description)
|
IrErrorExpressionImpl(startOffset, endOffset, type, description)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-6
@@ -19,13 +19,8 @@ package org.jetbrains.kotlin.ir.expressions.impl
|
|||||||
import org.jetbrains.kotlin.ir.IrElementBase
|
import org.jetbrains.kotlin.ir.IrElementBase
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrAttributeContainer
|
import org.jetbrains.kotlin.ir.declarations.IrAttributeContainer
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
|
||||||
|
|
||||||
abstract class IrExpressionBase(
|
abstract class IrExpressionBase : IrElementBase(), IrExpression {
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
override val type: IrType
|
|
||||||
) : IrElementBase(startOffset, endOffset), IrExpression {
|
|
||||||
@Suppress("LeakingThis")
|
@Suppress("LeakingThis")
|
||||||
override var attributeOwnerId: IrAttributeContainer = this
|
override var attributeOwnerId: IrAttributeContainer = this
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-15
@@ -18,20 +18,7 @@ package org.jetbrains.kotlin.ir.expressions.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrFieldAccessExpression
|
import org.jetbrains.kotlin.ir.expressions.IrFieldAccessExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
|
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrFieldSymbol
|
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
|
||||||
|
|
||||||
abstract class IrFieldExpressionBase(
|
|
||||||
startOffset: Int, endOffset: Int,
|
|
||||||
override val symbol: IrFieldSymbol,
|
|
||||||
type: IrType,
|
|
||||||
override val origin: IrStatementOrigin? = null,
|
|
||||||
override val superQualifierSymbol: IrClassSymbol?
|
|
||||||
) :
|
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrFieldAccessExpression {
|
|
||||||
|
|
||||||
|
abstract class IrFieldExpressionBase : IrExpressionBase(), IrFieldAccessExpression {
|
||||||
final override var receiver: IrExpression? = null
|
final override var receiver: IrExpression? = null
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-8
@@ -13,15 +13,12 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrFunctionExpressionImpl(
|
class IrFunctionExpressionImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override var function: IrSimpleFunction,
|
override var function: IrSimpleFunction,
|
||||||
override val origin: IrStatementOrigin
|
override val origin: IrStatementOrigin
|
||||||
) :
|
) : IrExpressionBase(), IrFunctionExpression {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrFunctionExpression {
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||||
return visitor.visitFunctionExpression(this, data)
|
return visitor.visitFunctionExpression(this, data)
|
||||||
}
|
}
|
||||||
@@ -33,4 +30,4 @@ class IrFunctionExpressionImpl(
|
|||||||
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
|
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
|
||||||
function = function.transform(transformer, data) as IrSimpleFunction
|
function = function.transform(transformer, data) as IrSimpleFunction
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-15
@@ -25,25 +25,15 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class IrFunctionReferenceImpl(
|
class IrFunctionReferenceImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val symbol: IrFunctionSymbol,
|
override val symbol: IrFunctionSymbol,
|
||||||
typeArgumentsCount: Int,
|
typeArgumentsCount: Int,
|
||||||
valueArgumentsCount: Int,
|
valueArgumentsCount: Int,
|
||||||
override val reflectionTarget: IrFunctionSymbol? = symbol,
|
override val reflectionTarget: IrFunctionSymbol? = symbol,
|
||||||
origin: IrStatementOrigin? = null
|
override val origin: IrStatementOrigin? = null,
|
||||||
) :
|
) : IrCallWithIndexedArgumentsBase(typeArgumentsCount, valueArgumentsCount), IrFunctionReference {
|
||||||
IrCallWithIndexedArgumentsBase(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
type,
|
|
||||||
typeArgumentsCount,
|
|
||||||
valueArgumentsCount,
|
|
||||||
origin
|
|
||||||
),
|
|
||||||
IrFunctionReference {
|
|
||||||
|
|
||||||
@ObsoleteDescriptorBasedAPI
|
@ObsoleteDescriptorBasedAPI
|
||||||
constructor(
|
constructor(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
|
|||||||
@@ -23,14 +23,11 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrGetClassImpl(
|
class IrGetClassImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override var argument: IrExpression,
|
override var argument: IrExpression,
|
||||||
) :
|
) : IrExpressionBase(), IrGetClass {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrGetClass {
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||||
return visitor.visitGetClass(this, data)
|
return visitor.visitGetClass(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-6
@@ -22,12 +22,11 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrGetEnumValueImpl(
|
class IrGetEnumValueImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
symbol: IrEnumEntrySymbol
|
override val symbol: IrEnumEntrySymbol,
|
||||||
) : IrTerminalDeclarationReferenceBase<IrEnumEntrySymbol>(startOffset, endOffset, type, symbol), IrGetEnumValue {
|
) : IrTerminalDeclarationReferenceBase<IrEnumEntrySymbol>(), IrGetEnumValue {
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||||
return visitor.visitGetEnumValue(this, data)
|
return visitor.visitGetEnumValue(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,16 +26,13 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrGetFieldImpl(
|
class IrGetFieldImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
symbol: IrFieldSymbol,
|
override val symbol: IrFieldSymbol,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
origin: IrStatementOrigin? = null,
|
override val origin: IrStatementOrigin? = null,
|
||||||
superQualifierSymbol: IrClassSymbol? = null
|
override val superQualifierSymbol: IrClassSymbol? = null,
|
||||||
) :
|
) : IrFieldExpressionBase(), IrGetField {
|
||||||
IrFieldExpressionBase(startOffset, endOffset, symbol, type, origin, superQualifierSymbol),
|
|
||||||
IrGetField {
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
startOffset: Int, endOffset: Int,
|
startOffset: Int, endOffset: Int,
|
||||||
symbol: IrFieldSymbol,
|
symbol: IrFieldSymbol,
|
||||||
|
|||||||
+5
-6
@@ -22,12 +22,11 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrGetObjectValueImpl(
|
class IrGetObjectValueImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
symbol: IrClassSymbol
|
override val symbol: IrClassSymbol
|
||||||
) : IrTerminalDeclarationReferenceBase<IrClassSymbol>(startOffset, endOffset, type, symbol), IrGetObjectValue {
|
) : IrTerminalDeclarationReferenceBase<IrClassSymbol>(), IrGetObjectValue {
|
||||||
|
|
||||||
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.visitGetObjectValue(this, data)
|
visitor.visitGetObjectValue(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,20 +12,12 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrGetValueImpl(
|
class IrGetValueImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
symbol: IrValueSymbol,
|
override val symbol: IrValueSymbol,
|
||||||
override val origin: IrStatementOrigin? = null
|
override val origin: IrStatementOrigin? = null
|
||||||
) :
|
) : IrTerminalDeclarationReferenceBase<IrValueSymbol>(), IrGetValue {
|
||||||
IrTerminalDeclarationReferenceBase<IrValueSymbol>(
|
|
||||||
startOffset,
|
|
||||||
endOffset,
|
|
||||||
type,
|
|
||||||
symbol
|
|
||||||
),
|
|
||||||
IrGetValue {
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
|
|||||||
+5
-7
@@ -22,12 +22,10 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.utils.SmartList
|
import org.jetbrains.kotlin.utils.SmartList
|
||||||
|
|
||||||
class IrIfThenElseImpl(
|
class IrIfThenElseImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val origin: IrStatementOrigin? = null
|
override val origin: IrStatementOrigin? = null
|
||||||
) :
|
) : IrWhenBase() {
|
||||||
IrWhenBase(startOffset, endOffset, type) {
|
|
||||||
|
|
||||||
override val branches: MutableList<IrBranch> = SmartList()
|
override val branches: MutableList<IrBranch> = SmartList()
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-7
@@ -22,14 +22,11 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrInstanceInitializerCallImpl(
|
class IrInstanceInitializerCallImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
override val classSymbol: IrClassSymbol,
|
override val classSymbol: IrClassSymbol,
|
||||||
type: IrType
|
override val type: IrType,
|
||||||
) :
|
) : IrTerminalExpressionBase(), IrInstanceInitializerCall {
|
||||||
IrTerminalExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrInstanceInitializerCall {
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||||
return visitor.visitInstanceInitializerCall(this, data)
|
return visitor.visitInstanceInitializerCall(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-7
@@ -27,17 +27,17 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class IrLocalDelegatedPropertyReferenceImpl(
|
class IrLocalDelegatedPropertyReferenceImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val symbol: IrLocalDelegatedPropertySymbol,
|
override val symbol: IrLocalDelegatedPropertySymbol,
|
||||||
override val delegate: IrVariableSymbol,
|
override val delegate: IrVariableSymbol,
|
||||||
override val getter: IrSimpleFunctionSymbol,
|
override val getter: IrSimpleFunctionSymbol,
|
||||||
override val setter: IrSimpleFunctionSymbol?,
|
override val setter: IrSimpleFunctionSymbol?,
|
||||||
origin: IrStatementOrigin? = null
|
override val origin: IrStatementOrigin? = null,
|
||||||
) :
|
) : IrMemberAccessExpressionBase<IrLocalDelegatedPropertySymbol>(0), IrLocalDelegatedPropertyReference {
|
||||||
IrMemberAccessExpressionBase<IrLocalDelegatedPropertySymbol>(startOffset, endOffset, type, 0, 0, origin),
|
override val valueArgumentsCount: Int
|
||||||
IrLocalDelegatedPropertyReference {
|
get() = 0
|
||||||
|
|
||||||
override val referencedName: Name
|
override val referencedName: Name
|
||||||
get() = symbol.owner.name
|
get() = symbol.owner.name
|
||||||
|
|||||||
@@ -18,21 +18,11 @@ package org.jetbrains.kotlin.ir.expressions.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrLoop
|
import org.jetbrains.kotlin.ir.expressions.IrLoop
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
|
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
|
||||||
|
|
||||||
abstract class IrLoopBase(
|
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
type: IrType,
|
|
||||||
override val origin: IrStatementOrigin?
|
|
||||||
) :
|
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrLoop {
|
|
||||||
|
|
||||||
|
abstract class IrLoopBase : IrExpressionBase(), IrLoop {
|
||||||
override var label: String? = null
|
override var label: String? = null
|
||||||
|
|
||||||
override lateinit var condition: IrExpression
|
override lateinit var condition: IrExpression
|
||||||
|
|
||||||
override var body: IrExpression? = null
|
override var body: IrExpression? = null
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-11
@@ -18,23 +18,14 @@ package org.jetbrains.kotlin.ir.expressions.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrMemberAccessExpression
|
import org.jetbrains.kotlin.ir.expressions.IrMemberAccessExpression
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrStatementOrigin
|
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
import org.jetbrains.kotlin.ir.types.IrType
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
abstract class IrMemberAccessExpressionBase<S : IrSymbol>(
|
abstract class IrMemberAccessExpressionBase<S : IrSymbol>(
|
||||||
startOffset: Int,
|
final override val typeArgumentsCount: Int
|
||||||
endOffset: Int,
|
) : IrExpressionBase(), IrMemberAccessExpression<S> {
|
||||||
type: IrType,
|
|
||||||
final override val typeArgumentsCount: Int,
|
|
||||||
final override val valueArgumentsCount: Int,
|
|
||||||
final override val origin: IrStatementOrigin? = null
|
|
||||||
) :
|
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrMemberAccessExpression<S> {
|
|
||||||
|
|
||||||
override var dispatchReceiver: IrExpression? = null
|
override var dispatchReceiver: IrExpression? = null
|
||||||
override var extensionReceiver: IrExpression? = null
|
override var extensionReceiver: IrExpression? = null
|
||||||
|
|
||||||
|
|||||||
+7
-7
@@ -27,18 +27,18 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
|
||||||
class IrPropertyReferenceImpl(
|
class IrPropertyReferenceImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val symbol: IrPropertySymbol,
|
override val symbol: IrPropertySymbol,
|
||||||
typeArgumentsCount: Int,
|
typeArgumentsCount: Int,
|
||||||
override val field: IrFieldSymbol?,
|
override val field: IrFieldSymbol?,
|
||||||
override val getter: IrSimpleFunctionSymbol?,
|
override val getter: IrSimpleFunctionSymbol?,
|
||||||
override val setter: IrSimpleFunctionSymbol?,
|
override val setter: IrSimpleFunctionSymbol?,
|
||||||
origin: IrStatementOrigin? = null
|
override val origin: IrStatementOrigin? = null,
|
||||||
) :
|
) : IrMemberAccessExpressionBase<IrPropertySymbol>(typeArgumentsCount), IrPropertyReference {
|
||||||
IrMemberAccessExpressionBase<IrPropertySymbol>(startOffset, endOffset, type, typeArgumentsCount, 0, origin),
|
override val valueArgumentsCount: Int
|
||||||
IrPropertyReference {
|
get() = 0
|
||||||
|
|
||||||
override val referencedName: Name
|
override val referencedName: Name
|
||||||
get() = symbol.owner.name
|
get() = symbol.owner.name
|
||||||
|
|||||||
+5
-6
@@ -22,12 +22,11 @@ import org.jetbrains.kotlin.ir.types.IrType
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrRawFunctionReferenceImpl(
|
class IrRawFunctionReferenceImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
symbol: IrFunctionSymbol
|
override val symbol: IrFunctionSymbol,
|
||||||
) : IrTerminalDeclarationReferenceBase<IrFunctionSymbol>(startOffset, endOffset, type, symbol), IrRawFunctionReference {
|
) : IrTerminalDeclarationReferenceBase<IrFunctionSymbol>(), IrRawFunctionReference {
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||||
return visitor.visitRawFunctionReference(this, data)
|
return visitor.visitRawFunctionReference(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,15 +24,12 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrReturnImpl(
|
class IrReturnImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val returnTargetSymbol: IrReturnTargetSymbol,
|
override val returnTargetSymbol: IrReturnTargetSymbol,
|
||||||
override var value: IrExpression
|
override var value: IrExpression
|
||||||
) :
|
) : IrExpressionBase(), IrReturn {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrReturn {
|
|
||||||
|
|
||||||
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.visitReturn(this, data)
|
visitor.visitReturn(this, data)
|
||||||
|
|
||||||
|
|||||||
@@ -26,22 +26,13 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrSetFieldImpl(
|
class IrSetFieldImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
symbol: IrFieldSymbol,
|
override val symbol: IrFieldSymbol,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
origin: IrStatementOrigin? = null,
|
override val origin: IrStatementOrigin? = null,
|
||||||
superQualifierSymbol: IrClassSymbol? = null
|
override val superQualifierSymbol: IrClassSymbol? = null,
|
||||||
) :
|
) : IrFieldExpressionBase(), IrSetField {
|
||||||
IrFieldExpressionBase(
|
|
||||||
startOffset, endOffset,
|
|
||||||
symbol,
|
|
||||||
type,
|
|
||||||
origin,
|
|
||||||
superQualifierSymbol
|
|
||||||
),
|
|
||||||
IrSetField {
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
startOffset: Int, endOffset: Int,
|
startOffset: Int, endOffset: Int,
|
||||||
symbol: IrFieldSymbol,
|
symbol: IrFieldSymbol,
|
||||||
|
|||||||
+4
-7
@@ -25,16 +25,13 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrSetVariableImpl(
|
class IrSetVariableImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val symbol: IrVariableSymbol,
|
override val symbol: IrVariableSymbol,
|
||||||
override var value: IrExpression,
|
override var value: IrExpression,
|
||||||
override val origin: IrStatementOrigin?
|
override val origin: IrStatementOrigin?
|
||||||
) :
|
) : IrExpressionBase(), IrSetVariable {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrSetVariable {
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||||
return visitor.visitSetVariable(this, data)
|
return visitor.visitSetVariable(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-6
@@ -23,13 +23,10 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrSpreadElementImpl(
|
class IrSpreadElementImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
override var expression: IrExpression,
|
override var expression: IrExpression,
|
||||||
) :
|
) : IrElementBase(), IrSpreadElement {
|
||||||
IrElementBase(startOffset, endOffset),
|
|
||||||
IrSpreadElement {
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||||
return visitor.visitSpreadElement(this, data)
|
return visitor.visitSpreadElement(this, data)
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-8
@@ -24,13 +24,10 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class IrStringConcatenationImpl(
|
class IrStringConcatenationImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType
|
override val type: IrType
|
||||||
) :
|
) : IrExpressionBase(), IrStringConcatenation {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrStringConcatenation {
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
@@ -58,4 +55,4 @@ class IrStringConcatenationImpl(
|
|||||||
arguments[i] = irExpression.transform(transformer, data)
|
arguments[i] = irExpression.transform(transformer, data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,14 +14,13 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrSuspensionPointImpl(
|
class IrSuspensionPointImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override var suspensionPointIdParameter: IrVariable,
|
override var suspensionPointIdParameter: IrVariable,
|
||||||
override var result: IrExpression,
|
override var result: IrExpression,
|
||||||
override var resumeResult: IrExpression
|
override var resumeResult: IrExpression
|
||||||
) : IrExpressionBase(startOffset, endOffset, type), IrSuspensionPoint {
|
) : IrExpressionBase(), IrSuspensionPoint {
|
||||||
|
|
||||||
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.visitSuspensionPoint(this, data)
|
visitor.visitSuspensionPoint(this, data)
|
||||||
|
|
||||||
@@ -39,12 +38,12 @@ class IrSuspensionPointImpl(
|
|||||||
}
|
}
|
||||||
|
|
||||||
class IrSuspendableExpressionImpl(
|
class IrSuspendableExpressionImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override var suspensionPointId: IrExpression,
|
override var suspensionPointId: IrExpression,
|
||||||
override var result: IrExpression
|
override var result: IrExpression
|
||||||
) : IrExpressionBase(startOffset, endOffset, type), IrSuspendableExpression {
|
) : IrExpressionBase(), IrSuspendableExpression {
|
||||||
|
|
||||||
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.visitSuspendableExpression(this, data)
|
visitor.visitSuspendableExpression(this, data)
|
||||||
@@ -58,4 +57,4 @@ class IrSuspendableExpressionImpl(
|
|||||||
suspensionPointId = suspensionPointId.transform(transformer, data)
|
suspensionPointId = suspensionPointId.transform(transformer, data)
|
||||||
result = result.transform(transformer, data)
|
result = result.transform(transformer, data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-6
@@ -23,12 +23,10 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrSyntheticBodyImpl(
|
class IrSyntheticBodyImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
override val kind: IrSyntheticBodyKind
|
override val kind: IrSyntheticBodyKind
|
||||||
) :
|
) : IrElementBase(), IrSyntheticBody {
|
||||||
IrElementBase(startOffset, endOffset),
|
|
||||||
IrSyntheticBody {
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||||
return visitor.visitSyntheticBody(this, data)
|
return visitor.visitSyntheticBody(this, data)
|
||||||
}
|
}
|
||||||
@@ -43,4 +41,4 @@ class IrSyntheticBodyImpl(
|
|||||||
|
|
||||||
override fun toString(): String =
|
override fun toString(): String =
|
||||||
"IrSyntheticBodyImpl($kind)"
|
"IrSyntheticBodyImpl($kind)"
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-12
@@ -16,21 +16,11 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.ir.expressions.impl
|
package org.jetbrains.kotlin.ir.expressions.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.expressions.IrDeclarationReference
|
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
abstract class IrTerminalDeclarationReferenceBase<out S : IrSymbol>(
|
abstract class IrTerminalDeclarationReferenceBase<out S : IrSymbol> : IrDeclarationReferenceBase<S>() {
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
type: IrType,
|
|
||||||
symbol: S
|
|
||||||
) :
|
|
||||||
IrDeclarationReferenceBase<S>(startOffset, endOffset, type, symbol),
|
|
||||||
IrDeclarationReference {
|
|
||||||
|
|
||||||
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {
|
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {
|
||||||
// No children
|
// No children
|
||||||
}
|
}
|
||||||
@@ -38,4 +28,4 @@ abstract class IrTerminalDeclarationReferenceBase<out S : IrSymbol>(
|
|||||||
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
|
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
|
||||||
// No children
|
// No children
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-8
@@ -16,16 +16,10 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.ir.expressions.impl
|
package org.jetbrains.kotlin.ir.expressions.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.ir.types.IrType
|
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
abstract class IrTerminalExpressionBase(
|
abstract class IrTerminalExpressionBase : IrExpressionBase() {
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
type: IrType
|
|
||||||
) : IrExpressionBase(startOffset, endOffset, type) {
|
|
||||||
|
|
||||||
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {
|
override fun <D> acceptChildren(visitor: IrElementVisitor<Unit, D>, data: D) {
|
||||||
// No children
|
// No children
|
||||||
}
|
}
|
||||||
@@ -33,4 +27,4 @@ abstract class IrTerminalExpressionBase(
|
|||||||
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
|
override fun <D> transformChildren(transformer: IrElementTransformer<D>, data: D) {
|
||||||
// No children
|
// No children
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,14 +23,11 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrThrowImpl(
|
class IrThrowImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override var value: IrExpression,
|
override var value: IrExpression,
|
||||||
) :
|
) : IrExpressionBase(), IrThrow {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrThrow {
|
|
||||||
|
|
||||||
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.visitThrow(this, data)
|
visitor.visitThrow(this, data)
|
||||||
|
|
||||||
|
|||||||
@@ -27,13 +27,10 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|||||||
import org.jetbrains.kotlin.utils.SmartList
|
import org.jetbrains.kotlin.utils.SmartList
|
||||||
|
|
||||||
class IrTryImpl(
|
class IrTryImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType
|
override val type: IrType,
|
||||||
) :
|
) : IrExpressionBase(), IrTry {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrTry {
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
@@ -73,13 +70,10 @@ class IrTryImpl(
|
|||||||
}
|
}
|
||||||
|
|
||||||
class IrCatchImpl(
|
class IrCatchImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
override var catchParameter: IrVariable,
|
override var catchParameter: IrVariable,
|
||||||
) :
|
) : IrElementBase(), IrCatch {
|
||||||
IrElementBase(startOffset, endOffset),
|
|
||||||
IrCatch {
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
|
|||||||
+4
-7
@@ -26,16 +26,13 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrTypeOperatorCallImpl(
|
class IrTypeOperatorCallImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val operator: IrTypeOperator,
|
override val operator: IrTypeOperator,
|
||||||
override val typeOperand: IrType,
|
override val typeOperand: IrType,
|
||||||
override var argument: IrExpression,
|
override var argument: IrExpression,
|
||||||
) :
|
) : IrExpressionBase(), IrTypeOperatorCall {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrTypeOperatorCall {
|
|
||||||
|
|
||||||
override val typeOperandClassifier: IrClassifierSymbol
|
override val typeOperandClassifier: IrClassifierSymbol
|
||||||
get() = typeOperand.classifierOrFail
|
get() = typeOperand.classifierOrFail
|
||||||
|
|
||||||
|
|||||||
@@ -24,14 +24,11 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
|||||||
import org.jetbrains.kotlin.utils.SmartList
|
import org.jetbrains.kotlin.utils.SmartList
|
||||||
|
|
||||||
class IrVarargImpl(
|
class IrVarargImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val varargElementType: IrType
|
override val varargElementType: IrType
|
||||||
) :
|
) : IrExpressionBase(), IrVararg {
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrVararg {
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
@@ -65,4 +62,4 @@ class IrVarargImpl(
|
|||||||
elements[i] = irVarargElement.transform(transformer, data) as IrVarargElement
|
elements[i] = irVarargElement.transform(transformer, data) as IrVarargElement
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,15 +23,7 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
abstract class IrWhenBase(
|
abstract class IrWhenBase : IrExpressionBase(), IrWhen {
|
||||||
startOffset: Int,
|
|
||||||
endOffset: Int,
|
|
||||||
type: IrType,
|
|
||||||
override val origin: IrStatementOrigin? = null
|
|
||||||
) :
|
|
||||||
IrExpressionBase(startOffset, endOffset, type),
|
|
||||||
IrWhen {
|
|
||||||
|
|
||||||
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.visitWhen(this, data)
|
visitor.visitWhen(this, data)
|
||||||
|
|
||||||
@@ -47,13 +39,11 @@ abstract class IrWhenBase(
|
|||||||
}
|
}
|
||||||
|
|
||||||
class IrWhenImpl(
|
class IrWhenImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
override val origin: IrStatementOrigin? = null
|
override val origin: IrStatementOrigin? = null
|
||||||
) :
|
) : IrWhenBase() {
|
||||||
IrWhenBase(startOffset, endOffset, type) {
|
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
startOffset: Int,
|
startOffset: Int,
|
||||||
endOffset: Int,
|
endOffset: Int,
|
||||||
@@ -68,14 +58,11 @@ class IrWhenImpl(
|
|||||||
}
|
}
|
||||||
|
|
||||||
open class IrBranchImpl(
|
open class IrBranchImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
override var condition: IrExpression,
|
override var condition: IrExpression,
|
||||||
override var result: IrExpression
|
override var result: IrExpression
|
||||||
) :
|
) : IrElementBase(), IrBranch {
|
||||||
IrElementBase(startOffset, endOffset),
|
|
||||||
IrBranch {
|
|
||||||
|
|
||||||
constructor(condition: IrExpression, result: IrExpression) :
|
constructor(condition: IrExpression, result: IrExpression) :
|
||||||
this(condition.startOffset, condition.endOffset, condition, result)
|
this(condition.startOffset, condition.endOffset, condition, result)
|
||||||
|
|
||||||
|
|||||||
@@ -23,14 +23,11 @@ import org.jetbrains.kotlin.ir.visitors.IrElementTransformer
|
|||||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||||
|
|
||||||
class IrWhileLoopImpl(
|
class IrWhileLoopImpl(
|
||||||
startOffset: Int,
|
override val startOffset: Int,
|
||||||
endOffset: Int,
|
override val endOffset: Int,
|
||||||
type: IrType,
|
override val type: IrType,
|
||||||
origin: IrStatementOrigin?
|
override val origin: IrStatementOrigin?,
|
||||||
) :
|
) : IrLoopBase(), IrWhileLoop {
|
||||||
IrLoopBase(startOffset, endOffset, type, origin),
|
|
||||||
IrWhileLoop {
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
override fun <R, D> accept(visitor: IrElementVisitor<R, D>, data: D): R {
|
||||||
return visitor.visitWhileLoop(this, data)
|
return visitor.visitWhileLoop(this, data)
|
||||||
}
|
}
|
||||||
@@ -44,4 +41,4 @@ class IrWhileLoopImpl(
|
|||||||
condition = condition.transform(transformer, data)
|
condition = condition.transform(transformer, data)
|
||||||
body = body?.transform(transformer, data)
|
body = body?.transform(transformer, data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user