[FIR] Fix type constraint for type parameter ^KT-45345 Fixed
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
||||
// !LANGUAGE: +NewInference
|
||||
|
||||
inline fun <T, reified S> foo(x: T?, y: T): T {
|
||||
if (x is S) return x
|
||||
if (x is S) return <!RETURN_TYPE_MISMATCH!>x<!>
|
||||
return y
|
||||
}
|
||||
|
||||
+18
@@ -67,6 +67,24 @@ fun kt4565_2(a: SomeClass?) {
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <reified T : SomeClass> kt45345(a: SomeClass?) {
|
||||
if (a?.data is T) {
|
||||
a.data
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <reified T : U, U : SomeClass> kt45345_2(a: SomeClass?) {
|
||||
if (a?.data is T) {
|
||||
a.data
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <reified T : U, U : SomeClass?> kt45345_3(a: SomeClass?) {
|
||||
if (a?.data is T) {
|
||||
a<!UNSAFE_CALL!>.<!>data
|
||||
}
|
||||
}
|
||||
|
||||
class A(val y: Int)
|
||||
|
||||
fun kt7491_1() {
|
||||
|
||||
+18
@@ -67,6 +67,24 @@ fun kt4565_2(a: SomeClass?) {
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <reified T : SomeClass> kt45345(a: SomeClass?) {
|
||||
if (a?.data is T) {
|
||||
<!DEBUG_INFO_SMARTCAST!>a<!>.data
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <reified T : U, U : SomeClass> kt45345_2(a: SomeClass?) {
|
||||
if (a?.data is T) {
|
||||
<!DEBUG_INFO_SMARTCAST!>a<!>.data
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <reified T : U, U : SomeClass?> kt45345_3(a: SomeClass?) {
|
||||
if (a?.data is T) {
|
||||
a<!UNSAFE_CALL!>.<!>data
|
||||
}
|
||||
}
|
||||
|
||||
class A(val y: Int)
|
||||
|
||||
fun kt7491_1() {
|
||||
|
||||
+3
@@ -10,6 +10,9 @@ public fun kt11313(/*0*/ arg: HttpExchange?): kotlin.Unit
|
||||
public fun kt1635(/*0*/ s: kotlin.String?): kotlin.Unit
|
||||
public fun kt2127(): kotlin.Unit
|
||||
public fun kt3356(/*0*/ s: kotlin.String?): kotlin.Int
|
||||
public inline fun </*0*/ reified T : SomeClass> kt45345(/*0*/ a: SomeClass?): kotlin.Unit
|
||||
public inline fun </*0*/ reified T : U, /*1*/ U : SomeClass> kt45345_2(/*0*/ a: SomeClass?): kotlin.Unit
|
||||
public inline fun </*0*/ reified T : U, /*1*/ U : SomeClass?> kt45345_3(/*0*/ a: SomeClass?): kotlin.Unit
|
||||
public fun kt4565_1(/*0*/ a: SomeClass?): kotlin.Unit
|
||||
public fun kt4565_2(/*0*/ a: SomeClass?): kotlin.Unit
|
||||
public fun kt6840_1(/*0*/ s: kotlin.String?): kotlin.Unit
|
||||
|
||||
Reference in New Issue
Block a user