K2: don't make T = Type! substitutions for constructors, including SAM
Without this commit we get some ABI changes and it looks bad. Related to KT-65596
This commit is contained in:
committed by
Space Team
parent
81414d758d
commit
78b6432ced
+6
-6
@@ -40,14 +40,14 @@ FILE fqName:<root> fileName:/constructorWithOwnTypeParametersCall.kt
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:testJava visibility:public modality:FINAL <> () returnType:<root>.J1.J2<@[FlexibleNullability] kotlin.Double?, @[FlexibleNullability] kotlin.Int?>
|
||||
FUN name:testJava visibility:public modality:FINAL <> () returnType:<root>.J1.J2<kotlin.Double, kotlin.Int>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun testJava (): <root>.J1.J2<@[FlexibleNullability] kotlin.Double?, @[FlexibleNullability] kotlin.Int?> declared in <root>'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> <Y2> () declared in <root>.J1.J2' type=<root>.J1.J2<@[FlexibleNullability] kotlin.Double?, @[FlexibleNullability] kotlin.Int?> origin=null
|
||||
<class: X2>: @[FlexibleNullability] kotlin.Double?
|
||||
RETURN type=kotlin.Nothing from='public final fun testJava (): <root>.J1.J2<kotlin.Double, kotlin.Int> declared in <root>'
|
||||
CONSTRUCTOR_CALL 'public constructor <init> <Y2> () declared in <root>.J1.J2' type=<root>.J1.J2<kotlin.Double, kotlin.Int> origin=null
|
||||
<class: X2>: kotlin.Double
|
||||
<Y2>: @[FlexibleNullability] kotlin.CharSequence?
|
||||
$outer: CONSTRUCTOR_CALL 'public constructor <init> <Y1> () declared in <root>.J1' type=<root>.J1<@[FlexibleNullability] kotlin.Int?> origin=null
|
||||
<class: X1>: @[FlexibleNullability] kotlin.Int?
|
||||
$outer: CONSTRUCTOR_CALL 'public constructor <init> <Y1> () declared in <root>.J1' type=<root>.J1<kotlin.Int> origin=null
|
||||
<class: X1>: kotlin.Int
|
||||
<Y1>: @[FlexibleNullability] kotlin.String?
|
||||
FUN name:testKotlin visibility:public modality:FINAL <> () returnType:<root>.K1.K2<kotlin.String, kotlin.Int>
|
||||
BLOCK_BODY
|
||||
|
||||
+3
-2
@@ -16,10 +16,11 @@ class K1<T1 : Number> {
|
||||
|
||||
}
|
||||
|
||||
fun testJava(): J2<@FlexibleNullability Double?, @FlexibleNullability Int?> {
|
||||
return J1<@FlexibleNullability Int?, @FlexibleNullability String?>().J2<@FlexibleNullability Double?, @FlexibleNullability CharSequence?>()
|
||||
fun testJava(): J2<Double, Int> {
|
||||
return J1<Int, @FlexibleNullability String?>().J2<Double, @FlexibleNullability CharSequence?>()
|
||||
}
|
||||
|
||||
fun testKotlin(): K2<String, Int> {
|
||||
return K1<Int>().K2<String>()
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -1,8 +1,8 @@
|
||||
FILE fqName:<root> fileName:/samConversionToGeneric.kt
|
||||
FUN name:test1 visibility:public modality:FINAL <> () returnType:<root>.J<@[FlexibleNullability] kotlin.String?>
|
||||
FUN name:test1 visibility:public modality:FINAL <> () returnType:<root>.J<kotlin.String>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test1 (): <root>.J<@[FlexibleNullability] kotlin.String?> declared in <root>'
|
||||
TYPE_OP type=<root>.J<@[FlexibleNullability] kotlin.String?> origin=SAM_CONVERSION typeOperand=<root>.J<@[FlexibleNullability] kotlin.String?>
|
||||
RETURN type=kotlin.Nothing from='public final fun test1 (): <root>.J<kotlin.String> declared in <root>'
|
||||
TYPE_OP type=<root>.J<kotlin.String> origin=SAM_CONVERSION typeOperand=<root>.J<kotlin.String>
|
||||
FUN_EXPR type=kotlin.Function1<@[FlexibleNullability] kotlin.String?, @[FlexibleNullability] kotlin.String?> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (x:@[FlexibleNullability] kotlin.String?) returnType:@[FlexibleNullability] kotlin.String?
|
||||
VALUE_PARAMETER name:x index:0 type:@[FlexibleNullability] kotlin.String?
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
fun test1(): J<@FlexibleNullability String?> {
|
||||
fun test1(): J<String> {
|
||||
return local fun <anonymous>(x: @FlexibleNullability String?): @FlexibleNullability String? {
|
||||
return x
|
||||
}
|
||||
/*-> J<@FlexibleNullability String?> */
|
||||
/*-> J<String> */
|
||||
}
|
||||
|
||||
fun test10(fn: Function1<Int, String>) {
|
||||
|
||||
Reference in New Issue
Block a user