FIR2IR: add implicit NOT_NULL cast if needed
This commit is contained in:
committed by
Mikhail Glukhikh
parent
eeda48e63e
commit
46cc01602e
+18
-14
@@ -44,13 +44,15 @@ FILE fqName:<root> fileName:/nullCheckOnGenericLambdaReturn.kt
|
||||
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test2 (): kotlin.String declared in <root>'
|
||||
CALL 'public final fun checkT <T> (fn: kotlin.Function0<T of <root>.checkT>): T of <root>.checkT declared in <root>' type=kotlin.String origin=null
|
||||
<T>: kotlin.String
|
||||
fn: FUN_EXPR type=kotlin.Function0<kotlin.String> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.test2'
|
||||
CALL 'public open fun nnFoo (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public final fun checkT <T> (fn: kotlin.Function0<T of <root>.checkT>): T of <root>.checkT declared in <root>' type=kotlin.String origin=null
|
||||
<T>: kotlin.String
|
||||
fn: FUN_EXPR type=kotlin.Function0<kotlin.String> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.test2'
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun nnFoo (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
FUN name:test3 visibility:public modality:FINAL <> () returnType:kotlin.String?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test3 (): kotlin.String? declared in <root>'
|
||||
@@ -64,10 +66,12 @@ FILE fqName:<root> fileName:/nullCheckOnGenericLambdaReturn.kt
|
||||
FUN name:test4 visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test4 (): kotlin.String declared in <root>'
|
||||
CALL 'public final fun checkTAny <T> (fn: kotlin.Function0<T of <root>.checkTAny>): T of <root>.checkTAny declared in <root>' type=kotlin.String origin=null
|
||||
<T>: kotlin.String
|
||||
fn: FUN_EXPR type=kotlin.Function0<kotlin.String> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.test4'
|
||||
CALL 'public open fun nnFoo (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public final fun checkTAny <T> (fn: kotlin.Function0<T of <root>.checkTAny>): T of <root>.checkTAny declared in <root>' type=kotlin.String origin=null
|
||||
<T>: kotlin.String
|
||||
fn: FUN_EXPR type=kotlin.Function0<kotlin.String> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.test4'
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun nnFoo (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
|
||||
@@ -85,4 +85,5 @@ FILE fqName:<root> fileName:/nullCheckOnLambdaReturn.kt
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Any? declared in <root>.test6'
|
||||
CALL 'public open fun nnFoo (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun nnFoo (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
|
||||
+4
-3
@@ -9,6 +9,7 @@ FILE fqName:<root> fileName:/typeParametersInImplicitCast.kt
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.collections.List<kotlin.Any?>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.collections.List<kotlin.Any?> declared in <root>.problematic'
|
||||
CALL 'public/*package*/ open fun id <T> (v: kotlin.collections.List<T of <root>.ListId.id?>?): kotlin.collections.List<T of <root>.ListId.id?> declared in <root>.ListId' type=kotlin.collections.List<kotlin.Any?> origin=null
|
||||
<T>: kotlin.Any?
|
||||
v: ERROR_CALL 'Unresolved reference: <Unresolved name: it>#' type=IrErrorType
|
||||
TYPE_OP type=kotlin.collections.List<kotlin.Any?> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<kotlin.Any?>
|
||||
CALL 'public/*package*/ open fun id <T> (v: kotlin.collections.List<T of <root>.ListId.id?>?): kotlin.collections.List<T of <root>.ListId.id?> declared in <root>.ListId' type=kotlin.collections.List<kotlin.Any?> origin=null
|
||||
<T>: kotlin.Any?
|
||||
v: ERROR_CALL 'Unresolved reference: <Unresolved name: it>#' type=IrErrorType
|
||||
|
||||
@@ -5,19 +5,23 @@ FILE fqName:<root> fileName:/enhancedNullability.kt
|
||||
FUN name:testUse visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun use (s: kotlin.String): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||
s: CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
s: TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
FUN name:testLocalVal visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||
BLOCK_BODY
|
||||
VAR name:local type:kotlin.String [val]
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
FUN name:testReturnValue visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun testReturnValue (): kotlin.String declared in <root>'
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
PROPERTY name:testGlobalVal visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:testGlobalVal type:kotlin.String visibility:private [final,static]
|
||||
EXPRESSION_BODY
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-testGlobalVal> visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
correspondingProperty: PROPERTY name:testGlobalVal visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
@@ -28,13 +32,15 @@ FILE fqName:<root> fileName:/enhancedNullability.kt
|
||||
correspondingProperty: PROPERTY name:testGlobalValGetter visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-testGlobalValGetter> (): kotlin.String declared in <root>'
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
FUN name:testJUse visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||
BLOCK_BODY
|
||||
CALL 'public open fun use (s: kotlin.String): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
|
||||
s: CALL 'public open fun nullString (): kotlin.String? declared in <root>.J' type=kotlin.String? origin=null
|
||||
CALL 'public open fun use (s: kotlin.String): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
|
||||
s: CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
s: TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
FUN name:testLocalVarUse visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||
BLOCK_BODY
|
||||
VAR name:ns type:kotlin.String? [val]
|
||||
@@ -42,6 +48,8 @@ FILE fqName:<root> fileName:/enhancedNullability.kt
|
||||
CALL 'public open fun use (s: kotlin.String): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
|
||||
s: GET_VAR 'val ns: kotlin.String? [val] declared in <root>.testLocalVarUse' type=kotlin.String? origin=null
|
||||
VAR name:nns type:kotlin.String [val]
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
CALL 'public open fun use (s: kotlin.String): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
|
||||
s: GET_VAR 'val nns: kotlin.String [val] declared in <root>.testLocalVarUse' type=kotlin.String origin=null
|
||||
s: TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
GET_VAR 'val nns: kotlin.String [val] declared in <root>.testLocalVarUse' type=kotlin.String origin=null
|
||||
|
||||
Vendored
+2
-1
@@ -118,7 +118,8 @@ FILE fqName:<root> fileName:/enhancedNullabilityInDestructuringAssignment.kt
|
||||
FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Unit
|
||||
BLOCK_BODY
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:<root>.P [val]
|
||||
CALL 'public open fun notNullP (): <root>.P declared in <root>.J' type=<root>.P origin=null
|
||||
TYPE_OP type=<root>.P origin=IMPLICIT_NOTNULL typeOperand=<root>.P
|
||||
CALL 'public open fun notNullP (): <root>.P declared in <root>.J' type=<root>.P origin=null
|
||||
VAR name:x type:kotlin.Int [val]
|
||||
CALL 'public final fun component1 (): kotlin.Int [operator] declared in <root>.P' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'val tmp_0: <root>.P [val] declared in <root>.test1' type=<root>.P origin=null
|
||||
|
||||
+2
-1
@@ -15,4 +15,5 @@ FILE fqName:<root> fileName:/nnStringVsT.kt
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.testNoNullCheck'
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
|
||||
Vendored
+2
-1
@@ -15,4 +15,5 @@ FILE fqName:<root> fileName:/nnStringVsTAny.kt
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.testNoNullCheck'
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
|
||||
Vendored
+2
-1
@@ -18,4 +18,5 @@ FILE fqName:<root> fileName:/nnStringVsTConstrained.kt
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.testWithNullCheck'
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
|
||||
Vendored
+2
-1
@@ -18,4 +18,5 @@ FILE fqName:<root> fileName:/nnStringVsTXArray.kt
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:java.io.Serializable
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): java.io.Serializable declared in <root>.testWithNullCheck'
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
|
||||
Vendored
+2
-1
@@ -17,4 +17,5 @@ FILE fqName:<root> fileName:/nnStringVsTXString.kt
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.String declared in <root>.testWithNullCheck'
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun notNullString (): kotlin.String declared in <root>.J' type=kotlin.String origin=null
|
||||
|
||||
Reference in New Issue
Block a user