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
@@ -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?> */
}