Add tests for KT-45236

This commit is contained in:
Dmitry Petrov
2021-04-21 13:22:18 +03:00
parent 4f352950d9
commit f228c3bb04
13 changed files with 524 additions and 0 deletions
@@ -7400,6 +7400,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
runTest("compiler/testData/codegen/box/contracts/kt39374.kt");
}
@Test
@TestMetadata("kt45236.kt")
public void testKt45236() throws Exception {
runTest("compiler/testData/codegen/box/contracts/kt45236.kt");
}
@Test
@TestMetadata("lambdaParameter.kt")
public void testLambdaParameter() throws Exception {
@@ -2400,6 +2400,12 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest {
runTest("compiler/testData/ir/irText/regressions/kt24114.kt");
}
@Test
@TestMetadata("kt45236.kt")
public void testKt45236() throws Exception {
runTest("compiler/testData/ir/irText/regressions/kt45236.kt");
}
@Test
@TestMetadata("typeAliasCtorForGenericClass.kt")
public void testTypeAliasCtorForGenericClass() throws Exception {
+34
View File
@@ -0,0 +1,34 @@
// WITH_RUNTIME
import kotlin.contracts.ExperimentalContracts
import kotlin.contracts.contract
sealed class NetRequestStatus<out T : Any> {
abstract val value: T?
data class Error<out T : Any>(
val error: Throwable,
override val value: T? = null,
) : NetRequestStatus<T>()
}
@OptIn(ExperimentalContracts::class)
fun <T : Any> NetRequestStatus<T>.isError(): Boolean {
contract { returns(true) implies (this@isError is NetRequestStatus.Error) }
return (this is NetRequestStatus.Error)
}
fun <T : Any> successOrThrow() {
val nextTerminal: NetRequestStatus<T> = NetRequestStatus.Error(Exception())
if (nextTerminal.isError()) throw nextTerminal.error
}
fun box(): String {
try {
successOrThrow<String>()
} catch (e: Exception) {
return "OK"
}
return "'successOrThrow<...>()' should throw an exception"
}
+202
View File
@@ -0,0 +1,202 @@
FILE fqName:<root> fileName:/kt45236.kt
CLASS CLASS name:NetRequestStatus modality:SEALED visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.NetRequestStatus<T of <root>.NetRequestStatus>
TYPE_PARAMETER name:T index:0 variance:out superTypes:[kotlin.Any]
CONSTRUCTOR visibility:protected <> () returnType:<root>.NetRequestStatus<T of <root>.NetRequestStatus> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:NetRequestStatus modality:SEALED visibility:public superTypes:[kotlin.Any]'
PROPERTY name:value visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:ABSTRACT <> ($this:<root>.NetRequestStatus<T of <root>.NetRequestStatus>) returnType:T of <root>.NetRequestStatus?
correspondingProperty: PROPERTY name:value visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus<T of <root>.NetRequestStatus>
CLASS CLASS name:Error modality:FINAL visibility:public [data] superTypes:[<root>.NetRequestStatus<T of <root>.NetRequestStatus.Error>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
TYPE_PARAMETER name:T index:0 variance:out superTypes:[kotlin.Any]
CONSTRUCTOR visibility:public <> (error:kotlin.Throwable, value:T of <root>.NetRequestStatus.Error?) returnType:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> [primary]
VALUE_PARAMETER name:error index:0 type:kotlin.Throwable
VALUE_PARAMETER name:value index:1 type:T of <root>.NetRequestStatus.Error?
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'protected constructor <init> () [primary] declared in <root>.NetRequestStatus'
<T>: T of <root>.NetRequestStatus.Error
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Error modality:FINAL visibility:public [data] superTypes:[<root>.NetRequestStatus<T of <root>.NetRequestStatus.Error>]'
PROPERTY name:error visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]
EXPRESSION_BODY
GET_VAR 'error: kotlin.Throwable declared in <root>.NetRequestStatus.Error.<init>' type=kotlin.Throwable origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-error> visibility:public modality:FINAL <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:kotlin.Throwable
correspondingProperty: PROPERTY name:error visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-error> (): kotlin.Throwable declared in <root>.NetRequestStatus.Error'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.<get-error>' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
PROPERTY name:value visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.NetRequestStatus.Error? visibility:private [final]
EXPRESSION_BODY
GET_VAR 'value: T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error.<init>' type=T of <root>.NetRequestStatus.Error? origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:T of <root>.NetRequestStatus.Error?
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [val]
overridden:
public abstract fun <get-value> (): T of <root>.NetRequestStatus? declared in <root>.NetRequestStatus
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-value> (): T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.NetRequestStatus.Error? visibility:private [final]' type=T of <root>.NetRequestStatus.Error? origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.<get-value>' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
FUN name:component1 visibility:public modality:FINAL <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:kotlin.Throwable [operator]
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Throwable [operator] declared in <root>.NetRequestStatus.Error'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.component1' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
FUN name:component2 visibility:public modality:FINAL <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:T of <root>.NetRequestStatus.Error? [operator]
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun component2 (): T of <root>.NetRequestStatus.Error? [operator] declared in <root>.NetRequestStatus.Error'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.NetRequestStatus.Error? visibility:private [final]' type=T of <root>.NetRequestStatus.Error? origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.component2' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
FUN name:copy visibility:public modality:FINAL <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>, error:kotlin.Throwable, value:T of <root>.NetRequestStatus.Error?) returnType:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
VALUE_PARAMETER name:error index:0 type:kotlin.Throwable
EXPRESSION_BODY
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.copy' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
VALUE_PARAMETER name:value index:1 type:T of <root>.NetRequestStatus.Error?
EXPRESSION_BODY
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.NetRequestStatus.Error? visibility:private [final]' type=T of <root>.NetRequestStatus.Error? origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.copy' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun copy (error: kotlin.Throwable, value: T of <root>.NetRequestStatus.Error?): <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error'
CONSTRUCTOR_CALL 'public constructor <init> (error: kotlin.Throwable, value: T of <root>.NetRequestStatus.Error?) [primary] declared in <root>.NetRequestStatus.Error' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
<class: T>: kotlin.Any
error: GET_VAR 'error: kotlin.Throwable declared in <root>.NetRequestStatus.Error.copy' type=kotlin.Throwable origin=null
value: GET_VAR 'value: T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error.copy' type=T of <root>.NetRequestStatus.Error? origin=null
FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>, other:kotlin.Any?) returnType:kotlin.Boolean
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
$this: VALUE_PARAMETER GENERATED_DATA_CLASS_MEMBER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
VALUE_PARAMETER GENERATED_DATA_CLASS_MEMBER name:other index:0 type:kotlin.Any?
BLOCK_BODY
WHEN type=kotlin.Unit origin=null
BRANCH
if: CALL 'public final fun EQEQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQEQ
arg0: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.equals' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
arg1: GET_VAR 'other: kotlin.Any? declared in <root>.NetRequestStatus.Error.equals' type=kotlin.Any? origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.NetRequestStatus.Error'
CONST Boolean type=kotlin.Boolean value=true
WHEN type=kotlin.Unit origin=null
BRANCH
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
GET_VAR 'other: kotlin.Any? declared in <root>.NetRequestStatus.Error.equals' type=kotlin.Any? origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.NetRequestStatus.Error'
CONST Boolean type=kotlin.Boolean value=false
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> [val]
TYPE_OP type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=CAST typeOperand=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
GET_VAR 'other: kotlin.Any? declared in <root>.NetRequestStatus.Error.equals' type=kotlin.Any? origin=null
WHEN type=kotlin.Unit origin=null
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
$this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.equals' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR 'val tmp_0: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> [val] declared in <root>.NetRequestStatus.Error.equals' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.NetRequestStatus.Error'
CONST Boolean type=kotlin.Boolean value=false
WHEN type=kotlin.Unit origin=null
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
$this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.NetRequestStatus.Error? visibility:private [final]' type=T of <root>.NetRequestStatus.Error? origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.equals' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.NetRequestStatus.Error? visibility:private [final]' type=T of <root>.NetRequestStatus.Error? origin=null
receiver: GET_VAR 'val tmp_0: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> [val] declared in <root>.NetRequestStatus.Error.equals' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.NetRequestStatus.Error'
CONST Boolean type=kotlin.Boolean value=false
RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.NetRequestStatus.Error'
CONST Boolean type=kotlin.Boolean value=true
FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:kotlin.Int
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
$this: VALUE_PARAMETER GENERATED_DATA_CLASS_MEMBER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
VAR name:result type:kotlin.Int [var]
CALL 'public open fun hashCode (): kotlin.Int [fake_override] declared in kotlin.Throwable' type=kotlin.Int origin=null
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.hashCode' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
SET_VAR 'var result: kotlin.Int [var] declared in <root>.NetRequestStatus.Error.hashCode' type=kotlin.Unit origin=EQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.NetRequestStatus.Error.hashCode' type=kotlin.Int origin=null
other: CONST Int type=kotlin.Int value=31
other: WHEN type=kotlin.Int 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_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.NetRequestStatus.Error? visibility:private [final]' type=T of <root>.NetRequestStatus.Error? origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.hashCode' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST Int type=kotlin.Int value=0
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.NetRequestStatus.Error? visibility:private [final]' type=T of <root>.NetRequestStatus.Error? origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.hashCode' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in <root>.NetRequestStatus.Error'
GET_VAR 'var result: kotlin.Int [var] declared in <root>.NetRequestStatus.Error.hashCode' type=kotlin.Int origin=null
FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:kotlin.String
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER GENERATED_DATA_CLASS_MEMBER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.NetRequestStatus.Error'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Error("
CONST String type=kotlin.String value="error="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.toString' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
CONST String type=kotlin.String value=", "
CONST String type=kotlin.String value="value="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.NetRequestStatus.Error? visibility:private [final]' type=T of <root>.NetRequestStatus.Error? origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.toString' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
CONST String type=kotlin.String value=")"
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:isError visibility:public modality:FINAL <T> ($receiver:<root>.NetRequestStatus<T of <root>.isError>) returnType:kotlin.Boolean
annotations:
OptIn(markerClass = [CLASS_REFERENCE 'CLASS IR_EXTERNAL_DECLARATION_STUB ANNOTATION_CLASS name:ExperimentalContracts modality:FINAL visibility:public superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass<kotlin.contracts.ExperimentalContracts>])
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]
$receiver: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus<T of <root>.isError>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun isError <T> (): kotlin.Boolean declared in <root>'
TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=<root>.NetRequestStatus.Error<T of <root>.isError>
GET_VAR '<this>: <root>.NetRequestStatus<T of <root>.isError> declared in <root>.isError' type=<root>.NetRequestStatus<T of <root>.isError> origin=null
FUN name:successOrThrow visibility:public modality:FINAL <T> () returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]
BLOCK_BODY
VAR name:nextTerminal type:<root>.NetRequestStatus<T of <root>.successOrThrow> [val]
CONSTRUCTOR_CALL 'public constructor <init> (error: kotlin.Throwable, value: T of <root>.NetRequestStatus.Error?) [primary] declared in <root>.NetRequestStatus.Error' type=<root>.NetRequestStatus.Error<T of <root>.successOrThrow> origin=null
<class: T>: T of <root>.successOrThrow
error: CONSTRUCTOR_CALL 'public constructor <init> () declared in java.lang.Exception' type=java.lang.Exception origin=null
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'public final fun isError <T> (): kotlin.Boolean declared in <root>' type=kotlin.Boolean origin=null
<T>: T of <root>.successOrThrow
$receiver: GET_VAR 'val nextTerminal: <root>.NetRequestStatus<T of <root>.successOrThrow> [val] declared in <root>.successOrThrow' type=<root>.NetRequestStatus<T of <root>.successOrThrow> origin=null
then: THROW type=kotlin.Nothing
CALL 'public final fun <get-error> (): kotlin.Throwable declared in <root>.NetRequestStatus.Error' type=kotlin.Throwable origin=GET_PROPERTY
$this: TYPE_OP type=<root>.NetRequestStatus.Error<T of <root>.successOrThrow> origin=IMPLICIT_CAST typeOperand=<root>.NetRequestStatus.Error<T of <root>.successOrThrow>
GET_VAR 'val nextTerminal: <root>.NetRequestStatus<T of <root>.successOrThrow> [val] declared in <root>.successOrThrow' type=<root>.NetRequestStatus<T of <root>.successOrThrow> origin=null
+24
View File
@@ -0,0 +1,24 @@
// WITH_RUNTIME
// SKIP_KT_DUMP
import kotlin.contracts.ExperimentalContracts
import kotlin.contracts.contract
sealed class NetRequestStatus<out T : Any> {
abstract val value: T?
data class Error<out T : Any>(
val error: Throwable,
override val value: T? = null,
) : NetRequestStatus<T>()
}
@OptIn(ExperimentalContracts::class)
fun <T : Any> NetRequestStatus<T>.isError(): Boolean {
contract { returns(true) implies (this@isError is NetRequestStatus.Error) }
return (this is NetRequestStatus.Error)
}
fun <T : Any> successOrThrow() {
val nextTerminal: NetRequestStatus<T> = NetRequestStatus.Error(Exception())
if (nextTerminal.isError()) throw nextTerminal.error
}
+214
View File
@@ -0,0 +1,214 @@
FILE fqName:<root> fileName:/kt45236.kt
CLASS CLASS name:NetRequestStatus modality:SEALED visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.NetRequestStatus<T of <root>.NetRequestStatus>
TYPE_PARAMETER name:T index:0 variance:out superTypes:[kotlin.Any]
CONSTRUCTOR visibility:protected <> () returnType:<root>.NetRequestStatus<T of <root>.NetRequestStatus> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:NetRequestStatus modality:SEALED visibility:public superTypes:[kotlin.Any]'
PROPERTY name:value visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:ABSTRACT <> ($this:<root>.NetRequestStatus<T of <root>.NetRequestStatus>) returnType:T of <root>.NetRequestStatus?
correspondingProperty: PROPERTY name:value visibility:public modality:ABSTRACT [val]
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus<T of <root>.NetRequestStatus>
CLASS CLASS name:Error modality:FINAL visibility:public [data] superTypes:[<root>.NetRequestStatus<T of <root>.NetRequestStatus.Error>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
TYPE_PARAMETER name:T index:0 variance:out superTypes:[kotlin.Any]
CONSTRUCTOR visibility:public <> (error:kotlin.Throwable, value:T of <root>.NetRequestStatus.Error?) returnType:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> [primary]
VALUE_PARAMETER name:error index:0 type:kotlin.Throwable
VALUE_PARAMETER name:value index:1 type:T of <root>.NetRequestStatus.Error?
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'protected constructor <init> () [primary] declared in <root>.NetRequestStatus'
<T>: T of <root>.NetRequestStatus.Error
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Error modality:FINAL visibility:public [data] superTypes:[<root>.NetRequestStatus<T of <root>.NetRequestStatus.Error>]'
PROPERTY name:error visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]
EXPRESSION_BODY
GET_VAR 'error: kotlin.Throwable declared in <root>.NetRequestStatus.Error.<init>' type=kotlin.Throwable origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-error> visibility:public modality:FINAL <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:kotlin.Throwable
correspondingProperty: PROPERTY name:error visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-error> (): kotlin.Throwable declared in <root>.NetRequestStatus.Error'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.<get-error>' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
PROPERTY name:value visibility:public modality:OPEN [val]
FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.NetRequestStatus.Error? visibility:private [final]
EXPRESSION_BODY
GET_VAR 'value: T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error.<init>' type=T of <root>.NetRequestStatus.Error? origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:OPEN <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:T of <root>.NetRequestStatus.Error?
correspondingProperty: PROPERTY name:value visibility:public modality:OPEN [val]
overridden:
public abstract fun <get-value> (): T of <root>.NetRequestStatus? declared in <root>.NetRequestStatus
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-value> (): T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value type:T of <root>.NetRequestStatus.Error? visibility:private [final]' type=T of <root>.NetRequestStatus.Error? origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.<get-value>' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
FUN GENERATED_DATA_CLASS_MEMBER name:component1 visibility:public modality:FINAL <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:kotlin.Throwable [operator]
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun component1 (): kotlin.Throwable [operator] declared in <root>.NetRequestStatus.Error'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.component1' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
FUN GENERATED_DATA_CLASS_MEMBER name:component2 visibility:public modality:FINAL <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:T of <root>.NetRequestStatus.Error? [operator]
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun component2 (): T of <root>.NetRequestStatus.Error? [operator] declared in <root>.NetRequestStatus.Error'
CALL 'public open fun <get-value> (): T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error' type=T of <root>.NetRequestStatus.Error? origin=null
$this: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.component2' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
FUN GENERATED_DATA_CLASS_MEMBER name:copy visibility:public modality:FINAL <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>, error:kotlin.Throwable, value:T of <root>.NetRequestStatus.Error?) returnType:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
VALUE_PARAMETER name:error index:0 type:kotlin.Throwable
EXPRESSION_BODY
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.copy' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
VALUE_PARAMETER name:value index:1 type:T of <root>.NetRequestStatus.Error?
EXPRESSION_BODY
CALL 'public open fun <get-value> (): T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error' type=T of <root>.NetRequestStatus.Error? origin=null
$this: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.copy' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun copy (error: kotlin.Throwable, value: T of <root>.NetRequestStatus.Error?): <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error'
CONSTRUCTOR_CALL 'public constructor <init> (error: kotlin.Throwable, value: T of <root>.NetRequestStatus.Error?) [primary] declared in <root>.NetRequestStatus.Error' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
<class: T>: T of <root>.NetRequestStatus.Error
error: GET_VAR 'error: kotlin.Throwable declared in <root>.NetRequestStatus.Error.copy' type=kotlin.Throwable origin=null
value: GET_VAR 'value: T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error.copy' type=T of <root>.NetRequestStatus.Error? origin=null
FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:kotlin.String
overridden:
public open fun toString (): kotlin.String [fake_override] declared in <root>.NetRequestStatus
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toString (): kotlin.String declared in <root>.NetRequestStatus.Error'
STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Error("
CONST String type=kotlin.String value="error="
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.toString' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
CONST String type=kotlin.String value=", "
CONST String type=kotlin.String value="value="
CALL 'public open fun <get-value> (): T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error' type=T of <root>.NetRequestStatus.Error? origin=null
$this: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.toString' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
CONST String type=kotlin.String value=")"
FUN GENERATED_DATA_CLASS_MEMBER name:hashCode visibility:public modality:OPEN <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>) returnType:kotlin.Int
overridden:
public open fun hashCode (): kotlin.Int [fake_override] declared in <root>.NetRequestStatus
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
BLOCK_BODY
VAR name:result type:kotlin.Int [var]
CALL 'public open fun hashCode (): kotlin.Int [fake_override] declared in kotlin.Throwable' type=kotlin.Int origin=null
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.hashCode' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
SET_VAR 'var result: kotlin.Int [var] declared in <root>.NetRequestStatus.Error.hashCode' type=kotlin.Unit origin=EQ
CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: CALL 'public final fun times (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null
$this: GET_VAR 'var result: kotlin.Int [var] declared in <root>.NetRequestStatus.Error.hashCode' type=kotlin.Int origin=null
other: CONST Int type=kotlin.Int value=31
other: WHEN type=kotlin.Int 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: CALL 'public open fun <get-value> (): T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error' type=T of <root>.NetRequestStatus.Error? origin=null
$this: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.hashCode' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST Int type=kotlin.Int value=0
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null
$this: CALL 'public open fun <get-value> (): T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error' type=T of <root>.NetRequestStatus.Error? origin=null
$this: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.hashCode' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
RETURN type=kotlin.Nothing from='public open fun hashCode (): kotlin.Int declared in <root>.NetRequestStatus.Error'
GET_VAR 'var result: kotlin.Int [var] declared in <root>.NetRequestStatus.Error.hashCode' type=kotlin.Int origin=null
FUN GENERATED_DATA_CLASS_MEMBER name:equals visibility:public modality:OPEN <> ($this:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>, other:kotlin.Any?) returnType:kotlin.Boolean [operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.NetRequestStatus
$this: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
BLOCK_BODY
WHEN type=kotlin.Unit origin=null
BRANCH
if: CALL 'public final fun EQEQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQEQ
arg0: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.equals' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
arg1: GET_VAR 'other: kotlin.Any? declared in <root>.NetRequestStatus.Error.equals' type=kotlin.Any? origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in <root>.NetRequestStatus.Error'
CONST Boolean type=kotlin.Boolean value=true
WHEN type=kotlin.Unit origin=null
BRANCH
if: TYPE_OP type=kotlin.Boolean origin=NOT_INSTANCEOF typeOperand=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
GET_VAR 'other: kotlin.Any? declared in <root>.NetRequestStatus.Error.equals' type=kotlin.Any? origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in <root>.NetRequestStatus.Error'
CONST Boolean type=kotlin.Boolean value=false
VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> [val]
TYPE_OP type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=CAST typeOperand=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error>
GET_VAR 'other: kotlin.Any? declared in <root>.NetRequestStatus.Error.equals' type=kotlin.Any? origin=null
WHEN type=kotlin.Unit origin=null
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
$this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
arg0: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.equals' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
arg1: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:error type:kotlin.Throwable visibility:private [final]' type=kotlin.Throwable origin=null
receiver: GET_VAR 'val tmp_0: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> [val] declared in <root>.NetRequestStatus.Error.equals' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in <root>.NetRequestStatus.Error'
CONST Boolean type=kotlin.Boolean value=false
WHEN type=kotlin.Unit origin=null
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean [operator] declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
$this: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
arg0: CALL 'public open fun <get-value> (): T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error' type=T of <root>.NetRequestStatus.Error? origin=null
$this: GET_VAR '<this>: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> declared in <root>.NetRequestStatus.Error.equals' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
arg1: CALL 'public open fun <get-value> (): T of <root>.NetRequestStatus.Error? declared in <root>.NetRequestStatus.Error' type=T of <root>.NetRequestStatus.Error? origin=null
$this: GET_VAR 'val tmp_0: <root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> [val] declared in <root>.NetRequestStatus.Error.equals' type=<root>.NetRequestStatus.Error<T of <root>.NetRequestStatus.Error> origin=null
then: RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in <root>.NetRequestStatus.Error'
CONST Boolean type=kotlin.Boolean value=false
RETURN type=kotlin.Nothing from='public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in <root>.NetRequestStatus.Error'
CONST Boolean type=kotlin.Boolean value=true
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:isError visibility:public modality:FINAL <T> ($receiver:<root>.NetRequestStatus<T of <root>.isError>) returnType:kotlin.Boolean
annotations:
OptIn(markerClass = [CLASS_REFERENCE 'CLASS IR_EXTERNAL_DECLARATION_STUB ANNOTATION_CLASS name:ExperimentalContracts modality:FINAL visibility:public superTypes:[kotlin.Annotation]' type=kotlin.reflect.KClass<kotlin.contracts.ExperimentalContracts>])
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]
$receiver: VALUE_PARAMETER name:<this> type:<root>.NetRequestStatus<T of <root>.isError>
BLOCK_BODY
CALL 'public final fun contract (builder: @[ExtensionFunctionType] kotlin.Function1<kotlin.contracts.ContractBuilder, kotlin.Unit>): kotlin.Unit [inline] declared in kotlin.contracts.ContractBuilderKt' type=kotlin.Unit origin=null
builder: FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function1<kotlin.contracts.ContractBuilder, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:kotlin.contracts.ContractBuilder) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:$this$contract type:kotlin.contracts.ContractBuilder
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun implies (booleanExpression: kotlin.Boolean): kotlin.contracts.ConditionalEffect [fake_override,infix] declared in kotlin.contracts.Returns' type=kotlin.contracts.ConditionalEffect origin=null
$this: CALL 'public abstract fun returns (value: kotlin.Any?): kotlin.contracts.Returns declared in kotlin.contracts.ContractBuilder' type=kotlin.contracts.Returns origin=null
$this: GET_VAR '$this$contract: kotlin.contracts.ContractBuilder declared in <root>.isError.<anonymous>' type=kotlin.contracts.ContractBuilder origin=null
value: CONST Boolean type=kotlin.Boolean value=true
booleanExpression: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=<root>.NetRequestStatus.Error<T of <root>.isError>
GET_VAR '<this>: <root>.NetRequestStatus<T of <root>.isError> declared in <root>.isError' type=<root>.NetRequestStatus<T of <root>.isError> origin=null
RETURN type=kotlin.Nothing from='public final fun isError <T> (): kotlin.Boolean declared in <root>'
TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=<root>.NetRequestStatus.Error<T of <root>.isError>
GET_VAR '<this>: <root>.NetRequestStatus<T of <root>.isError> declared in <root>.isError' type=<root>.NetRequestStatus<T of <root>.isError> origin=null
FUN name:successOrThrow visibility:public modality:FINAL <T> () returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]
BLOCK_BODY
VAR name:nextTerminal type:<root>.NetRequestStatus<T of <root>.successOrThrow> [val]
CONSTRUCTOR_CALL 'public constructor <init> (error: kotlin.Throwable, value: T of <root>.NetRequestStatus.Error?) [primary] declared in <root>.NetRequestStatus.Error' type=<root>.NetRequestStatus.Error<T of <root>.successOrThrow> origin=null
<class: T>: T of <root>.successOrThrow
error: CONSTRUCTOR_CALL 'public constructor <init> () declared in java.lang.Exception' type=java.lang.Exception origin=null
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'public final fun isError <T> (): kotlin.Boolean declared in <root>' type=kotlin.Boolean origin=null
<T>: T of <root>.successOrThrow
$receiver: GET_VAR 'val nextTerminal: <root>.NetRequestStatus<T of <root>.successOrThrow> [val] declared in <root>.successOrThrow' type=<root>.NetRequestStatus<T of <root>.successOrThrow> origin=null
then: THROW type=kotlin.Nothing
CALL 'public final fun <get-error> (): kotlin.Throwable declared in <root>.NetRequestStatus.Error' type=kotlin.Throwable origin=GET_PROPERTY
$this: TYPE_OP type=<root>.NetRequestStatus.Error<T of <root>.successOrThrow> origin=IMPLICIT_CAST typeOperand=<root>.NetRequestStatus.Error<T of <root>.successOrThrow>
GET_VAR 'val nextTerminal: <root>.NetRequestStatus<T of <root>.successOrThrow> [val] declared in <root>.successOrThrow' type=<root>.NetRequestStatus<T of <root>.successOrThrow> origin=null
@@ -7400,6 +7400,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
runTest("compiler/testData/codegen/box/contracts/kt39374.kt");
}
@Test
@TestMetadata("kt45236.kt")
public void testKt45236() throws Exception {
runTest("compiler/testData/codegen/box/contracts/kt45236.kt");
}
@Test
@TestMetadata("lambdaParameter.kt")
public void testLambdaParameter() throws Exception {
@@ -7400,6 +7400,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
runTest("compiler/testData/codegen/box/contracts/kt39374.kt");
}
@Test
@TestMetadata("kt45236.kt")
public void testKt45236() throws Exception {
runTest("compiler/testData/codegen/box/contracts/kt45236.kt");
}
@Test
@TestMetadata("lambdaParameter.kt")
public void testLambdaParameter() throws Exception {
@@ -2400,6 +2400,12 @@ public class IrTextTestGenerated extends AbstractIrTextTest {
runTest("compiler/testData/ir/irText/regressions/kt24114.kt");
}
@Test
@TestMetadata("kt45236.kt")
public void testKt45236() throws Exception {
runTest("compiler/testData/ir/irText/regressions/kt45236.kt");
}
@Test
@TestMetadata("typeAliasCtorForGenericClass.kt")
public void testTypeAliasCtorForGenericClass() throws Exception {
@@ -5639,6 +5639,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
runTest("compiler/testData/codegen/box/contracts/kt39374.kt");
}
@TestMetadata("kt45236.kt")
public void testKt45236() throws Exception {
runTest("compiler/testData/codegen/box/contracts/kt45236.kt");
}
@TestMetadata("lambdaParameter.kt")
public void testLambdaParameter() throws Exception {
runTest("compiler/testData/codegen/box/contracts/lambdaParameter.kt");
@@ -4948,6 +4948,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes
runTest("compiler/testData/codegen/box/contracts/kt39374.kt");
}
@TestMetadata("kt45236.kt")
public void testKt45236() throws Exception {
runTest("compiler/testData/codegen/box/contracts/kt45236.kt");
}
@TestMetadata("lambdaParameter.kt")
public void testLambdaParameter() throws Exception {
runTest("compiler/testData/codegen/box/contracts/lambdaParameter.kt");
@@ -4359,6 +4359,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/contracts/kt39374.kt");
}
@TestMetadata("kt45236.kt")
public void testKt45236() throws Exception {
runTest("compiler/testData/codegen/box/contracts/kt45236.kt");
}
@TestMetadata("lambdaParameter.kt")
public void testLambdaParameter() throws Exception {
runTest("compiler/testData/codegen/box/contracts/lambdaParameter.kt");
@@ -4359,6 +4359,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
runTest("compiler/testData/codegen/box/contracts/kt39374.kt");
}
@TestMetadata("kt45236.kt")
public void testKt45236() throws Exception {
runTest("compiler/testData/codegen/box/contracts/kt45236.kt");
}
@TestMetadata("lambdaParameter.kt")
public void testLambdaParameter() throws Exception {
runTest("compiler/testData/codegen/box/contracts/lambdaParameter.kt");