Drop YIELD_IS_RESERVED diagnostic in 1.7.0 #KT-27750 Fixed

This commit is contained in:
Mikhail Glukhikh
2021-10-21 10:35:11 +03:00
committed by teamcity
parent 0739925869
commit 61e0375900
22 changed files with 348 additions and 12 deletions
@@ -1,4 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION -UNREACHABLE_CODE -UNUSED_VARIABLE
// !LANGUAGE: -YieldIsNoMoreReserved
// FILE: 1.kt
package p1.yield
+1
View File
@@ -1,4 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION -UNREACHABLE_CODE -UNUSED_VARIABLE
// !LANGUAGE: -YieldIsNoMoreReserved
// FILE: 1.kt
package p1.yield
@@ -1,4 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_ANONYMOUS_PARAMETER -UNUSED_EXPRESSION -UNREACHABLE_CODE -UNUSED_VARIABLE -WRONG_ANNOTATION_TARGET -UNUSED_LAMBDA_EXPRESSION
// !LANGUAGE: -YieldIsNoMoreReserved
// FILE: 1.kt
+1
View File
@@ -1,4 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_ANONYMOUS_PARAMETER -UNUSED_EXPRESSION -UNREACHABLE_CODE -UNUSED_VARIABLE -WRONG_ANNOTATION_TARGET -UNUSED_LAMBDA_EXPRESSION
// !LANGUAGE: -YieldIsNoMoreReserved
// FILE: 1.kt
@@ -0,0 +1,72 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_EXPRESSION -UNREACHABLE_CODE -UNUSED_VARIABLE
// !LANGUAGE: +YieldIsNoMoreReserved
// FILE: 1.kt
package p1.yield
import p1.yield.yield
import p1.yield.foo
val yield = 5
fun foo(){}
fun bar(yield: Int = 4) {}
fun yield(yield: Int) {
"$yield"
"${yield}"
yield
val foo = yield + yield
val foo2 = yield
bar(yield = 5)
yield(4)
yield {}
class yield<T: yield<T>>
return@yield
return@yield Unit
val foo5: yield<*>
}
fun yield(i: (Int) -> Unit) {}
// FILE: 2.kt
package p2.yield
import p2.yield.yield
import p2.yield.foo
val yield = 5
fun foo(){}
fun bar(yield: Int = 4) {}
fun yield(yield: Int) {
"$`yield`"
"${`yield`}"
`yield`
val foo = `yield` + `yield`
val foo2 = `yield`
bar(`yield` = 5)
`yield`(4)
`yield` {}
class `yield`<T: `yield`<T>>
return@`yield`
return@`yield` Unit
val foo5: `yield`<*>
}
fun yield(i: (Int) -> Unit) {}
@@ -0,0 +1,23 @@
package
package p1 {
package p1.yield {
public val yield: kotlin.Int = 5
public fun bar(/*0*/ yield: kotlin.Int = ...): kotlin.Unit
public fun foo(): kotlin.Unit
public fun yield(/*0*/ i: (kotlin.Int) -> kotlin.Unit): kotlin.Unit
public fun yield(/*0*/ yield: kotlin.Int): kotlin.Unit
}
}
package p2 {
package p2.yield {
public val yield: kotlin.Int = 5
public fun bar(/*0*/ yield: kotlin.Int = ...): kotlin.Unit
public fun foo(): kotlin.Unit
public fun yield(/*0*/ i: (kotlin.Int) -> kotlin.Unit): kotlin.Unit
public fun yield(/*0*/ yield: kotlin.Int): kotlin.Unit
}
}
@@ -0,0 +1,55 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_ANONYMOUS_PARAMETER -UNUSED_EXPRESSION -UNREACHABLE_CODE -UNUSED_VARIABLE -WRONG_ANNOTATION_TARGET -UNUSED_LAMBDA_EXPRESSION
// !LANGUAGE: +YieldIsNoMoreReserved
// FILE: 1.kt
annotation class yield
fun bar(p: Int) {
yield@ p
`yield`@ p
@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) {}
fun f2(foo: yield) {}
// FILE: 3.kt
package p4
typealias yield = Number
fun <yield: Number> f1() {}
fun <y: yield> f2() {}
// FILE: 4.kt
object X {
fun yield() {}
fun test3(yield: Int) {
X::yield
yield::toInt
}
}
@@ -0,0 +1,55 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_ANONYMOUS_PARAMETER -UNUSED_EXPRESSION -UNREACHABLE_CODE -UNUSED_VARIABLE -WRONG_ANNOTATION_TARGET -UNUSED_LAMBDA_EXPRESSION
// !LANGUAGE: +YieldIsNoMoreReserved
// FILE: 1.kt
annotation class yield
fun bar(p: Int) {
<!REDUNDANT_LABEL_WARNING!>yield@<!> p
<!REDUNDANT_LABEL_WARNING!>`yield`@<!> p
@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) {}
fun f2(foo: yield) {}
// FILE: 3.kt
package p4
typealias yield = Number
fun <yield: Number> f1() {}
fun <y: yield> f2() {}
// FILE: 4.kt
object X {
fun yield() {}
fun test3(yield: Int) {
X::yield
yield::toInt
}
}
@@ -0,0 +1,51 @@
package
public fun bar(/*0*/ p: kotlin.Int): kotlin.Unit
public fun </*0*/ T> listOf(/*0*/ vararg e: T /*kotlin.Array<out T>*/): kotlin.collections.List<T>
public operator fun </*0*/ T> kotlin.collections.List<T>.component1(): T
public object X {
private constructor X()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public final fun test3(/*0*/ yield: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final fun yield(): kotlin.Unit
}
public final annotation class yield : kotlin.Annotation {
public constructor yield()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
package p3 {
public fun f1(/*0*/ yield: kotlin.Int, /*1*/ foo: kotlin.Int = ...): kotlin.Unit
public fun f2(/*0*/ foo: p3.yield): kotlin.Unit
public final enum class yield : kotlin.Enum<p3.yield> {
enum entry yield
private constructor yield()
public final override /*1*/ /*fake_override*/ val name: kotlin.String
public final override /*1*/ /*fake_override*/ val ordinal: kotlin.Int
protected final override /*1*/ /*fake_override*/ fun clone(): kotlin.Any
public final override /*1*/ /*fake_override*/ fun compareTo(/*0*/ other: p3.yield): kotlin.Int
public final override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
protected/*protected and package*/ final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun finalize(): kotlin.Unit
public final override /*1*/ /*fake_override*/ /*isHiddenForResolutionEverywhereBesideSupercalls*/ fun getDeclaringClass(): java.lang.Class<p3.yield!>!
public final override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public final /*synthesized*/ fun valueOf(/*0*/ value: kotlin.String): p3.yield
public final /*synthesized*/ fun values(): kotlin.Array<p3.yield>
}
}
package p4 {
public fun </*0*/ yield : kotlin.Number> f1(): kotlin.Unit
public fun </*0*/ y : p4.yield /* = kotlin.Number */> f2(): kotlin.Unit
public typealias yield = kotlin.Number
}