IR: IrFunctionReference.fromSymbolDescriptor
This commit is contained in:
+39
-19
@@ -36,25 +36,6 @@ class IrFunctionReferenceImpl(
|
||||
override val reflectionTarget: IrFunctionSymbol? = symbol,
|
||||
override val origin: IrStatementOrigin? = null,
|
||||
) : IrFunctionReference(typeArgumentsCount) {
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
constructor(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
type: IrType,
|
||||
symbol: IrFunctionSymbol,
|
||||
typeArgumentsCount: Int,
|
||||
reflectionTarget: IrFunctionSymbol?,
|
||||
origin: IrStatementOrigin? = null
|
||||
) : this(
|
||||
startOffset, endOffset,
|
||||
type,
|
||||
symbol,
|
||||
typeArgumentsCount,
|
||||
symbol.descriptor.valueParameters.size,
|
||||
reflectionTarget,
|
||||
origin
|
||||
)
|
||||
|
||||
override val referencedName: Name
|
||||
get() = symbol.owner.name
|
||||
|
||||
@@ -92,4 +73,43 @@ class IrFunctionReferenceImpl(
|
||||
argumentsByParameterIndex[i] = irExpression?.transform(transformer, data)
|
||||
}
|
||||
}
|
||||
|
||||
companion object {
|
||||
@ObsoleteDescriptorBasedAPI
|
||||
fun fromSymbolDescriptor(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
type: IrType,
|
||||
symbol: IrFunctionSymbol,
|
||||
typeArgumentsCount: Int,
|
||||
reflectionTarget: IrFunctionSymbol?,
|
||||
origin: IrStatementOrigin? = null
|
||||
) = IrFunctionReferenceImpl(
|
||||
startOffset, endOffset,
|
||||
type,
|
||||
symbol,
|
||||
typeArgumentsCount,
|
||||
symbol.descriptor.valueParameters.size,
|
||||
reflectionTarget,
|
||||
origin
|
||||
)
|
||||
|
||||
fun fromSymbolOwner(
|
||||
startOffset: Int,
|
||||
endOffset: Int,
|
||||
type: IrType,
|
||||
symbol: IrFunctionSymbol,
|
||||
typeArgumentsCount: Int,
|
||||
reflectionTarget: IrFunctionSymbol?,
|
||||
origin: IrStatementOrigin? = null
|
||||
) = IrFunctionReferenceImpl(
|
||||
startOffset, endOffset,
|
||||
type,
|
||||
symbol,
|
||||
typeArgumentsCount,
|
||||
symbol.owner.valueParameters.size,
|
||||
reflectionTarget,
|
||||
origin
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user