K2: introduce custom Enum.entries migration checkers
Related to KT-56623, KT-56587 #KT-59344 Fixed
This commit is contained in:
committed by
Space Team
parent
e0d68fc93e
commit
3ff2c7d6f7
Vendored
-15
@@ -1,15 +0,0 @@
|
||||
// !LANGUAGE: -EnumEntries
|
||||
// WITH_STDLIB
|
||||
|
||||
enum class E {
|
||||
;
|
||||
|
||||
val entries: Int = 0
|
||||
}
|
||||
|
||||
fun test() {
|
||||
E::entries
|
||||
val ref = E::entries
|
||||
val refType: (E) -> Int = E::entries
|
||||
val refTypeWithAnyExpectedType: Any = E::entries
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -EnumEntries
|
||||
// WITH_STDLIB
|
||||
|
||||
|
||||
Vendored
-16
@@ -1,16 +0,0 @@
|
||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
// FIR_DUMP
|
||||
|
||||
enum class E {
|
||||
;
|
||||
|
||||
val entries: Int = 0
|
||||
}
|
||||
|
||||
fun test() {
|
||||
E::entries
|
||||
val ref = E::entries
|
||||
val refType: (E) -> Int = E::entries
|
||||
val refTypeWithAnyExpectedType: Any = E::entries
|
||||
}
|
||||
Vendored
+1
-1
@@ -1,4 +1,4 @@
|
||||
FILE: conflictingPropertyEntriesAndReferenceOn.fir.kt
|
||||
FILE: conflictingPropertyEntriesAndReferenceOn.kt
|
||||
public final enum class E : R|kotlin/Enum<E>| {
|
||||
private constructor(): R|E| {
|
||||
super<R|kotlin/Enum<E>|>()
|
||||
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
// FIR_DUMP
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ enum class A {
|
||||
val A.Companion.entries: Int get() = 0
|
||||
|
||||
fun test() {
|
||||
A.entries
|
||||
<!DEPRECATED_ACCESS_TO_ENUM_ENTRY_COMPANION_PROPERTY!>A.entries<!>
|
||||
A.Companion.entries
|
||||
|
||||
with(A) {
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ enum class A {
|
||||
val A.Companion.entries: Int get() = 0
|
||||
|
||||
fun test() {
|
||||
A.entries
|
||||
<!DEPRECATED_ACCESS_TO_ENUM_ENTRY_COMPANION_PROPERTY!>A.entries<!>
|
||||
A.Companion.entries
|
||||
|
||||
with(A) {
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ enum class A {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
A.entries
|
||||
<!DEPRECATED_ACCESS_TO_ENUM_ENTRY_COMPANION_PROPERTY!>A.entries<!>
|
||||
|
||||
with(A) {
|
||||
entries
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ enum class A {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
A.entries
|
||||
<!DEPRECATED_ACCESS_TO_ENUM_ENTRY_COMPANION_PROPERTY!>A.entries<!>
|
||||
|
||||
with(A) {
|
||||
entries
|
||||
|
||||
+1
-1
@@ -10,7 +10,7 @@ enum class A {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
A.entries
|
||||
<!DEPRECATED_ACCESS_TO_ENUM_ENTRY_COMPANION_PROPERTY!>A.entries<!>
|
||||
A.Companion.entries
|
||||
|
||||
with(A) {
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ enum class A {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
A.entries
|
||||
<!DEPRECATED_ACCESS_TO_ENUM_ENTRY_COMPANION_PROPERTY!>A.entries<!>
|
||||
A.Companion.entries
|
||||
|
||||
with(A) {
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ enum class A {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
A.entries
|
||||
<!DEPRECATED_ACCESS_TO_ENUM_ENTRY_COMPANION_PROPERTY!>A.entries<!>
|
||||
|
||||
with(A) {
|
||||
entries
|
||||
|
||||
Vendored
+1
-1
@@ -12,7 +12,7 @@ enum class A {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
A.entries
|
||||
<!DEPRECATED_ACCESS_TO_ENUM_ENTRY_COMPANION_PROPERTY!>A.entries<!>
|
||||
|
||||
with(A) {
|
||||
entries
|
||||
|
||||
+1
-1
@@ -12,6 +12,6 @@ enum class A {
|
||||
val <T> T.entries: Int get() = 0
|
||||
|
||||
fun test() {
|
||||
A.entries
|
||||
<!DEPRECATED_ACCESS_TO_ENUM_ENTRY_COMPANION_PROPERTY!>A.entries<!>
|
||||
A.Companion.entries
|
||||
}
|
||||
|
||||
+1
-1
@@ -13,6 +13,6 @@ enum class A {
|
||||
val <T> T.entries: Int get() = 0
|
||||
|
||||
fun test() {
|
||||
A.entries
|
||||
<!DEPRECATED_ACCESS_TO_ENUM_ENTRY_COMPANION_PROPERTY!>A.entries<!>
|
||||
A.Companion.entries
|
||||
}
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
FILE: Main.kt
|
||||
public final fun main(): R|kotlin/Unit| {
|
||||
R|kotlin/io/println|(Q|JavaEnum|.R|/JavaEnum.entries*s|)
|
||||
R|kotlin/io/println|(Q|JavaEnum01|.R|/JavaEnum01.entries*s|)
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
// FIR_DUMP
|
||||
// ISSUE: KT-56623
|
||||
|
||||
// FILE: JavaEnum.java
|
||||
public enum JavaEnum {
|
||||
public static String entries = "entries";
|
||||
}
|
||||
|
||||
// FILE: JavaEnum01.java
|
||||
|
||||
interface I01 {
|
||||
String entries = "entries";
|
||||
}
|
||||
|
||||
public enum JavaEnum01 implements I01 {
|
||||
}
|
||||
|
||||
// FILE: Main.kt
|
||||
fun main() {
|
||||
println(JavaEnum.entries)
|
||||
println(JavaEnum01.entries)
|
||||
}
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
// !LANGUAGE: -EnumEntries
|
||||
// WITH_STDLIB
|
||||
|
||||
// FILE: JEnumEntry.java
|
||||
|
||||
public enum JEnumEntry {
|
||||
entries;
|
||||
}
|
||||
|
||||
// FILE: JEnumStaticField.java
|
||||
|
||||
public enum JEnumStaticField {
|
||||
;
|
||||
|
||||
public static final int entries = 0;
|
||||
}
|
||||
|
||||
// FILE: JEnumField.java
|
||||
|
||||
public enum JEnumField {
|
||||
;
|
||||
|
||||
public final int entries = 0;
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
fun test() {
|
||||
JEnumEntry.entries
|
||||
JEnumStaticField.entries
|
||||
|
||||
JEnumField::entries
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: -EnumEntries
|
||||
// WITH_STDLIB
|
||||
|
||||
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
// FIR_DUMP
|
||||
|
||||
// FILE: JEnumEntry.java
|
||||
|
||||
public enum JEnumEntry {
|
||||
entries;
|
||||
}
|
||||
|
||||
// FILE: JEnumStaticField.java
|
||||
|
||||
public enum JEnumStaticField {
|
||||
;
|
||||
|
||||
public static final int entries = 0;
|
||||
}
|
||||
|
||||
// FILE: JEnumField.java
|
||||
|
||||
public enum JEnumField {
|
||||
;
|
||||
|
||||
public final int entries = 0;
|
||||
}
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
fun test(): String {
|
||||
val first = JEnumEntry.entries
|
||||
val second = JEnumStaticField.entries
|
||||
|
||||
val third = JEnumField::entries
|
||||
|
||||
return "$first$second$third"
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
// FIR_DUMP
|
||||
|
||||
Vendored
+2
-2
@@ -9,7 +9,7 @@ enum class E {
|
||||
;
|
||||
|
||||
fun foo() {
|
||||
entries
|
||||
<!DEPRECATED_ACCESS_TO_ENTRY_PROPERTY_FROM_ENUM!>entries<!>
|
||||
pckg.entries
|
||||
}
|
||||
}
|
||||
@@ -20,7 +20,7 @@ class A {
|
||||
|
||||
class B {
|
||||
fun foo() {
|
||||
entries
|
||||
<!DEPRECATED_ACCESS_TO_ENTRY_PROPERTY_FROM_ENUM!>entries<!>
|
||||
pckg.entries
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -10,7 +10,7 @@ enum class E {
|
||||
;
|
||||
|
||||
fun foo() {
|
||||
entries.length
|
||||
<!DEPRECATED_ACCESS_TO_ENTRY_PROPERTY_FROM_ENUM!>entries<!>.length
|
||||
pckg.entries.length
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,7 @@ class A {
|
||||
|
||||
class B {
|
||||
fun foo() {
|
||||
entries.length
|
||||
<!DEPRECATED_ACCESS_TO_ENTRY_PROPERTY_FROM_ENUM!>entries<!>.length
|
||||
pckg.entries.length
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
|
||||
enum class Some {}
|
||||
|
||||
val x = Some::entries
|
||||
@@ -0,0 +1,6 @@
|
||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
|
||||
enum class Some {}
|
||||
|
||||
val x = Some::<!DEPRECATED_ACCESS_TO_ENUM_ENTRY_PROPERTY_AS_REFERENCE!>entries<!>
|
||||
@@ -0,0 +1,46 @@
|
||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
// ISSUE: KT-56587
|
||||
|
||||
enum class E05 {
|
||||
;
|
||||
object entries
|
||||
}
|
||||
|
||||
fun test05() {
|
||||
println(<!DEPRECATED_ACCESS_TO_ENTRY_PROPERTY_FROM_ENUM!>E05.entries<!>)
|
||||
}
|
||||
|
||||
enum class E07(val entries: String) {
|
||||
;
|
||||
fun test() {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
|
||||
enum class E071 {
|
||||
;
|
||||
constructor(entries: String) {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
|
||||
enum class E09 {
|
||||
;
|
||||
val entries: String = "entries"
|
||||
fun test() {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
|
||||
interface I01 {
|
||||
val entries: String
|
||||
get() = "entries"
|
||||
}
|
||||
|
||||
enum class E10 : I01 {
|
||||
;
|
||||
fun test() {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
// !LANGUAGE: +EnumEntries -PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
// ISSUE: KT-56587
|
||||
|
||||
enum class E05 {
|
||||
;
|
||||
object entries
|
||||
}
|
||||
|
||||
fun test05() {
|
||||
println(E05.entries)
|
||||
}
|
||||
|
||||
enum class E07(val entries: String) {
|
||||
;
|
||||
fun test() {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
|
||||
enum class E071 {
|
||||
;
|
||||
constructor(entries: String) {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
|
||||
enum class E09 {
|
||||
;
|
||||
val entries: String = "entries"
|
||||
fun test() {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
|
||||
interface I01 {
|
||||
val entries: String
|
||||
get() = "entries"
|
||||
}
|
||||
|
||||
enum class E10 : I01 {
|
||||
;
|
||||
fun test() {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
+112
@@ -0,0 +1,112 @@
|
||||
FILE: toBeShadowedPrioritized.kt
|
||||
public final enum class E05 : R|kotlin/Enum<E05>| {
|
||||
private constructor(): R|E05| {
|
||||
super<R|kotlin/Enum<E05>|>()
|
||||
}
|
||||
|
||||
public final object entries : R|kotlin/Any| {
|
||||
private constructor(): R|E05.entries| {
|
||||
super<R|kotlin/Any|>()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final static fun values(): R|kotlin/Array<E05>| {
|
||||
}
|
||||
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|E05| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<E05>|
|
||||
public get(): R|kotlin/enums/EnumEntries<E05>|
|
||||
|
||||
}
|
||||
public final fun test05(): R|kotlin/Unit| {
|
||||
R|kotlin/io/println|(Q|E05|.R|/E05.entries*s|)
|
||||
}
|
||||
public final enum class E07 : R|kotlin/Enum<E07>| {
|
||||
private constructor(entries: R|kotlin/String|): R|E07| {
|
||||
super<R|kotlin/Enum<E07>|>()
|
||||
}
|
||||
|
||||
public final val entries: R|kotlin/String| = R|<local>/entries|
|
||||
public get(): R|kotlin/String|
|
||||
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
R|kotlin/io/println|(this@R|/E07|.R|/E07.entries|)
|
||||
}
|
||||
|
||||
public final static fun values(): R|kotlin/Array<E07>| {
|
||||
}
|
||||
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|E07| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<E07>|
|
||||
public get(): R|kotlin/enums/EnumEntries<E07>|
|
||||
|
||||
}
|
||||
public final enum class E071 : R|kotlin/Enum<E071>| {
|
||||
private constructor(entries: R|kotlin/String|): R|E071| {
|
||||
super<R|kotlin/Enum<E071>|>()
|
||||
R|kotlin/io/println|(R|<local>/entries|)
|
||||
}
|
||||
|
||||
public final static fun values(): R|kotlin/Array<E071>| {
|
||||
}
|
||||
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|E071| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<E071>|
|
||||
public get(): R|kotlin/enums/EnumEntries<E071>|
|
||||
|
||||
}
|
||||
public final enum class E09 : R|kotlin/Enum<E09>| {
|
||||
private constructor(): R|E09| {
|
||||
super<R|kotlin/Enum<E09>|>()
|
||||
}
|
||||
|
||||
public final val entries: R|kotlin/String| = String(entries)
|
||||
public get(): R|kotlin/String|
|
||||
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
R|kotlin/io/println|(this@R|/E09|.R|/E09.entries|)
|
||||
}
|
||||
|
||||
public final static fun values(): R|kotlin/Array<E09>| {
|
||||
}
|
||||
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|E09| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<E09>|
|
||||
public get(): R|kotlin/enums/EnumEntries<E09>|
|
||||
|
||||
}
|
||||
public abstract interface I01 : R|kotlin/Any| {
|
||||
public open val entries: R|kotlin/String|
|
||||
public get(): R|kotlin/String| {
|
||||
^ String(entries)
|
||||
}
|
||||
|
||||
}
|
||||
public final enum class E10 : R|I01|, R|kotlin/Enum<E10>| {
|
||||
private constructor(): R|E10| {
|
||||
super<R|kotlin/Enum<E10>|>()
|
||||
}
|
||||
|
||||
public final fun test(): R|kotlin/Unit| {
|
||||
R|kotlin/io/println|(this@R|/E10|.R|/I01.entries|)
|
||||
}
|
||||
|
||||
public final static fun values(): R|kotlin/Array<E10>| {
|
||||
}
|
||||
|
||||
public final static fun valueOf(value: R|kotlin/String|): R|E10| {
|
||||
}
|
||||
|
||||
public final static val entries: R|kotlin/enums/EnumEntries<E10>|
|
||||
public get(): R|kotlin/enums/EnumEntries<E10>|
|
||||
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE: +EnumEntries +PrioritizedEnumEntries
|
||||
// WITH_STDLIB
|
||||
// FIR_DUMP
|
||||
// ISSUE: KT-56587
|
||||
|
||||
enum class E05 {
|
||||
;
|
||||
object entries
|
||||
}
|
||||
|
||||
fun test05() {
|
||||
println(E05.entries)
|
||||
}
|
||||
|
||||
enum class E07(val entries: String) {
|
||||
;
|
||||
fun test() {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
|
||||
enum class E071 {
|
||||
;
|
||||
constructor(entries: String) {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
|
||||
enum class E09 {
|
||||
;
|
||||
val entries: String = "entries"
|
||||
fun test() {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
|
||||
interface I01 {
|
||||
val entries: String
|
||||
get() = "entries"
|
||||
}
|
||||
|
||||
enum class E10 : I01 {
|
||||
;
|
||||
fun test() {
|
||||
println(entries)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user