Files
kotlin-fork/compiler/testData/diagnostics/tests/inline/capture.fir.kt
T
Dmitriy Novozhilov 32c3f85679 [FIR] Add inline checker for bodies of inline functions
This checker doesn't support `@PublishedAPI` yet, so some BB tests for it
 were muted. #KT-46270
2021-04-27 18:39:09 +03:00

52 lines
991 B
Kotlin
Vendored

// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -NON_LOCAL_RETURN_NOT_ALLOWED
infix fun Function1<Int, Unit>.noInlineExt(p: Int) {}
inline infix fun Function1<Int, Unit>.inlineExt2(p: Int) {
{
noInlineExt(11)
this.noInlineExt(11)
this noInlineExt 11
this
}()
}
inline fun Function1<Int, Unit>.inlineExt() {
{
inlineExt2(1)
this.inlineExt2(1)
this inlineExt2 1
this(11)
}()
}
inline fun inlineFunWithInvoke(s: (p: Int) -> Unit) {
{
s(11)
s.invoke(11)
s invoke 11
}()
}
inline fun inlineFunWithInvokeNonInline(noinline s: (p: Int) -> Unit) {
{
s(11)
s.invoke(11)
s invoke 11
}()
}
inline fun testExtension(s: (p: Int) -> Unit) {
{
s.inlineExt()
} ()
}
inline fun inlineFunWrongExtension(s: (p: Int) -> Unit) {
{
s.<!USAGE_IS_NOT_INLINABLE!>noInlineExt<!>(11)
} ()
}