FILE fqName: fileName:/smartcastFromGenericToString.kt CLASS CLASS name:Some modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Some.Some> TYPE_PARAMETER name:V index:0 variance: superTypes:[kotlin.Any] reified:false PROPERTY name:map visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:map type:kotlin.collections.Map.Some> visibility:private [final] EXPRESSION_BODY GET_VAR 'map: kotlin.collections.Map.Some> declared in .Some.' type=kotlin.collections.Map.Some> origin=INITIALIZE_PROPERTY_FROM_PARAMETER FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.Some.Some>) returnType:kotlin.collections.Map.Some> correspondingProperty: PROPERTY name:map visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.Some.Some> BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun (): kotlin.collections.Map.Some> declared in .Some' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:map type:kotlin.collections.Map.Some> visibility:private [final]' type=kotlin.collections.Map.Some> origin=null receiver: GET_VAR ': .Some.Some> declared in .Some.' type=.Some.Some> origin=null CONSTRUCTOR visibility:public <> (map:kotlin.collections.Map.Some>) returnType:.Some.Some> [primary] VALUE_PARAMETER name:map index:0 type:kotlin.collections.Map.Some> BLOCK_BODY DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Some modality:FINAL visibility:public 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 declared in kotlin.Any $this: VALUE_PARAMETER name: 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: 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: type:kotlin.Any FUN name:addK visibility:public modality:FINAL <> ($this:.Some.Some>, s:kotlin.String) returnType:kotlin.String $this: VALUE_PARAMETER name: type:.Some.Some> VALUE_PARAMETER name:s index:0 type:kotlin.String BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun addK (s: kotlin.String): kotlin.String declared in .Some' CALL 'public final fun plus (other: kotlin.Any?): kotlin.String declared in kotlin.String' type=kotlin.String origin=PLUS $this: GET_VAR 's: kotlin.String declared in .Some.addK' type=kotlin.String origin=null other: CONST String type=kotlin.String value="K" FUN name:test visibility:public modality:FINAL <> ($this:.Some.Some>, key:kotlin.String) returnType:kotlin.String $this: VALUE_PARAMETER name: type:.Some.Some> VALUE_PARAMETER name:key index:0 type:kotlin.String BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun test (key: kotlin.String): kotlin.String declared in .Some' BLOCK type=kotlin.String origin=WHEN VAR name:value type:V of .Some [val] CALL 'public final fun getValue (key: K of kotlin.collections.getValue): V of kotlin.collections.getValue declared in kotlin.collections' type=V of .Some origin=null : kotlin.String : V of .Some $receiver: CALL 'public final fun (): kotlin.collections.Map.Some> declared in .Some' type=kotlin.collections.Map.Some> origin=GET_PROPERTY $this: GET_VAR ': .Some.Some> declared in .Some.test' type=.Some.Some> origin=null key: GET_VAR 'key: kotlin.String declared in .Some.test' type=kotlin.String origin=null WHEN type=kotlin.String origin=WHEN BRANCH if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.String GET_VAR 'val value: V of .Some declared in .Some.test' type=V of .Some origin=null then: CALL 'public final fun addK (s: kotlin.String): kotlin.String declared in .Some' type=kotlin.String origin=null $this: GET_VAR ': .Some.Some> declared in .Some.test' type=.Some.Some> origin=null s: TYPE_OP type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String GET_VAR 'val value: V of .Some declared in .Some.test' type=V of .Some origin=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: STRING_CONCATENATION type=kotlin.String CONST String type=kotlin.String value="Fail: " GET_VAR 'val value: V of .Some declared in .Some.test' type=V of .Some origin=null FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String BLOCK_BODY VAR name:x type:.Some [val] CONSTRUCTOR_CALL 'public constructor (map: kotlin.collections.Map.Some>) declared in .Some' type=.Some origin=null : kotlin.String map: CALL 'public final fun mapOf (pair: kotlin.Pair): kotlin.collections.Map declared in kotlin.collections' type=kotlin.collections.Map origin=null : kotlin.String : kotlin.String pair: CALL 'public final fun to (that: B of kotlin.to): kotlin.Pair declared in kotlin' type=kotlin.Pair origin=null : kotlin.String : kotlin.String $receiver: CONST String type=kotlin.String value="key" that: CONST String type=kotlin.String value="O" RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in ' CALL 'public final fun test (key: kotlin.String): kotlin.String declared in .Some' type=kotlin.String origin=null $this: GET_VAR 'val x: .Some declared in .box' type=.Some origin=null key: CONST String type=kotlin.String value="key"