JVM_IR: copy code from JvmDefaultParameterInjector to JvmTailrecLowering
Some weird edge case for inline classes wrapping primitives?
This commit is contained in:
+7
-1
@@ -8,14 +8,20 @@ package org.jetbrains.kotlin.backend.jvm.lower
|
||||
import org.jetbrains.kotlin.backend.common.lower.TailrecLowering
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmBackendContext
|
||||
import org.jetbrains.kotlin.backend.jvm.JvmLoweredStatementOrigin
|
||||
import org.jetbrains.kotlin.backend.jvm.ir.defaultValue
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.ir.expressions.IrExpression
|
||||
import org.jetbrains.kotlin.ir.expressions.IrFunctionReference
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
|
||||
class JvmTailrecLowering(context: JvmBackendContext) : TailrecLowering(context) {
|
||||
override fun useProperComputationOrderOfTailrecDefaultParameters(): Boolean =
|
||||
override val useProperComputationOrderOfTailrecDefaultParameters: Boolean =
|
||||
context.ir.context.configuration.languageVersionSettings.supportsFeature(LanguageFeature.ProperComputationOrderOfTailrecDefaultParameters)
|
||||
|
||||
override fun followFunctionReference(reference: IrFunctionReference): Boolean =
|
||||
reference.origin == JvmLoweredStatementOrigin.INLINE_LAMBDA
|
||||
|
||||
override fun nullConst(startOffset: Int, endOffset: Int, type: IrType): IrExpression =
|
||||
type.defaultValue(startOffset, endOffset, context as JvmBackendContext)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user