From f500329dac4d63b0eb45d879e091235a0a1a43e0 Mon Sep 17 00:00:00 2001 From: Dmitry Petrov Date: Mon, 7 May 2018 15:03:30 +0300 Subject: [PATCH] IR: IrFunction.name --- .../org/jetbrains/kotlin/ir/declarations/IrFunction.kt | 2 ++ .../jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt | 1 - .../kotlin/ir/declarations/impl/IrConstructorImpl.kt | 8 +++++++- .../kotlin/ir/declarations/impl/IrFunctionBase.kt | 2 ++ .../kotlin/ir/declarations/impl/IrFunctionImpl.kt | 4 ++-- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt index c32a5b79216..f9a916349df 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrFunction.kt @@ -22,12 +22,14 @@ import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol +import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.KotlinType interface IrFunction : IrDeclaration, IrTypeParametersContainer, IrSymbolOwner, IrDeclarationParent { override val descriptor: FunctionDescriptor override val symbol: IrFunctionSymbol + val name: Name val visibility: Visibility val isInline: Boolean // NB: there's an inline constructor for Array and each primitive array class val isExternal: Boolean diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt index d7a961756be..94f21224236 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/IrSimpleFunction.kt @@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol import org.jetbrains.kotlin.name.Name interface IrSimpleFunction : IrFunction, IrSymbolDeclaration { - val name: Name val modality: Modality val isTailrec: Boolean val isSuspend: Boolean diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt index 8ad13806499..f55bdd8772c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt @@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.symbols.impl.IrConstructorSymbolImpl import org.jetbrains.kotlin.ir.visitors.IrElementVisitor +import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyExternal import org.jetbrains.kotlin.types.KotlinType @@ -32,13 +33,17 @@ class IrConstructorImpl( endOffset: Int, origin: IrDeclarationOrigin, override val symbol: IrConstructorSymbol, + name: Name, visibility: Visibility, returnType: KotlinType, isInline: Boolean, isExternal: Boolean, override val isPrimary: Boolean ) : - IrFunctionBase(startOffset, endOffset, origin, visibility, isInline, isExternal, returnType), + IrFunctionBase( + startOffset, endOffset, origin, name, + visibility, isInline, isExternal, returnType + ), IrConstructor { constructor( @@ -49,6 +54,7 @@ class IrConstructorImpl( body: IrBody? = null ) : this( startOffset, endOffset, origin, symbol, + symbol.descriptor.name, symbol.descriptor.visibility, symbol.descriptor.returnType, symbol.descriptor.isInline, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionBase.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionBase.kt index 221400fe725..56c403a320a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionBase.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionBase.kt @@ -25,6 +25,7 @@ import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.util.transform import org.jetbrains.kotlin.ir.visitors.IrElementTransformer import org.jetbrains.kotlin.ir.visitors.IrElementVisitor +import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.utils.SmartList @@ -32,6 +33,7 @@ abstract class IrFunctionBase( startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, + override val name: Name, override val visibility: Visibility, override val isInline: Boolean, override val isExternal: Boolean, diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt index 2c62aee4854..fc2eadc515d 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt @@ -34,7 +34,7 @@ class IrFunctionImpl( endOffset: Int, origin: IrDeclarationOrigin, override val symbol: IrSimpleFunctionSymbol, - override val name: Name, + name: Name, visibility: Visibility, override val modality: Modality, returnType: KotlinType, @@ -43,7 +43,7 @@ class IrFunctionImpl( override val isTailrec: Boolean, override val isSuspend: Boolean ) : - IrFunctionBase(startOffset, endOffset, origin, visibility, isInline, isExternal, returnType), + IrFunctionBase(startOffset, endOffset, origin, name, visibility, isInline, isExternal, returnType), IrSimpleFunction { constructor(