32c3f85679
This checker doesn't support `@PublishedAPI` yet, so some BB tests for it were muted. #KT-46270
39 lines
1.4 KiB
Kotlin
Vendored
39 lines
1.4 KiB
Kotlin
Vendored
// FIR_IDENTICAL
|
|
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -NON_LOCAL_RETURN_NOT_ALLOWED
|
|
|
|
inline fun inlineFunWithInvoke(s: (p: Int) -> Unit, ext: Int.(p: Int) -> Unit) {
|
|
subInline(s, ext)
|
|
subNoInline(<!USAGE_IS_NOT_INLINABLE!>s<!>, <!USAGE_IS_NOT_INLINABLE!>ext<!>)
|
|
}
|
|
|
|
inline fun inlineFunWithInvokeClosure(s: (p: Int) -> Unit, ext: Int.(p: Int) -> Unit) {
|
|
subInline({p: Int -> s(p)}, { p -> this.ext(p)})
|
|
subNoInline({p: Int -> s(p)}, { p -> this.ext(p)})
|
|
}
|
|
|
|
//No inline
|
|
inline fun inlineFunWithInvokeNonInline(noinline s: (p: Int) -> Unit, noinline ext: Int.(p: Int) -> Unit) {
|
|
subInline(s, ext)
|
|
subNoInline(s, ext)
|
|
}
|
|
|
|
inline fun inlineFunWithInvokeClosureNoinline(noinline s: (p: Int) -> Unit, noinline ext: Int.(p: Int) -> Unit) {
|
|
subInline({p: Int -> s(p)}, { p -> this.ext(p)})
|
|
subNoInline({p: Int -> s(p)}, { p -> this.ext(p)})
|
|
}
|
|
|
|
//ext function
|
|
inline fun Function1<Int, Unit>.inlineExt(ext: Int.(p: Int) -> Unit) {
|
|
subInline(this, ext)
|
|
subNoInline(this, <!USAGE_IS_NOT_INLINABLE!>ext<!>)
|
|
}
|
|
|
|
inline fun Function1<Int, Unit>.inlineExtWithClosure(ext: Int.(p: Int) -> Unit) {
|
|
subInline({p: Int -> this(p)}, { p -> this.ext(p)})
|
|
subNoInline({p: Int -> this(p)}, { p -> this.ext(p)})
|
|
}
|
|
|
|
inline fun subInline(s: (p: Int) -> Unit, ext: Int.(p: Int) -> Unit) {}
|
|
|
|
fun subNoInline(s: (p: Int) -> Unit, ext: Int.(p: Int) -> Unit) {}
|