[FIR] Set EnhancedNullability attribute for former flexible types
In some cases we transform flexible type into non-flexible during enhancement, but don't add `@EnhancedNullability` attribute to them, which breaks consistency with K1 on IR level This commit fixes it ^KT-65302
This commit is contained in:
committed by
Space Team
parent
da567e54b9
commit
bd66b96f8a
+9
-9
@@ -29,15 +29,15 @@ FILE fqName:<root> fileName:/delegatedImplementationOfJavaInterface.kt
|
||||
CALL 'public abstract fun returnNotNull (): @[EnhancedNullability] kotlin.String declared in <root>.J' type=@[EnhancedNullability] kotlin.String origin=null
|
||||
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j type:<root>.J visibility:private [final]' type=<root>.J origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.returnNotNull' type=<root>.Test origin=null
|
||||
FUN DELEGATED_MEMBER name:returnNullable visibility:public modality:OPEN <> ($this:<root>.Test) returnType:kotlin.String?
|
||||
FUN DELEGATED_MEMBER name:returnNullable visibility:public modality:OPEN <> ($this:<root>.Test) returnType:@[EnhancedNullability] kotlin.String?
|
||||
annotations:
|
||||
Nullable(value = <null>)
|
||||
overridden:
|
||||
public abstract fun returnNullable (): kotlin.String? declared in <root>.J
|
||||
public abstract fun returnNullable (): @[EnhancedNullability] kotlin.String? declared in <root>.J
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Test
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun returnNullable (): kotlin.String? declared in <root>.Test'
|
||||
CALL 'public abstract fun returnNullable (): kotlin.String? declared in <root>.J' type=kotlin.String? origin=null
|
||||
RETURN type=kotlin.Nothing from='public open fun returnNullable (): @[EnhancedNullability] kotlin.String? declared in <root>.Test'
|
||||
CALL 'public abstract fun returnNullable (): @[EnhancedNullability] kotlin.String? declared in <root>.J' type=@[EnhancedNullability] kotlin.String? origin=null
|
||||
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j type:<root>.J visibility:private [final]' type=<root>.J origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.returnNullable' type=<root>.Test origin=null
|
||||
FUN DELEGATED_MEMBER name:returnsFlexible visibility:public modality:OPEN <> ($this:<root>.Test) returnType:@[FlexibleNullability] kotlin.String?
|
||||
@@ -71,18 +71,18 @@ FILE fqName:<root> fileName:/delegatedImplementationOfJavaInterface.kt
|
||||
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j type:<root>.J visibility:private [final]' type=<root>.J origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.takeNotNull' type=<root>.Test origin=null
|
||||
x: GET_VAR 'x: @[EnhancedNullability] kotlin.String declared in <root>.Test.takeNotNull' type=@[EnhancedNullability] kotlin.String origin=null
|
||||
FUN DELEGATED_MEMBER name:takeNullable visibility:public modality:OPEN <> ($this:<root>.Test, x:kotlin.String?) returnType:kotlin.Unit
|
||||
FUN DELEGATED_MEMBER name:takeNullable visibility:public modality:OPEN <> ($this:<root>.Test, x:@[EnhancedNullability] kotlin.String?) returnType:kotlin.Unit
|
||||
overridden:
|
||||
public abstract fun takeNullable (x: kotlin.String?): kotlin.Unit declared in <root>.J
|
||||
public abstract fun takeNullable (x: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.J
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Test
|
||||
VALUE_PARAMETER name:x index:0 type:kotlin.String?
|
||||
VALUE_PARAMETER name:x index:0 type:@[EnhancedNullability] kotlin.String?
|
||||
annotations:
|
||||
Nullable(value = <null>)
|
||||
BLOCK_BODY
|
||||
CALL 'public abstract fun takeNullable (x: kotlin.String?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
|
||||
CALL 'public abstract fun takeNullable (x: @[EnhancedNullability] kotlin.String?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
|
||||
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j type:<root>.J visibility:private [final]' type=<root>.J origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Test declared in <root>.Test.takeNullable' type=<root>.Test origin=null
|
||||
x: GET_VAR 'x: kotlin.String? declared in <root>.Test.takeNullable' type=kotlin.String? origin=null
|
||||
x: GET_VAR 'x: @[EnhancedNullability] kotlin.String? declared in <root>.Test.takeNullable' type=@[EnhancedNullability] kotlin.String? origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.J
|
||||
|
||||
+2
-2
@@ -15,7 +15,7 @@ class Test : J {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
override fun returnNullable(): String? {
|
||||
override fun returnNullable(): @EnhancedNullability String? {
|
||||
return <this>.#j.returnNullable()
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ class Test : J {
|
||||
<this>.#j.takeNotNull(x = x)
|
||||
}
|
||||
|
||||
override fun takeNullable(@Nullable x: String?) {
|
||||
override fun takeNullable(@Nullable x: @EnhancedNullability String?) {
|
||||
<this>.#j.takeNullable(x = x)
|
||||
}
|
||||
|
||||
|
||||
+9
-8
@@ -26,10 +26,10 @@ class Test : J {
|
||||
override fun returnNotNull(): @EnhancedNullability String
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: Test#returnNullable(){}kotlin.String?
|
||||
// Public signature: /Test.returnNullable|-8543835017469041188[0]
|
||||
// Public signature debug description: returnNullable(){}kotlin.String?
|
||||
override fun returnNullable(): String?
|
||||
// Mangled name: Test#returnNullable(){}kotlin.String?{EnhancedNullability}
|
||||
// Public signature: /Test.returnNullable|-404622903433277680[0]
|
||||
// Public signature debug description: returnNullable(){}kotlin.String?{EnhancedNullability}
|
||||
override fun returnNullable(): @EnhancedNullability String?
|
||||
|
||||
// CHECK JVM_IR:
|
||||
// Mangled name: Test#returnsFlexible(){}kotlin.String?
|
||||
@@ -50,9 +50,10 @@ class Test : J {
|
||||
override fun takeNotNull(x: @EnhancedNullability String): Unit
|
||||
|
||||
// CHECK:
|
||||
// Mangled name: Test#takeNullable(kotlin.String?){}
|
||||
// Public signature: /Test.takeNullable|5724815424219841897[0]
|
||||
// Public signature debug description: takeNullable(kotlin.String?){}
|
||||
override fun takeNullable(x: String?): Unit
|
||||
// Mangled name: Test#takeNullable(kotlin.String?{EnhancedNullability}){}
|
||||
// Public signature: /Test.takeNullable|-558980523272297075[0]
|
||||
// Public signature debug description: takeNullable(kotlin.String?{EnhancedNullability}){}
|
||||
override fun takeNullable(x: @EnhancedNullability String?): Unit
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user