[FIR] Add FINAL_UPPER_BOUND checker
This commit is contained in:
+18
-18
@@ -10,9 +10,9 @@ data class Message4(val x: Int)
|
||||
interface Manager<T> {}
|
||||
|
||||
object MessageManager1 : Manager<Message1> {
|
||||
fun <T : Message1> execute1(task: Task<T>) {}
|
||||
fun <T : Int> execute2(task: T) {}
|
||||
fun <T : Message2> execute3() {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Message1<!>> execute1(task: Task<T>) {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Int<!>> execute2(task: T) {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Message2<!>> execute3() {}
|
||||
}
|
||||
|
||||
object MessageManager2 : Manager<Message3> {
|
||||
@@ -20,13 +20,13 @@ object MessageManager2 : Manager<Message3> {
|
||||
}
|
||||
|
||||
object MessageManager3 : Manager<Message4> {
|
||||
fun <T : Message4> execute5() {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Message4<!>> execute5() {}
|
||||
}
|
||||
|
||||
class MessageManager4 : Manager<Message1> {
|
||||
fun <T : Message1> execute1(task: Task<T>) {}
|
||||
fun <T : Int> execute2(task: T) {}
|
||||
fun <T : Message2> execute3() {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Message1<!>> execute1(task: Task<T>) {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Int<!>> execute2(task: T) {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Message2<!>> execute3() {}
|
||||
}
|
||||
|
||||
class MessageManager5 : Manager<Message3> {
|
||||
@@ -34,17 +34,17 @@ class MessageManager5 : Manager<Message3> {
|
||||
}
|
||||
|
||||
class MessageManager6 : Manager<Message4> {
|
||||
fun <T : Message4> execute5() {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Message4<!>> execute5() {}
|
||||
}
|
||||
|
||||
interface MessageManager7 : Manager<Message4> {
|
||||
fun <T : Message4> execute5() {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Message4<!>> execute5() {}
|
||||
}
|
||||
|
||||
interface MessageManager8 : Manager<Message1> {
|
||||
fun <T : Message1> execute1(task: Task<T>) {}
|
||||
fun <T : Int> execute2(task: T) {}
|
||||
fun <T : Message2> execute3() {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Message1<!>> execute1(task: Task<T>) {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Int<!>> execute2(task: T) {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Message2<!>> execute3() {}
|
||||
}
|
||||
|
||||
interface MessageManager9 : Manager<Message3> {
|
||||
@@ -52,7 +52,7 @@ interface MessageManager9 : Manager<Message3> {
|
||||
}
|
||||
|
||||
object MessageManager10 : <!UNRESOLVED_REFERENCE!>Message5<Int><!>() {
|
||||
fun <T : Int> execute() {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Int<!>> execute() {}
|
||||
}
|
||||
|
||||
class MessageManager11<A> : <!UNRESOLVED_REFERENCE!>Message5<<!UNRESOLVED_REFERENCE!>Message5<A><!>><!>() {
|
||||
@@ -60,7 +60,7 @@ class MessageManager11<A> : <!UNRESOLVED_REFERENCE!>Message5<<!UNRESOLVED_REFERE
|
||||
}
|
||||
|
||||
data class MessageManager12(val x: Int) : <!UNRESOLVED_REFERENCE!>Message5<Message2><!>() {
|
||||
fun <T : Message2> execute() {}
|
||||
fun <T : <!FINAL_UPPER_BOUND!>Message2<!>> execute() {}
|
||||
}
|
||||
|
||||
sealed class MessageManager13<A> : <!UNRESOLVED_REFERENCE!>Message5<A><!>() {
|
||||
@@ -68,15 +68,15 @@ sealed class MessageManager13<A> : <!UNRESOLVED_REFERENCE!>Message5<A><!>() {
|
||||
}
|
||||
|
||||
class MessageManager14 : Manager<Message2> {
|
||||
val <T : Message2> T.x get() = 10
|
||||
var <T : Message2> T.y
|
||||
val <T : <!FINAL_UPPER_BOUND!>Message2<!>> T.x get() = 10
|
||||
var <T : <!FINAL_UPPER_BOUND!>Message2<!>> T.y
|
||||
get() = 10
|
||||
set(value) {}
|
||||
}
|
||||
|
||||
object MessageManager15 : Manager<Int> {
|
||||
val <T : Int> T.x get() = 10
|
||||
var <T : Int> T.y
|
||||
val <T : <!FINAL_UPPER_BOUND!>Int<!>> T.x get() = 10
|
||||
var <T : <!FINAL_UPPER_BOUND!>Int<!>> T.y
|
||||
get() = 10
|
||||
set(value) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user