Do not generate interface delegation for default parameter stubs

This commit is contained in:
Georgy Bronnikov
2018-12-12 20:26:30 +03:00
parent c924a6efe8
commit 3b16fa6af9
6 changed files with 10 additions and 15 deletions
@@ -69,7 +69,7 @@ open class DefaultArgumentStubGenerator constructor(val context: CommonBackendCo
}
val newIrFunction =
irFunction.generateDefaultsFunction(context, DECLARATION_ORIGIN_FUNCTION_FOR_DEFAULT_PARAMETER, skipInlineMethods)
irFunction.generateDefaultsFunction(context, IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER, skipInlineMethods)
log { "$irFunction -> $newIrFunction" }
val builder = context.createIrBuilder(newIrFunction.symbol)
@@ -273,7 +273,7 @@ open class DefaultParameterInjector constructor(
val keyFunction = declaration.findSuperMethodWithDefaultArguments()!!
val realFunction =
keyFunction.generateDefaultsFunction(context, DECLARATION_ORIGIN_FUNCTION_FOR_DEFAULT_PARAMETER, skipInline)
keyFunction.generateDefaultsFunction(context, IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER, skipInline)
log { "$declaration -> $realFunction" }
val maskValues = Array((declaration.valueParameters.size + 31) / 32) { 0 }
@@ -403,7 +403,7 @@ private fun IrFunction.generateDefaultsFunctionImpl(
val baseFun = baseFunSymbol.owner
if (baseFun.needsDefaultArgumentsLowering(skipInlineMethods)) {
val baseOrigin = if (baseFun.valueParameters.any { it.defaultValue != null }) {
DECLARATION_ORIGIN_FUNCTION_FOR_DEFAULT_PARAMETER
IrDeclarationOrigin.FUNCTION_FOR_DEFAULT_PARAMETER
} else {
IrDeclarationOrigin.FAKE_OVERRIDE
}
@@ -447,7 +447,7 @@ private fun buildFunctionDeclaration(irFunction: IrFunction, origin: IrDeclarati
IrSimpleFunctionSymbolImpl(descriptor),
name,
irFunction.visibility,
if (irFunction.modality === Modality.ABSTRACT) Modality.OPEN else irFunction.modality,
Modality.FINAL,
irFunction.returnType,
irFunction.isInline,
false,
@@ -471,9 +471,6 @@ private fun IrFunction.generateDefaultsFunction(
generateDefaultsFunctionImpl(context, origin, skipInlineMethods)
}
object DECLARATION_ORIGIN_FUNCTION_FOR_DEFAULT_PARAMETER :
IrDeclarationOriginImpl("DEFAULT_PARAMETER_EXTENT")
private fun IrFunction.valueParameter(index: Int, name: Name, type: IrType): IrValueParameter {
val parameterDescriptor = WrappedValueParameterDescriptor()