IR: IrFunction.name

This commit is contained in:
Dmitry Petrov
2018-05-07 15:03:30 +03:00
parent 729efaf912
commit f500329dac
5 changed files with 13 additions and 4 deletions
@@ -22,12 +22,14 @@ import org.jetbrains.kotlin.descriptors.Visibility
import org.jetbrains.kotlin.ir.expressions.IrBody import org.jetbrains.kotlin.ir.expressions.IrBody
import org.jetbrains.kotlin.ir.expressions.IrExpressionBody import org.jetbrains.kotlin.ir.expressions.IrExpressionBody
import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol import org.jetbrains.kotlin.ir.symbols.IrFunctionSymbol
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.KotlinType
interface IrFunction : IrDeclaration, IrTypeParametersContainer, IrSymbolOwner, IrDeclarationParent { interface IrFunction : IrDeclaration, IrTypeParametersContainer, IrSymbolOwner, IrDeclarationParent {
override val descriptor: FunctionDescriptor override val descriptor: FunctionDescriptor
override val symbol: IrFunctionSymbol override val symbol: IrFunctionSymbol
val name: Name
val visibility: Visibility val visibility: Visibility
val isInline: Boolean // NB: there's an inline constructor for Array and each primitive array class val isInline: Boolean // NB: there's an inline constructor for Array and each primitive array class
val isExternal: Boolean val isExternal: Boolean
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
interface IrSimpleFunction : IrFunction, IrSymbolDeclaration<IrSimpleFunctionSymbol> { interface IrSimpleFunction : IrFunction, IrSymbolDeclaration<IrSimpleFunctionSymbol> {
val name: Name
val modality: Modality val modality: Modality
val isTailrec: Boolean val isTailrec: Boolean
val isSuspend: Boolean val isSuspend: Boolean
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.ir.expressions.IrBody
import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol import org.jetbrains.kotlin.ir.symbols.IrConstructorSymbol
import org.jetbrains.kotlin.ir.symbols.impl.IrConstructorSymbolImpl import org.jetbrains.kotlin.ir.symbols.impl.IrConstructorSymbolImpl
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyExternal import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyExternal
import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.KotlinType
@@ -32,13 +33,17 @@ class IrConstructorImpl(
endOffset: Int, endOffset: Int,
origin: IrDeclarationOrigin, origin: IrDeclarationOrigin,
override val symbol: IrConstructorSymbol, override val symbol: IrConstructorSymbol,
name: Name,
visibility: Visibility, visibility: Visibility,
returnType: KotlinType, returnType: KotlinType,
isInline: Boolean, isInline: Boolean,
isExternal: Boolean, isExternal: Boolean,
override val isPrimary: Boolean override val isPrimary: Boolean
) : ) :
IrFunctionBase(startOffset, endOffset, origin, visibility, isInline, isExternal, returnType), IrFunctionBase(
startOffset, endOffset, origin, name,
visibility, isInline, isExternal, returnType
),
IrConstructor { IrConstructor {
constructor( constructor(
@@ -49,6 +54,7 @@ class IrConstructorImpl(
body: IrBody? = null body: IrBody? = null
) : this( ) : this(
startOffset, endOffset, origin, symbol, startOffset, endOffset, origin, symbol,
symbol.descriptor.name,
symbol.descriptor.visibility, symbol.descriptor.visibility,
symbol.descriptor.returnType, symbol.descriptor.returnType,
symbol.descriptor.isInline, symbol.descriptor.isInline,
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.ir.expressions.IrBody
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 org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.KotlinType
import org.jetbrains.kotlin.utils.SmartList import org.jetbrains.kotlin.utils.SmartList
@@ -32,6 +33,7 @@ abstract class IrFunctionBase(
startOffset: Int, startOffset: Int,
endOffset: Int, endOffset: Int,
origin: IrDeclarationOrigin, origin: IrDeclarationOrigin,
override val name: Name,
override val visibility: Visibility, override val visibility: Visibility,
override val isInline: Boolean, override val isInline: Boolean,
override val isExternal: Boolean, override val isExternal: Boolean,
@@ -34,7 +34,7 @@ class IrFunctionImpl(
endOffset: Int, endOffset: Int,
origin: IrDeclarationOrigin, origin: IrDeclarationOrigin,
override val symbol: IrSimpleFunctionSymbol, override val symbol: IrSimpleFunctionSymbol,
override val name: Name, name: Name,
visibility: Visibility, visibility: Visibility,
override val modality: Modality, override val modality: Modality,
returnType: KotlinType, returnType: KotlinType,
@@ -43,7 +43,7 @@ class IrFunctionImpl(
override val isTailrec: Boolean, override val isTailrec: Boolean,
override val isSuspend: Boolean override val isSuspend: Boolean
) : ) :
IrFunctionBase(startOffset, endOffset, origin, visibility, isInline, isExternal, returnType), IrFunctionBase(startOffset, endOffset, origin, name, visibility, isInline, isExternal, returnType),
IrSimpleFunction { IrSimpleFunction {
constructor( constructor(