[FE 1.0] Always create return value for CallInstruction
This fixes missing `USED_AS_EXPRESSION` recordings ^KT-47527 Fixed
This commit is contained in:
committed by
TeamCityServer
parent
b2372ff0b9
commit
ae608ea67f
@@ -0,0 +1,47 @@
|
||||
fun test_1(value: Any?): String? {
|
||||
return { // BLOCK
|
||||
val tmp0_safe_receiver: Any? = value
|
||||
when {
|
||||
EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
|
||||
else -> tmp0_safe_receiver.let<Any, Nothing>(block = local fun <anonymous>(it: Any): Nothing {
|
||||
return "O"
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun test_2(value: Any?): String? {
|
||||
return run<Nothing?>(block = local fun <anonymous>(): Nothing? {
|
||||
return { // BLOCK
|
||||
val tmp1_safe_receiver: Any? = value
|
||||
when {
|
||||
EQEQ(arg0 = tmp1_safe_receiver, arg1 = null) -> null
|
||||
else -> tmp1_safe_receiver.let<Any, Nothing>(block = local fun <anonymous>(it: Any): Nothing {
|
||||
return "K"
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var result: String = ""
|
||||
result = result.plus(other = { // BLOCK
|
||||
val <elvis>: String? = test_1(value = 1)
|
||||
when {
|
||||
EQEQ(arg0 = <elvis>, arg1 = null) -> return "fail 1"
|
||||
else -> <elvis>
|
||||
}
|
||||
})
|
||||
result = result.plus(other = { // BLOCK
|
||||
val <elvis>: String? = test_2(value = 1)
|
||||
when {
|
||||
EQEQ(arg0 = <elvis>, arg1 = null) -> return "fail 2"
|
||||
else -> <elvis>
|
||||
}
|
||||
})
|
||||
return result
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
FILE fqName:<root> fileName:/kt47527.kt
|
||||
FUN name:test_1 visibility:public modality:FINAL <> (value:kotlin.Any?) returnType:kotlin.String?
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test_1 (value: kotlin.Any?): kotlin.String? declared in <root>'
|
||||
BLOCK type=kotlin.Nothing? origin=SAFE_CALL
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Any? [val]
|
||||
GET_VAR 'value: kotlin.Any? declared in <root>.test_1' type=kotlin.Any? origin=null
|
||||
WHEN type=kotlin.Nothing? origin=null
|
||||
BRANCH
|
||||
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'val tmp_0: kotlin.Any? [val] declared in <root>.test_1' type=kotlin.Any? origin=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||
then: CONST Null type=kotlin.Nothing? value=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CALL 'public final fun let <T, R> (block: kotlin.Function1<T of kotlin.StandardKt.let, R of kotlin.StandardKt.let>): R of kotlin.StandardKt.let [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
<T>: kotlin.Any
|
||||
<R>: kotlin.Nothing
|
||||
$receiver: GET_VAR 'val tmp_0: kotlin.Any? [val] declared in <root>.test_1' type=kotlin.Any? origin=null
|
||||
block: FUN_EXPR type=kotlin.Function1<kotlin.Any, kotlin.Nothing> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.Any) returnType:kotlin.Nothing
|
||||
VALUE_PARAMETER name:it index:0 type:kotlin.Any
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test_1 (value: kotlin.Any?): kotlin.String? declared in <root>'
|
||||
CONST String type=kotlin.String value="O"
|
||||
FUN name:test_2 visibility:public modality:FINAL <> (value:kotlin.Any?) returnType:kotlin.String?
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test_2 (value: kotlin.Any?): kotlin.String? declared in <root>'
|
||||
CALL 'public final fun run <R> (block: kotlin.Function0<R of kotlin.StandardKt.run>): R of kotlin.StandardKt.run [inline] declared in kotlin.StandardKt' type=kotlin.Nothing? origin=null
|
||||
<R>: kotlin.Nothing?
|
||||
block: FUN_EXPR type=kotlin.Function0<kotlin.Nothing?> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Nothing?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Nothing? declared in <root>.test_2'
|
||||
BLOCK type=kotlin.Nothing? origin=SAFE_CALL
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.Any? [val]
|
||||
GET_VAR 'value: kotlin.Any? declared in <root>.test_2' type=kotlin.Any? origin=null
|
||||
WHEN type=kotlin.Nothing? origin=null
|
||||
BRANCH
|
||||
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'val tmp_1: kotlin.Any? [val] declared in <root>.test_2.<anonymous>' type=kotlin.Any? origin=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||
then: CONST Null type=kotlin.Nothing? value=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CALL 'public final fun let <T, R> (block: kotlin.Function1<T of kotlin.StandardKt.let, R of kotlin.StandardKt.let>): R of kotlin.StandardKt.let [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
<T>: kotlin.Any
|
||||
<R>: kotlin.Nothing
|
||||
$receiver: GET_VAR 'val tmp_1: kotlin.Any? [val] declared in <root>.test_2.<anonymous>' type=kotlin.Any? origin=null
|
||||
block: FUN_EXPR type=kotlin.Function1<kotlin.Any, kotlin.Nothing> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.Any) returnType:kotlin.Nothing
|
||||
VALUE_PARAMETER name:it index:0 type:kotlin.Any
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test_2 (value: kotlin.Any?): kotlin.String? declared in <root>'
|
||||
CONST String type=kotlin.String value="K"
|
||||
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
VAR name:result type:kotlin.String [var]
|
||||
CONST String type=kotlin.String value=""
|
||||
SET_VAR 'var result: kotlin.String [var] declared in <root>.box' type=kotlin.Unit origin=EQ
|
||||
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'var result: kotlin.String [var] declared in <root>.box' type=kotlin.String origin=null
|
||||
other: BLOCK type=kotlin.String origin=ELVIS
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlin.String? [val]
|
||||
CALL 'public final fun test_1 (value: kotlin.Any?): kotlin.String? declared in <root>' type=kotlin.String? origin=null
|
||||
value: CONST Int type=kotlin.Int value=1
|
||||
WHEN type=kotlin.String origin=ELVIS
|
||||
BRANCH
|
||||
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'val tmp_2: kotlin.String? [val] declared in <root>.box' type=kotlin.String? origin=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
CONST String type=kotlin.String value="fail 1"
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: GET_VAR 'val tmp_2: kotlin.String? [val] declared in <root>.box' type=kotlin.String? origin=null
|
||||
SET_VAR 'var result: kotlin.String [var] declared in <root>.box' type=kotlin.Unit origin=EQ
|
||||
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=null
|
||||
$this: GET_VAR 'var result: kotlin.String [var] declared in <root>.box' type=kotlin.String origin=null
|
||||
other: BLOCK type=kotlin.String origin=ELVIS
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:kotlin.String? [val]
|
||||
CALL 'public final fun test_2 (value: kotlin.Any?): kotlin.String? declared in <root>' type=kotlin.String? origin=null
|
||||
value: CONST Int type=kotlin.Int value=1
|
||||
WHEN type=kotlin.String origin=ELVIS
|
||||
BRANCH
|
||||
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'val tmp_3: kotlin.String? [val] declared in <root>.box' type=kotlin.String? origin=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
CONST String type=kotlin.String value="fail 2"
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: GET_VAR 'val tmp_3: kotlin.String? [val] declared in <root>.box' type=kotlin.String? origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
GET_VAR 'var result: kotlin.String [var] declared in <root>.box' type=kotlin.String origin=null
|
||||
@@ -0,0 +1,14 @@
|
||||
// ISSUE: KT-47527
|
||||
// WITH_STDLIB
|
||||
|
||||
fun test_1(value: Any?): String? = value?.let { return "O" }
|
||||
fun test_2(value: Any?): String? = run {
|
||||
value?.let { return "K" }
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var result = ""
|
||||
result += test_1(1) ?: return "fail 1"
|
||||
result += test_2(1) ?: return "fail 2"
|
||||
return result
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
fun test_1(value: Any?): String? {
|
||||
return { // BLOCK
|
||||
val tmp0_safe_receiver: Any? = value
|
||||
when {
|
||||
EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
|
||||
else -> tmp0_safe_receiver.let<Any, Nothing>(block = local fun <anonymous>(it: Any): Nothing {
|
||||
return "O"
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun test_2(value: Any?): String? {
|
||||
return run<Nothing?>(block = local fun <anonymous>(): Nothing? {
|
||||
return { // BLOCK
|
||||
val tmp0_safe_receiver: Any? = value
|
||||
when {
|
||||
EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
|
||||
else -> tmp0_safe_receiver.let<Any, Nothing>(block = local fun <anonymous>(it: Any): Nothing {
|
||||
return "K"
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
var result: String = ""
|
||||
result = result.plus(other = { // BLOCK
|
||||
val tmp0_elvis_lhs: String? = test_1(value = 1)
|
||||
when {
|
||||
EQEQ(arg0 = tmp0_elvis_lhs, arg1 = null) -> return "fail 1"
|
||||
else -> tmp0_elvis_lhs
|
||||
}
|
||||
})
|
||||
result = result.plus(other = { // BLOCK
|
||||
val tmp1_elvis_lhs: String? = test_2(value = 1)
|
||||
when {
|
||||
EQEQ(arg0 = tmp1_elvis_lhs, arg1 = null) -> return "fail 2"
|
||||
else -> tmp1_elvis_lhs
|
||||
}
|
||||
})
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
FILE fqName:<root> fileName:/kt47527.kt
|
||||
FUN name:test_1 visibility:public modality:FINAL <> (value:kotlin.Any?) returnType:kotlin.String?
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test_1 (value: kotlin.Any?): kotlin.String? declared in <root>'
|
||||
BLOCK type=kotlin.Nothing? origin=SAFE_CALL
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Any? [val]
|
||||
GET_VAR 'value: kotlin.Any? declared in <root>.test_1' type=kotlin.Any? origin=null
|
||||
WHEN type=kotlin.Nothing? origin=null
|
||||
BRANCH
|
||||
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'val tmp_0: kotlin.Any? [val] declared in <root>.test_1' type=kotlin.Any? origin=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||
then: CONST Null type=kotlin.Nothing? value=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CALL 'public final fun let <T, R> (block: kotlin.Function1<T of kotlin.StandardKt.let, R of kotlin.StandardKt.let>): R of kotlin.StandardKt.let [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
<T>: kotlin.Any
|
||||
<R>: kotlin.Nothing
|
||||
$receiver: GET_VAR 'val tmp_0: kotlin.Any? [val] declared in <root>.test_1' type=kotlin.Any? origin=null
|
||||
block: FUN_EXPR type=kotlin.Function1<kotlin.Any, kotlin.Nothing> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.Any) returnType:kotlin.Nothing
|
||||
VALUE_PARAMETER name:it index:0 type:kotlin.Any
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test_1 (value: kotlin.Any?): kotlin.String? declared in <root>'
|
||||
CONST String type=kotlin.String value="O"
|
||||
FUN name:test_2 visibility:public modality:FINAL <> (value:kotlin.Any?) returnType:kotlin.String?
|
||||
VALUE_PARAMETER name:value index:0 type:kotlin.Any?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test_2 (value: kotlin.Any?): kotlin.String? declared in <root>'
|
||||
CALL 'public final fun run <R> (block: kotlin.Function0<R of kotlin.StandardKt.run>): R of kotlin.StandardKt.run [inline] declared in kotlin.StandardKt' type=kotlin.Nothing? origin=null
|
||||
<R>: kotlin.Nothing?
|
||||
block: FUN_EXPR type=kotlin.Function0<kotlin.Nothing?> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Nothing?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Nothing? declared in <root>.test_2'
|
||||
BLOCK type=kotlin.Nothing? origin=SAFE_CALL
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.Any? [val]
|
||||
GET_VAR 'value: kotlin.Any? declared in <root>.test_2' type=kotlin.Any? origin=null
|
||||
WHEN type=kotlin.Nothing? origin=null
|
||||
BRANCH
|
||||
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'val tmp_1: kotlin.Any? [val] declared in <root>.test_2.<anonymous>' type=kotlin.Any? origin=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||
then: CONST Null type=kotlin.Nothing? value=null
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: CALL 'public final fun let <T, R> (block: kotlin.Function1<T of kotlin.StandardKt.let, R of kotlin.StandardKt.let>): R of kotlin.StandardKt.let [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
<T>: kotlin.Any
|
||||
<R>: kotlin.Nothing
|
||||
$receiver: GET_VAR 'val tmp_1: kotlin.Any? [val] declared in <root>.test_2.<anonymous>' type=kotlin.Any? origin=null
|
||||
block: FUN_EXPR type=kotlin.Function1<kotlin.Any, kotlin.Nothing> origin=LAMBDA
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.Any) returnType:kotlin.Nothing
|
||||
VALUE_PARAMETER name:it index:0 type:kotlin.Any
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test_2 (value: kotlin.Any?): kotlin.String? declared in <root>'
|
||||
CONST String type=kotlin.String value="K"
|
||||
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
VAR name:result type:kotlin.String [var]
|
||||
CONST String type=kotlin.String value=""
|
||||
SET_VAR 'var result: kotlin.String [var] declared in <root>.box' type=kotlin.Unit origin=PLUSEQ
|
||||
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUSEQ
|
||||
$this: GET_VAR 'var result: kotlin.String [var] declared in <root>.box' type=kotlin.String origin=PLUSEQ
|
||||
other: BLOCK type=kotlin.String origin=ELVIS
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlin.String? [val]
|
||||
CALL 'public final fun test_1 (value: kotlin.Any?): kotlin.String? declared in <root>' type=kotlin.String? origin=null
|
||||
value: CONST Int type=kotlin.Int value=1
|
||||
WHEN type=kotlin.String origin=null
|
||||
BRANCH
|
||||
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'val tmp_2: kotlin.String? [val] declared in <root>.box' type=kotlin.String? origin=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
CONST String type=kotlin.String value="fail 1"
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: GET_VAR 'val tmp_2: kotlin.String? [val] declared in <root>.box' type=kotlin.String? origin=null
|
||||
SET_VAR 'var result: kotlin.String [var] declared in <root>.box' type=kotlin.Unit origin=PLUSEQ
|
||||
CALL 'public final fun plus (other: kotlin.Any?): kotlin.String [operator] declared in kotlin.String' type=kotlin.String origin=PLUSEQ
|
||||
$this: GET_VAR 'var result: kotlin.String [var] declared in <root>.box' type=kotlin.String origin=PLUSEQ
|
||||
other: BLOCK type=kotlin.String origin=ELVIS
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_3 type:kotlin.String? [val]
|
||||
CALL 'public final fun test_2 (value: kotlin.Any?): kotlin.String? declared in <root>' type=kotlin.String? origin=null
|
||||
value: CONST Int type=kotlin.Int value=1
|
||||
WHEN type=kotlin.String origin=null
|
||||
BRANCH
|
||||
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
|
||||
arg0: GET_VAR 'val tmp_3: kotlin.String? [val] declared in <root>.box' type=kotlin.String? origin=null
|
||||
arg1: CONST Null type=kotlin.Nothing? value=null
|
||||
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
CONST String type=kotlin.String value="fail 2"
|
||||
BRANCH
|
||||
if: CONST Boolean type=kotlin.Boolean value=true
|
||||
then: GET_VAR 'val tmp_3: kotlin.String? [val] declared in <root>.box' type=kotlin.String? origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
GET_VAR 'var result: kotlin.String [var] declared in <root>.box' type=kotlin.String origin=null
|
||||
@@ -1,11 +0,0 @@
|
||||
fun <R : Number> Number.convert(): R {
|
||||
return TODO()
|
||||
}
|
||||
|
||||
fun foo(arg: Number) {
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
val x: Int = 0
|
||||
foo(arg = x.convert<Number>())
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
FILE fqName:<root> fileName:/argumentMappedWithError.kt
|
||||
FUN name:convert visibility:public modality:FINAL <R> ($receiver:kotlin.Number) returnType:R of <root>.convert
|
||||
TYPE_PARAMETER name:R index:0 variance: superTypes:[kotlin.Number]
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Number
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun convert <R> (): R of <root>.convert declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Number) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:arg index:0 type:kotlin.Number
|
||||
BLOCK_BODY
|
||||
FUN name:main visibility:public modality:FINAL <> (args:kotlin.Array<kotlin.String>) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:args index:0 type:kotlin.Array<kotlin.String>
|
||||
BLOCK_BODY
|
||||
VAR name:x type:kotlin.Int [val]
|
||||
CONST Int type=kotlin.Int value=0
|
||||
CALL 'public final fun foo (arg: kotlin.Number): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
|
||||
arg: CALL 'public final fun convert <R> (): R of <root>.convert declared in <root>' type=kotlin.Number origin=null
|
||||
<R>: kotlin.Number
|
||||
$receiver: GET_VAR 'val x: kotlin.Int [val] declared in <root>.main' type=kotlin.Int origin=null
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
fun <R : Number> Number.convert(): R = TODO()
|
||||
|
||||
fun foo(arg: Number) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fun <R : Number> Number.convert(): R {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
fun foo(arg: Number) {
|
||||
|
||||
@@ -3,7 +3,8 @@ FILE fqName:<root> fileName:/argumentMappedWithError.kt
|
||||
TYPE_PARAMETER name:R index:0 variance: superTypes:[kotlin.Number]
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Number
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun convert <R> (): R of <root>.convert declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:foo visibility:public modality:FINAL <> (arg:kotlin.Number) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:arg index:0 type:kotlin.Number
|
||||
BLOCK_BODY
|
||||
|
||||
@@ -18,7 +18,7 @@ fun bar(s: String?, t: String?): String {
|
||||
when {
|
||||
EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
|
||||
else -> tmp0_safe_receiver.let<String, Nothing?>(block = local fun <anonymous>(it: String): Nothing? {
|
||||
{ // BLOCK
|
||||
return { // BLOCK
|
||||
val tmp0_safe_receiver: String? = t
|
||||
when {
|
||||
EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null
|
||||
@@ -27,7 +27,7 @@ fun bar(s: String?, t: String?): String {
|
||||
}
|
||||
)
|
||||
}
|
||||
} /*~> Unit */
|
||||
}
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ FILE fqName:<root> fileName:/SafeLetWithReturn.kt
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.String) returnType:kotlin.Nothing?
|
||||
VALUE_PARAMETER name:it index:0 type:kotlin.String
|
||||
BLOCK_BODY
|
||||
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (it: kotlin.String): kotlin.Nothing? declared in <root>.bar'
|
||||
BLOCK type=kotlin.Nothing? origin=SAFE_CALL
|
||||
VAR IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlin.String? [val]
|
||||
GET_VAR 't: kotlin.String? declared in <root>.bar' type=kotlin.String? origin=null
|
||||
|
||||
+1
-1
@@ -1,7 +1,7 @@
|
||||
fun box(): String {
|
||||
val map: MutableMap<Fun, String> = mutableMapOf<Fun, String>()
|
||||
val fn: Fun = local fun <anonymous>(it: @FlexibleNullability String?): @FlexibleNullability String? {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
/*-> Fun */
|
||||
return map.computeIfAbsent(p0 = fn, p1 = local fun <anonymous>(it: @EnhancedNullability Fun): @EnhancedNullability String {
|
||||
|
||||
+2
-1
@@ -11,7 +11,8 @@ FILE fqName:<root> fileName:/test.kt
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:@[FlexibleNullability] kotlin.String?) returnType:@[FlexibleNullability] kotlin.String?
|
||||
VALUE_PARAMETER name:it index:0 type:@[FlexibleNullability] kotlin.String?
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (it: @[FlexibleNullability] kotlin.String?): @[FlexibleNullability] kotlin.String? declared in <root>.box'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun computeIfAbsent (p0: @[EnhancedNullability] K of kotlin.collections.MutableMap, p1: @[EnhancedNullability] java.util.function.Function<in @[EnhancedNullability] K of kotlin.collections.MutableMap, out @[EnhancedNullability] V of kotlin.collections.MutableMap>): @[EnhancedNullability] V of kotlin.collections.MutableMap declared in kotlin.collections.MutableMap' type=@[EnhancedNullability] kotlin.String origin=null
|
||||
|
||||
@@ -3,7 +3,7 @@ interface CPointed {
|
||||
}
|
||||
|
||||
inline fun <reified T : CPointed> CPointed.reinterpret(): T {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
class CInt32VarX<T : Any?> : CPointed {
|
||||
@@ -18,7 +18,7 @@ class CInt32VarX<T : Any?> : CPointed {
|
||||
typealias CInt32Var = CInt32VarX<Int>
|
||||
var <T_INT : Int> CInt32VarX<T_INT>.value: T_INT
|
||||
get(): T_INT {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
set(value: T_INT) {
|
||||
}
|
||||
|
||||
@@ -18,7 +18,8 @@ FILE fqName:<root> fileName:/integerCoercionToT.kt
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[<root>.CPointed]
|
||||
$receiver: VALUE_PARAMETER name:<this> type:<root>.CPointed
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun reinterpret <T> (): T of <root>.reinterpret [inline] declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
CLASS CLASS name:CInt32VarX modality:FINAL visibility:public superTypes:[<root>.CPointed]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.CInt32VarX<T of <root>.CInt32VarX>
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
|
||||
@@ -46,7 +47,8 @@ FILE fqName:<root> fileName:/integerCoercionToT.kt
|
||||
TYPE_PARAMETER name:T_INT index:0 variance: superTypes:[kotlin.Int]
|
||||
$receiver: VALUE_PARAMETER name:<this> type:<root>.CInt32VarX<T_INT of <root>.<get-value>>
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun <get-value> <T_INT> (): T_INT of <root>.<get-value> declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:<set-value> visibility:public modality:FINAL <T_INT> ($receiver:<root>.CInt32VarX<T_INT of <root>.<set-value>>, value:T_INT of <root>.<set-value>) returnType:kotlin.Unit
|
||||
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [var]
|
||||
TYPE_PARAMETER name:T_INT index:0 variance: superTypes:[kotlin.Int]
|
||||
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
fun <X : Any?, Y : Any?> foo(): Function1<X, Y> {
|
||||
return TODO()
|
||||
}
|
||||
|
||||
interface Inv2<A : Any?, B : Any?> {
|
||||
|
||||
}
|
||||
|
||||
fun <T : Any?, R : Any?> check(x: T, y: R, f: Function1<T, R>): Inv2<T, R> {
|
||||
return TODO()
|
||||
}
|
||||
|
||||
fun test(): Inv2<String, Int> {
|
||||
return check<String, Int>(x = "", y = 1, f = foo<String, Int>())
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val x: Inv2<String, Int> = test()
|
||||
return "OK"
|
||||
}
|
||||
@@ -1,50 +0,0 @@
|
||||
FILE fqName:<root> fileName:/fixationOrder1.kt
|
||||
FUN name:foo visibility:public modality:FINAL <X, Y> () returnType:kotlin.Function1<X of <root>.foo, Y of <root>.foo>
|
||||
TYPE_PARAMETER name:X index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Y index:1 variance: superTypes:[kotlin.Any?]
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun foo <X, Y> (): kotlin.Function1<X of <root>.foo, Y of <root>.foo> declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
CLASS INTERFACE name:Inv2 modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Inv2<A of <root>.Inv2, B of <root>.Inv2>
|
||||
TYPE_PARAMETER name:A index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:B index:1 variance: superTypes:[kotlin.Any?]
|
||||
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 [operator] declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
|
||||
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
|
||||
overridden:
|
||||
public open fun hashCode (): kotlin.Int declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
|
||||
overridden:
|
||||
public open fun toString (): kotlin.String declared in kotlin.Any
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:check visibility:public modality:FINAL <T, R> (x:T of <root>.check, y:R of <root>.check, f:kotlin.Function1<T of <root>.check, R of <root>.check>) returnType:<root>.Inv2<T of <root>.check, R of <root>.check>
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:R index:1 variance: superTypes:[kotlin.Any?]
|
||||
VALUE_PARAMETER name:x index:0 type:T of <root>.check
|
||||
VALUE_PARAMETER name:y index:1 type:R of <root>.check
|
||||
VALUE_PARAMETER name:f index:2 type:kotlin.Function1<T of <root>.check, R of <root>.check>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun check <T, R> (x: T of <root>.check, y: R of <root>.check, f: kotlin.Function1<T of <root>.check, R of <root>.check>): <root>.Inv2<T of <root>.check, R of <root>.check> declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Inv2<kotlin.String, kotlin.Int>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test (): <root>.Inv2<kotlin.String, kotlin.Int> declared in <root>'
|
||||
CALL 'public final fun check <T, R> (x: T of <root>.check, y: R of <root>.check, f: kotlin.Function1<T of <root>.check, R of <root>.check>): <root>.Inv2<T of <root>.check, R of <root>.check> declared in <root>' type=<root>.Inv2<kotlin.String, kotlin.Int> origin=null
|
||||
<T>: kotlin.String
|
||||
<R>: kotlin.Int
|
||||
x: CONST String type=kotlin.String value=""
|
||||
y: CONST Int type=kotlin.Int value=1
|
||||
f: CALL 'public final fun foo <X, Y> (): kotlin.Function1<X of <root>.foo, Y of <root>.foo> declared in <root>' type=kotlin.Function1<kotlin.String, kotlin.Int> origin=null
|
||||
<X>: kotlin.String
|
||||
<Y>: kotlin.Int
|
||||
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
VAR name:x type:<root>.Inv2<kotlin.String, kotlin.Int> [val]
|
||||
CALL 'public final fun test (): <root>.Inv2<kotlin.String, kotlin.Int> declared in <root>' type=<root>.Inv2<kotlin.String, kotlin.Int> origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
CONST String type=kotlin.String value="OK"
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
fun <X, Y> foo(): (X) -> Y = TODO()
|
||||
|
||||
interface Inv2<A, B>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
fun <X : Any?, Y : Any?> foo(): Function1<X, Y> {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
interface Inv2<A : Any?, B : Any?> {
|
||||
@@ -7,7 +7,7 @@ interface Inv2<A : Any?, B : Any?> {
|
||||
}
|
||||
|
||||
fun <T : Any?, R : Any?> check(x: T, y: R, f: Function1<T, R>): Inv2<T, R> {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
fun test(): Inv2<String, Int> {
|
||||
|
||||
@@ -3,7 +3,8 @@ FILE fqName:<root> fileName:/fixationOrder1.kt
|
||||
TYPE_PARAMETER name:X index:0 variance: superTypes:[kotlin.Any?]
|
||||
TYPE_PARAMETER name:Y index:1 variance: superTypes:[kotlin.Any?]
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun foo <X, Y> (): kotlin.Function1<X of <root>.foo, Y of <root>.foo> declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
CLASS INTERFACE name:Inv2 modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Inv2<A of <root>.Inv2, B of <root>.Inv2>
|
||||
TYPE_PARAMETER name:A index:0 variance: superTypes:[kotlin.Any?]
|
||||
@@ -28,7 +29,8 @@ FILE fqName:<root> fileName:/fixationOrder1.kt
|
||||
VALUE_PARAMETER name:y index:1 type:R of <root>.check
|
||||
VALUE_PARAMETER name:f index:2 type:kotlin.Function1<T of <root>.check, R of <root>.check>
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun check <T, R> (x: T of <root>.check, y: R of <root>.check, f: kotlin.Function1<T of <root>.check, R of <root>.check>): <root>.Inv2<T of <root>.check, R of <root>.check> declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:test visibility:public modality:FINAL <> () returnType:<root>.Inv2<kotlin.String, kotlin.Int>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun test (): <root>.Inv2<kotlin.String, kotlin.Int> declared in <root>'
|
||||
|
||||
@@ -23,7 +23,7 @@ suspend fun <T : Any?> FlowCollector<T>.invokeSafely(action: @ExtensionFunctionT
|
||||
|
||||
@OptIn(markerClass = [ExperimentalTypeInference::class])
|
||||
inline fun <T : Any?> unsafeFlow(@BuilderInference crossinline block: @ExtensionFunctionType SuspendFunction1<FlowCollector<T>, Unit>): Flow<T> {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
@Deprecated(message = "binary compatibility with a version w/o FlowCollector receiver", level = DeprecationLevel.HIDDEN)
|
||||
@@ -85,12 +85,12 @@ class SafeCollector<T : Any?> : FlowCollector<T> {
|
||||
|
||||
@OptIn(markerClass = [ExperimentalTypeInference::class])
|
||||
fun <T : Any?> flow(@BuilderInference block: @ExtensionFunctionType SuspendFunction1<FlowCollector<T>, Unit>): Flow<T> {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
@OptIn(markerClass = [ExperimentalTypeInference::class])
|
||||
suspend fun <R : Any?> flowScope(@BuilderInference block: @ExtensionFunctionType SuspendFunction1<CoroutineScope, R>): R {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
suspend inline fun <T : Any?> Flow<T>.collect(crossinline action: SuspendFunction1<@ParameterName(name = "value") T, Unit>) {
|
||||
@@ -128,7 +128,7 @@ interface ReceiveChannel<out E : Any?> {
|
||||
|
||||
@OptIn(markerClass = [ExperimentalTypeInference::class])
|
||||
fun <E : Any?> CoroutineScope.produce(@BuilderInference block: @ExtensionFunctionType SuspendFunction1<ProducerScope<E>, Unit>): ReceiveChannel<E> {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
interface ProducerScope<in E : Any?> : CoroutineScope, SendChannel<E> {
|
||||
|
||||
@@ -59,7 +59,8 @@ FILE fqName:<root> fileName:/castsInsideCoroutineInference.kt
|
||||
annotations:
|
||||
BuilderInference
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun unsafeFlow <T> (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<<root>.FlowCollector<T of <root>.unsafeFlow>, kotlin.Unit>): <root>.Flow<T of <root>.unsafeFlow> [inline] declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:onCompletion visibility:public modality:FINAL <T> ($receiver:<root>.Flow<T of <root>.onCompletion>, action:kotlin.coroutines.SuspendFunction1<@[ParameterName(name = 'cause')] kotlin.Throwable?, kotlin.Unit>) returnType:<root>.Flow<T of <root>.onCompletion>
|
||||
annotations:
|
||||
Deprecated(message = 'binary compatibility with a version w/o FlowCollector receiver', replaceWith = <null>, level = GET_ENUM 'ENUM_ENTRY IR_EXTERNAL_DECLARATION_STUB name:HIDDEN' type=kotlin.DeprecationLevel)
|
||||
@@ -198,7 +199,8 @@ FILE fqName:<root> fileName:/castsInsideCoroutineInference.kt
|
||||
annotations:
|
||||
BuilderInference
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun flow <T> (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<<root>.FlowCollector<T of <root>.flow>, kotlin.Unit>): <root>.Flow<T of <root>.flow> declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:flowScope visibility:public modality:FINAL <R> (block:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<<root>.CoroutineScope, R of <root>.flowScope>) returnType:R of <root>.flowScope [suspend]
|
||||
annotations:
|
||||
OptIn(markerClass = [CLASS_REFERENCE 'CLASS IR_EXTERNAL_DECLARATION_STUB ANNOTATION_CLASS name:ExperimentalTypeInference modality:FINAL visibility:public superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass<kotlin.experimental.ExperimentalTypeInference>])
|
||||
@@ -207,7 +209,8 @@ FILE fqName:<root> fileName:/castsInsideCoroutineInference.kt
|
||||
annotations:
|
||||
BuilderInference
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun flowScope <R> (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<<root>.CoroutineScope, R of <root>.flowScope>): R of <root>.flowScope [suspend] declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:collect visibility:public modality:FINAL <T> ($receiver:<root>.Flow<T of <root>.collect>, action:kotlin.coroutines.SuspendFunction1<@[ParameterName(name = 'value')] T of <root>.collect, kotlin.Unit>) returnType:kotlin.Unit [inline,suspend]
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
|
||||
$receiver: VALUE_PARAMETER name:<this> type:<root>.Flow<T of <root>.collect>
|
||||
@@ -315,7 +318,8 @@ FILE fqName:<root> fileName:/castsInsideCoroutineInference.kt
|
||||
annotations:
|
||||
BuilderInference
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun produce <E> (block: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<<root>.ProducerScope<E of <root>.produce>, kotlin.Unit>): <root>.ReceiveChannel<E of <root>.produce> declared in <root>'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
CLASS INTERFACE name:ProducerScope modality:ABSTRACT visibility:public superTypes:[<root>.CoroutineScope; <root>.SendChannel<E of <root>.ProducerScope>]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.ProducerScope<E of <root>.ProducerScope>
|
||||
TYPE_PARAMETER name:E index:0 variance:in superTypes:[kotlin.Any?]
|
||||
|
||||
+5
-5
@@ -10,23 +10,23 @@ class MySet : Set<String> {
|
||||
|
||||
override val size: Int
|
||||
override get(): Int {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
override operator fun contains(element: String): Boolean {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
override fun containsAll(elements: Collection<String>): Boolean {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
override fun isEmpty(): Boolean {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
override operator fun iterator(): Iterator<String> {
|
||||
TODO()
|
||||
return TODO()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+10
-5
@@ -17,33 +17,38 @@ FILE fqName:<root> fileName:/implicitNotNullOnPlatformType.kt
|
||||
public abstract fun <get-size> (): kotlin.Int declared in kotlin.collections.Set
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MySet
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-size> (): kotlin.Int declared in <root>.MySet'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:contains visibility:public modality:OPEN <> ($this:<root>.MySet, element:kotlin.String) returnType:kotlin.Boolean [operator]
|
||||
overridden:
|
||||
public abstract fun contains (element: E of kotlin.collections.Set): kotlin.Boolean [operator] declared in kotlin.collections.Set
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MySet
|
||||
VALUE_PARAMETER name:element index:0 type:kotlin.String
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public open fun contains (element: kotlin.String): kotlin.Boolean [operator] declared in <root>.MySet'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:containsAll visibility:public modality:OPEN <> ($this:<root>.MySet, elements:kotlin.collections.Collection<kotlin.String>) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun containsAll (elements: kotlin.collections.Collection<E of kotlin.collections.Set>): kotlin.Boolean declared in kotlin.collections.Set
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MySet
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<kotlin.String>
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public open fun containsAll (elements: kotlin.collections.Collection<kotlin.String>): kotlin.Boolean declared in <root>.MySet'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:isEmpty visibility:public modality:OPEN <> ($this:<root>.MySet) returnType:kotlin.Boolean
|
||||
overridden:
|
||||
public abstract fun isEmpty (): kotlin.Boolean declared in kotlin.collections.Set
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MySet
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public open fun isEmpty (): kotlin.Boolean declared in <root>.MySet'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
FUN name:iterator visibility:public modality:OPEN <> ($this:<root>.MySet) returnType:kotlin.collections.Iterator<kotlin.String> [operator]
|
||||
overridden:
|
||||
public abstract fun iterator (): kotlin.collections.Iterator<E of kotlin.collections.Set> [operator] declared in kotlin.collections.Set
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MySet
|
||||
BLOCK_BODY
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing origin=null
|
||||
RETURN type=kotlin.Nothing from='public open fun iterator (): kotlin.collections.Iterator<kotlin.String> [operator] declared in <root>.MySet'
|
||||
CALL 'public final fun TODO (): kotlin.Nothing [inline] declared in kotlin.StandardKt' type=kotlin.Nothing 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 [fake_override,operator] declared in kotlin.collections.Set
|
||||
|
||||
Reference in New Issue
Block a user