blob: cd31aff4f3b18d3db6c293faa7233bada50d2c59 [file]
// LL_FIR_DIVERGENCE
// FIR checkers don't raise backend's INLINE_CALL_CYCLE diagnostic.
// LL_FIR_DIVERGENCE
// ISSUE: KT-82017
// RUN_PIPELINE_TILL: CODEGEN
// LANGUAGE: -IrIntraModuleInlinerBeforeKlibSerialization -IrCrossModuleInlinerBeforeKlibSerialization
// DIAGNOSTICS: -NOTHING_TO_INLINE
// LANGUAGE: -ForbidOverriddenDefaultParametersInInline
// TARGET_BACKEND: NATIVE, JS_IR, WASM
// ^^^ K/JVM legitimately raises not a warning, but error `NOT_YET_SUPPORTED_IN_INLINE`, irrelevant to ForbidOverriddenDefaultParametersInInline setting
interface I {
abstract fun foo(a: Int = 42): Int
}
class A(): I {
inline override <!OVERRIDE_BY_INLINE!>fun foo(<!NOT_YET_SUPPORTED_IN_INLINE!>a: Int<!>): Int<!> = -42
}
fun bar() = A().foo()
/* GENERATED_FIR_TAGS: classDeclaration, functionDeclaration, inline, integerLiteral, interfaceDeclaration, override,
primaryConstructor */