[FIR] Add CYCLIC_GENERIC_UPPER_BOUND check
This commit is contained in:
committed by
TeamCityServer
parent
03215f4e0a
commit
2b8c22c08a
@@ -1,7 +0,0 @@
|
||||
fun <T : F?, F : T?> foo1() {}
|
||||
|
||||
fun <T : F?, F : E, E : F?> foo2() {}
|
||||
|
||||
fun <T, F> foo3() where T : F?, F : T {}
|
||||
|
||||
fun <T, F, E> foo4() where T : F?, F : E, E : F? {}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
fun <<!CYCLIC_GENERIC_UPPER_BOUND!>T : F?<!>, <!CYCLIC_GENERIC_UPPER_BOUND!>F : T?<!>> foo1() {}
|
||||
|
||||
fun <T : F?, <!CYCLIC_GENERIC_UPPER_BOUND!>F : E<!>, <!CYCLIC_GENERIC_UPPER_BOUND!>E : F?<!>> foo2() {}
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
class A1<T : F?, F : T?>
|
||||
|
||||
class A2<T : F?, F : E, E : F?>
|
||||
|
||||
class A3<T, F> where T : F?, F : T?
|
||||
|
||||
class A4<T, F, E> where T : F?, F : E, E : F
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
class A1<T : <!CYCLIC_GENERIC_UPPER_BOUND!>F?<!>, F : <!CYCLIC_GENERIC_UPPER_BOUND!>T?<!>>
|
||||
|
||||
class A2<T : F?, F : <!CYCLIC_GENERIC_UPPER_BOUND!>E<!>, E : <!CYCLIC_GENERIC_UPPER_BOUND!>F?<!>>
|
||||
|
||||
Vendored
+1
-1
@@ -7,7 +7,7 @@ interface Foo<F> {
|
||||
|
||||
fun <S> select(vararg args: S): S = TODO()
|
||||
|
||||
class Bar<B : B> : Foo<B> {
|
||||
class Bar<B : <!CYCLIC_GENERIC_UPPER_BOUND!>B<!>> : Foo<B> {
|
||||
val v = <!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Any?")!>select(
|
||||
getSum(),
|
||||
42
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
|
||||
fun <T: T?> foo() {}
|
||||
val <T: T?> prop
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
|
||||
fun <<!CYCLIC_GENERIC_UPPER_BOUND!>T: T?<!>> foo() {}
|
||||
val <<!CYCLIC_GENERIC_UPPER_BOUND!>T: T?<!>> prop
|
||||
-1
@@ -1 +0,0 @@
|
||||
class MyClass<T: T?>
|
||||
@@ -1 +1,2 @@
|
||||
// FIR_IDENTICAL
|
||||
class MyClass<T: <!CYCLIC_GENERIC_UPPER_BOUND!>T?<!>>
|
||||
-1
@@ -1 +0,0 @@
|
||||
class MyClass<T: T>
|
||||
+1
@@ -1 +1,2 @@
|
||||
// FIR_IDENTICAL
|
||||
class MyClass<T: <!CYCLIC_GENERIC_UPPER_BOUND!>T<!>>
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED_OR_BE_ABSTRACT -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
|
||||
class My {
|
||||
fun <T: T?> foo() {}
|
||||
val <T: T?> prop: T
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED_OR_BE_ABSTRACT -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
|
||||
class My {
|
||||
fun <<!CYCLIC_GENERIC_UPPER_BOUND!>T: T?<!>> foo() {}
|
||||
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
|
||||
fun <T: T> foo() {}
|
||||
val <T: T?> prop: T
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -MUST_BE_INITIALIZED -TYPE_PARAMETER_OF_PROPERTY_NOT_USED_IN_RECEIVER
|
||||
fun <<!CYCLIC_GENERIC_UPPER_BOUND!>T: T<!>> foo() {}
|
||||
val <<!CYCLIC_GENERIC_UPPER_BOUND!>T: T?<!>> prop: T
|
||||
@@ -2,7 +2,7 @@
|
||||
// !LANGUAGE: +NewInference
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class Base<T : T> : HashSet<T>() {
|
||||
class Base<T : <!CYCLIC_GENERIC_UPPER_BOUND!>T<!>> : HashSet<T>() {
|
||||
fun foo() {
|
||||
super.remove(<!ARGUMENT_TYPE_MISMATCH!>""<!>)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user