Support parenthesized, typed and labeled expressions
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE
|
||||
|
||||
inline fun foo(bar1: (String.() -> Int) -> Int, bar2: (()->Int) -> Int) {
|
||||
bar1 @label {
|
||||
this@label.length
|
||||
}
|
||||
|
||||
bar1 {
|
||||
this.length
|
||||
}
|
||||
//unmute after KT-4247 fix
|
||||
//bar1 {
|
||||
// this@bar1.length
|
||||
//}
|
||||
|
||||
bar2 @l {
|
||||
11
|
||||
}
|
||||
|
||||
bar2 {
|
||||
12
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
inline fun foo2(bar1: (String.() -> Int) -> Int) {
|
||||
@l1 <!USAGE_IS_NOT_INLINABLE!>bar1<!>
|
||||
|
||||
@l2 bar1 {
|
||||
11
|
||||
}
|
||||
|
||||
(@l3 bar1) {
|
||||
11
|
||||
}
|
||||
|
||||
(@l5 (@l4 bar1)) {
|
||||
11
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
inline fun inlineFunWithInvoke(s: (p: Int) -> Unit) {
|
||||
(s)(11)
|
||||
(s).invoke(11)
|
||||
(s) invoke 11
|
||||
(<!USAGE_IS_NOT_INLINABLE!>s<!>)
|
||||
}
|
||||
|
||||
inline fun Function1<Int, Unit>.inlineExt() {
|
||||
(this).invoke(11)
|
||||
(this) invoke 11
|
||||
(this)(11)
|
||||
(<!USAGE_IS_NOT_INLINABLE!>this<!>)
|
||||
}
|
||||
|
||||
inline fun inlineFunWithInvoke2(s: (p: Int) -> Unit) {
|
||||
(((s)))(11)
|
||||
(((s))).invoke(11)
|
||||
(((s))) invoke 11
|
||||
(((<!USAGE_IS_NOT_INLINABLE!>s<!>)))
|
||||
}
|
||||
|
||||
inline fun propagation(s: (p: Int) -> Unit) {
|
||||
inlineFunWithInvoke((@label (s: (p: Int) -> Unit)))
|
||||
inlineFunWithInvoke((@label2 @label (s: (p: Int) -> Unit)))
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
inline fun inlineFunWithInvoke(s: (p: Int) -> Unit) {
|
||||
(s: (p: Int) -> Unit)(11)
|
||||
(s: (p: Int) -> Unit).invoke(11)
|
||||
(s: (p: Int) -> Unit) invoke 11
|
||||
(<!USAGE_IS_NOT_INLINABLE!>s<!>)
|
||||
}
|
||||
|
||||
inline fun Function1<Int, Unit>.inlineExt() {
|
||||
(this: Function1<Int, Unit>).invoke(11)
|
||||
(this: Function1<Int, Unit>) invoke 11
|
||||
(this: Function1<Int, Unit>)(11)
|
||||
(<!USAGE_IS_NOT_INLINABLE!>this<!>: Function1<Int, Unit>)
|
||||
}
|
||||
|
||||
inline fun inlineFunWithInvoke2(s: (p: Int) -> Unit) {
|
||||
(((s: (p: Int) -> Unit)))(11)
|
||||
(((s: (p: Int) -> Unit): (p: Int) -> Unit): (p: Int) -> Unit)(11)
|
||||
(((s: (p: Int) -> Unit): (p: Int) -> Unit): (p: Int) -> Unit).invoke(11)
|
||||
(((s: (p: Int) -> Unit): (p: Int) -> Unit): (p: Int) -> Unit) invoke 11
|
||||
(((<!USAGE_IS_NOT_INLINABLE!>s<!>: (p: Int) -> Unit)))
|
||||
}
|
||||
Reference in New Issue
Block a user