FIR2IR strip FlexibleNullability on IMPLICIT_NOTNULL

This commit is contained in:
Dmitry Petrov
2021-11-23 18:56:53 +03:00
committed by Space
parent 196f087b54
commit badfade2fd
43 changed files with 414 additions and 151 deletions
@@ -1,7 +0,0 @@
FILE fqName:<root> fileName:/implicitCastOnPlatformType.kt
FUN name:test visibility:public modality:FINAL <> () returnType:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test (): kotlin.String declared in <root>'
TYPE_OP type=@[FlexibleNullability] kotlin.String origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleNullability] kotlin.String
CALL 'public open fun getProperty (p0: @[FlexibleNullability] kotlin.String?): @[FlexibleNullability] kotlin.String? declared in java.lang.System' type=@[FlexibleNullability] kotlin.String? origin=null
p0: CONST String type=kotlin.String value="test"
@@ -1,3 +0,0 @@
fun test(): String {
return getProperty(p0 = "test") /*!! @FlexibleNullability String */
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// TARGET_BACKEND: JVM
fun test(): String =
System.getProperty("test")
@@ -18,5 +18,5 @@ FILE fqName:<root> fileName:/implicitNotNullInDestructuringAssignment.kt
$receiver: GET_VAR 'val tmp_0: @[FlexibleNullability] <root>.J? [val] declared in <root>.test' type=@[FlexibleNullability] <root>.J? origin=null
VAR name:b type:kotlin.Int [val]
CALL 'private final fun component2 (): kotlin.Int [operator] declared in <root>' type=kotlin.Int origin=COMPONENT_N(index=2)
$receiver: TYPE_OP type=@[FlexibleNullability] <root>.J origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleNullability] <root>.J
$receiver: TYPE_OP type=<root>.J origin=IMPLICIT_NOTNULL typeOperand=<root>.J
GET_VAR 'val tmp_0: @[FlexibleNullability] <root>.J? [val] declared in <root>.test' type=@[FlexibleNullability] <root>.J? origin=null
@@ -9,5 +9,6 @@ private operator fun J.component2(): Int {
fun test() {
val <destruct>: @FlexibleNullability J? = j()
val a: Int = <destruct>.component1()
val b: Int = <destruct> /*!! @FlexibleNullability J */.component2()
val b: Int = <destruct> /*!! J */.component2()
}
@@ -25,7 +25,7 @@ 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>.test1'
TYPE_OP type=@[FlexibleNullability] kotlin.String origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleNullability] kotlin.String
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public open fun foo (): @[FlexibleNullability] kotlin.String? declared in <root>.J' type=@[FlexibleNullability] kotlin.String? origin=null
PROPERTY name:test2 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Function0<kotlin.Any> visibility:private [final,static]
@@ -12,7 +12,7 @@ fun <T : Any?> id(x: T): T {
fun test1(): Any {
return checkAny(fn = local fun <anonymous>(): Any {
return foo() /*!! @FlexibleNullability String */
return foo() /*!! String */
}
)
}
@@ -7,7 +7,7 @@ FILE fqName:<root> fileName:/genericSamSmartcast.kt
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=<root>.A<*>
GET_VAR 'x: kotlin.Any declared in <root>.f' type=kotlin.Any origin=null
then: RETURN type=kotlin.Nothing from='public final fun f (x: kotlin.Any): kotlin.String declared in <root>'
TYPE_OP type=@[FlexibleNullability] kotlin.String origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleNullability] kotlin.String
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public open fun call (block: @[FlexibleNullability] <root>.A.I<@[FlexibleNullability] T of <root>.A?>?): @[FlexibleNullability] kotlin.String? declared in <root>.A' type=@[FlexibleNullability] kotlin.String? origin=null
$this: TYPE_OP type=<root>.A<*> origin=IMPLICIT_CAST typeOperand=<root>.A<*>
GET_VAR 'x: kotlin.Any declared in <root>.f' type=kotlin.Any origin=null
@@ -3,7 +3,8 @@ fun f(x: Any): String {
x is A<*> -> return x /*as A<*> */.call(block = local fun <anonymous>(y: Any?): @FlexibleNullability String? {
return "OK"
}
/*-> @FlexibleNullability I<@FlexibleNullability Any?>? */) /*!! @FlexibleNullability String */
/*-> @FlexibleNullability I<@FlexibleNullability Any?>? */) /*!! String */
}
return "Fail"
}
@@ -33,5 +33,5 @@ FILE fqName:<root> fileName:/samConstructors.kt
RETURN type=kotlin.Nothing from='local final fun <anonymous> (a: @[FlexibleNullability] kotlin.Int?, b: @[FlexibleNullability] kotlin.Int?): kotlin.Int declared in <root>.test4'
CALL 'public final fun minus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=MINUS
$this: GET_VAR 'a: @[FlexibleNullability] kotlin.Int? declared in <root>.test4.<anonymous>' type=@[FlexibleNullability] kotlin.Int? origin=null
other: TYPE_OP type=@[FlexibleNullability] kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleNullability] kotlin.Int
other: TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
GET_VAR 'b: @[FlexibleNullability] kotlin.Int? declared in <root>.test4.<anonymous>' type=@[FlexibleNullability] kotlin.Int? origin=null
@@ -18,7 +18,8 @@ fun test3(): Runnable {
fun test4(): Comparator<@FlexibleNullability Int?> {
return local fun <anonymous>(a: @FlexibleNullability Int?, b: @FlexibleNullability Int?): Int {
return a.minus(other = b /*!! @FlexibleNullability Int */)
return a.minus(other = b /*!! Int */)
}
/*-> Comparator<@FlexibleNullability Int?> */
}