Reserve yield if it isn't function call.

This commit is contained in:
Stanislav Erokhin
2017-02-10 20:21:52 +03:00
parent 9eae929084
commit 3efda0e45a
24 changed files with 466 additions and 3 deletions
+54
View File
@@ -0,0 +1,54 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION -UNREACHABLE_CODE -UNUSED_VARIABLE -WRONG_ANNOTATION_TARGET -UNUSED_LAMBDA_EXPRESSION
// FILE: 1.kt
annotation class yield
fun bar(p: Int) {
<!YIELD_IS_RESERVED!>yield<!>@ p
`yield`@ p
@<!YIELD_IS_RESERVED!>yield<!>() p
@`yield`() p
for (yield in 1..5) {
}
{ yield: Int -> }
val (yield) = listOf(4)
}
fun <T> listOf(vararg e: T): List<T> = null!!
operator fun <T> List<T>.component1() = get(0)
// FILE: 2.kt
package p3
enum class yield {
yield
}
fun f1(yield: Int, foo: Int = <!YIELD_IS_RESERVED!>yield<!>) {}
fun f2(foo: <!YIELD_IS_RESERVED!>yield<!>) {}
// FILE: 3.kt
package p4
typealias yield = Number
fun <yield: Number> f1() {}
fun <y: <!YIELD_IS_RESERVED!>yield<!>> f2() {}
// FILE: 4.kt
object X {
fun yield() {}
fun test3(yield: Int) {
X::<!YIELD_IS_RESERVED!>yield<!>
<!YIELD_IS_RESERVED!>yield<!>::toInt
}
}