Fix type arguments mapping

This commit is contained in:
Dmitry Petrov
2018-03-19 14:08:04 +03:00
parent eb5904ea8e
commit 135d3ab57a
33 changed files with 365 additions and 165 deletions
+1 -1
View File
@@ -82,7 +82,7 @@ FILE fqName:<root> fileName:/classes.kt
CONSTRUCTOR visibility:private <> () returnType:TestEnumClass flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: TestEnumClass
INSTANCE_INITIALIZER_CALL classDescriptor='TestEnumClass'
FUN FAKE_OVERRIDE name:clone visibility:protected modality:FINAL <> ($this:kotlin.Enum<TestEnumClass>) returnType:Any flags:
overridden:
@@ -493,7 +493,7 @@ FILE fqName:<root> fileName:/dataClassWithArrayMembers.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='copy(Array<T> = ...): Test2<T>'
CALL 'constructor Test2(Array<T>)' type=Test2<T> origin=null
<T>: null
<T>: T
genericArray: GET_VAR 'value-parameter genericArray: Array<T> = ...' type=kotlin.Array<T> origin=null
FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:Test2<T>) returnType:String flags:
overridden:
+1 -1
View File
@@ -36,7 +36,7 @@ FILE fqName:<root> fileName:/dataClassesGeneric.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='copy(T = ...): Test1<T>'
CALL 'constructor Test1(T)' type=Test1<T> origin=null
<T>: null
<T>: T
x: GET_VAR 'value-parameter x: T = ...' type=T origin=null
FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:Test1<T>) returnType:String flags:
overridden:
@@ -43,7 +43,7 @@ FILE fqName:<root> fileName:/delegatingConstructorCallToTypeAliasConstructor.kt
CONSTRUCTOR visibility:public <> () returnType:C1 flags:
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Cell(String)'
<T>: null
<T>: String
value: CONST String type=kotlin.String value=O
INSTANCE_INITIALIZER_CALL classDescriptor='C1'
PROPERTY FAKE_OVERRIDE name:value type:kotlin.String visibility:public modality:FINAL flags:val
@@ -71,7 +71,7 @@ FILE fqName:<root> fileName:/delegatingConstructorCallToTypeAliasConstructor.kt
CONSTRUCTOR visibility:public <> () returnType:C2 flags:
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Cell(String)'
<T>: null
<T>: String
value: CONST String type=kotlin.String value=K
INSTANCE_INITIALIZER_CALL classDescriptor='C2'
PROPERTY FAKE_OVERRIDE name:value type:kotlin.String visibility:public modality:FINAL flags:val
+5 -5
View File
@@ -6,7 +6,7 @@ FILE fqName:<root> fileName:/enum.kt
CONSTRUCTOR visibility:private <> () returnType:TestEnum1 flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: TestEnum1
INSTANCE_INITIALIZER_CALL classDescriptor='TestEnum1'
ENUM_ENTRY name:TEST1
init: ENUM_CONSTRUCTOR_CALL 'constructor TestEnum1()'
@@ -65,7 +65,7 @@ FILE fqName:<root> fileName:/enum.kt
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: TestEnum2
INSTANCE_INITIALIZER_CALL classDescriptor='TestEnum2'
PROPERTY name:x type:kotlin.Int visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public
@@ -138,7 +138,7 @@ FILE fqName:<root> fileName:/enum.kt
CONSTRUCTOR visibility:private <> () returnType:TestEnum3 flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: TestEnum3
INSTANCE_INITIALIZER_CALL classDescriptor='TestEnum3'
ENUM_ENTRY name:TEST
init: ENUM_CONSTRUCTOR_CALL 'constructor TEST()'
@@ -252,7 +252,7 @@ FILE fqName:<root> fileName:/enum.kt
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: TestEnum4
INSTANCE_INITIALIZER_CALL classDescriptor='TestEnum4'
PROPERTY name:x type:kotlin.Int visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public
@@ -461,7 +461,7 @@ FILE fqName:<root> fileName:/enum.kt
CONST Int type=kotlin.Int value=0
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: TestEnum5
INSTANCE_INITIALIZER_CALL classDescriptor='TestEnum5'
PROPERTY name:x type:kotlin.Int visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public
@@ -7,7 +7,7 @@ FILE fqName:<root> fileName:/enumWithSecondaryCtor.kt
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: Test0
INSTANCE_INITIALIZER_CALL classDescriptor='Test0'
PROPERTY name:x type:kotlin.Int visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public
@@ -78,7 +78,7 @@ FILE fqName:<root> fileName:/enumWithSecondaryCtor.kt
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: Test1
INSTANCE_INITIALIZER_CALL classDescriptor='Test1'
PROPERTY name:x type:kotlin.Int visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public
@@ -152,7 +152,7 @@ FILE fqName:<root> fileName:/enumWithSecondaryCtor.kt
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: Test2
INSTANCE_INITIALIZER_CALL classDescriptor='Test2'
PROPERTY name:x type:kotlin.Int visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public
@@ -57,7 +57,7 @@ FILE fqName:<root> fileName:/expectedEnumClass.kt
CONSTRUCTOR visibility:private <> () returnType:MyEnum flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: MyEnum
INSTANCE_INITIALIZER_CALL classDescriptor='MyEnum'
ENUM_ENTRY name:FOO
init: ENUM_CONSTRUCTOR_CALL 'constructor MyEnum()'
@@ -59,7 +59,7 @@ FILE fqName:<root> fileName:/dataClassMembers.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='copy(T = ..., String = ...): Test<T>'
CALL 'constructor Test(T, String = ...)' type=Test<T> origin=null
<T>: null
<T>: T
x: GET_VAR 'value-parameter x: T = ...' type=T origin=null
y: GET_VAR 'value-parameter y: String = ...' type=kotlin.String origin=null
FUN GENERATED_DATA_CLASS_MEMBER name:toString visibility:public modality:OPEN <> ($this:Test<T>) returnType:String flags:
@@ -58,7 +58,7 @@ FILE fqName:<root> fileName:/delegatedMembers.kt
VALUE_PARAMETER name:x index:1 type:X flags:
BLOCK_BODY
CALL 'qux(TT, X): Unit' type=kotlin.Unit origin=null
<X>: null
<X>: X
$this: GET_FIELD '`Test$IBase$delegate`: IBase<TT>' type=IBase<TT> origin=null
receiver: GET_VAR 'this@Test: Test<TT>' type=Test<TT> origin=null
t: GET_VAR 'value-parameter t: TT' type=TT origin=null
@@ -6,7 +6,7 @@ FILE fqName:<root> fileName:/enumEntryAsReceiver.kt
CONSTRUCTOR visibility:private <> () returnType:X flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: X
INSTANCE_INITIALIZER_CALL classDescriptor='X'
ENUM_ENTRY name:B
init: ENUM_CONSTRUCTOR_CALL 'constructor B()'
@@ -0,0 +1,3 @@
class GenericClass<T>(val value: T) {
fun withNewValue(newValue: T) = GenericClass(newValue)
}
@@ -0,0 +1,44 @@
FILE fqName:<root> fileName:/memberTypeArguments.kt
CLASS CLASS name:GenericClass modality:FINAL visibility:public flags:
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:GenericClass<T> flags:
superClasses:
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
superClassifiers:
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
CONSTRUCTOR visibility:public <> (value:T) returnType:GenericClass<T> flags:
VALUE_PARAMETER name:value index:0 type:T flags:
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
INSTANCE_INITIALIZER_CALL classDescriptor='GenericClass'
PROPERTY name:value type:T visibility:public modality:FINAL flags:val
FIELD PROPERTY_BACKING_FIELD name:value type:T visibility:public
EXPRESSION_BODY
GET_VAR 'value-parameter value: T' type=T origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-value> visibility:public modality:FINAL <> ($this:GenericClass<T>) returnType:T flags:
$this: VALUE_PARAMETER name:<this> type:GenericClass<T> flags:
BLOCK_BODY
RETURN type=kotlin.Nothing from='<get-value>(): T'
GET_FIELD 'value: T' type=T origin=null
receiver: GET_VAR 'this@GenericClass: GenericClass<T>' type=GenericClass<T> origin=null
FUN name:withNewValue visibility:public modality:FINAL <> ($this:GenericClass<T>, newValue:T) returnType:GenericClass<T> flags:
$this: VALUE_PARAMETER name:<this> type:GenericClass<T> flags:
VALUE_PARAMETER name:newValue index:0 type:T flags:
BLOCK_BODY
RETURN type=kotlin.Nothing from='withNewValue(T): GenericClass<T>'
CALL 'constructor GenericClass(T)' type=GenericClass<T> origin=null
<T>: T
value: GET_VAR 'value-parameter newValue: T' type=T origin=null
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:Boolean flags:
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:Boolean flags:
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:Int flags:
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:Int flags:
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:String flags:
overridden:
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:String flags:
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
@@ -27,7 +27,7 @@ FILE fqName:<root> fileName:/objectAsCallable.kt
CONSTRUCTOR visibility:private <> () returnType:En flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: En
INSTANCE_INITIALIZER_CALL classDescriptor='En'
ENUM_ENTRY name:X
init: ENUM_CONSTRUCTOR_CALL 'constructor En()'
@@ -39,5 +39,5 @@ FILE fqName:<root> fileName:/specializedTypeAliasConstructorCall.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='test(): IntAlias /* = Cell<Int> */'
CALL 'constructor Cell(Int)' type=Cell<kotlin.Int> origin=null
<T>: null
<T>: Int
value: CONST Int type=kotlin.Int value=42
+1 -1
View File
@@ -6,7 +6,7 @@ FILE fqName:<root> fileName:/values.kt
CONSTRUCTOR visibility:private <> () returnType:Enum flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: Enum
INSTANCE_INITIALIZER_CALL classDescriptor='Enum'
ENUM_ENTRY name:A
init: ENUM_CONSTRUCTOR_CALL 'constructor Enum()'
@@ -40,10 +40,10 @@ FILE fqName:<root> fileName:/typeAliasCtorForGenericClass.kt
BLOCK_BODY
VAR name:b type:B<kotlin.Int> /* = A<kotlin.Int> */ flags:val
CALL 'constructor A(Int)' type=A<kotlin.Int> origin=null
<Q>: null
<Q>: Int
q: CONST Int type=kotlin.Int value=2
VAR name:b2 type:B2<kotlin.Int> /* = A<A<kotlin.Int>> */ flags:val
CALL 'constructor A(A<Int>)' type=A<A<kotlin.Int>> origin=null
<Q>: null
<Q>: A<Int>
q: GET_VAR 'b: B<Int> /* = A<Int> */' type=B<kotlin.Int> /* = A<kotlin.Int> */ origin=null
+1 -1
View File
@@ -6,7 +6,7 @@ FILE fqName:<root> fileName:/enumEntry.kt
CONSTRUCTOR visibility:private <> () returnType:Z flags:
BLOCK_BODY
ENUM_CONSTRUCTOR_CALL 'constructor Enum(String, Int)'
<E : Enum<E>>: null
<E : Enum<E>>: Z
INSTANCE_INITIALIZER_CALL classDescriptor='Z'
ENUM_ENTRY name:ENTRY
init: ENUM_CONSTRUCTOR_CALL 'constructor ENTRY()'
+1 -1
View File
@@ -2,5 +2,5 @@
// WITH_RUNTIME
// FULL_JDK
fun <K, V> Map<out K, V>.plus(pair: Pair<K, V>): Map<K, V> =
fun <K1, V1> Map<out K1, V1>.plus(pair: Pair<K1, V1>): Map<K1, V1> =
if (this.isEmpty()) mapOf(pair) else LinkedHashMap(this).apply { put(pair.first, pair.second) }
+29 -30
View File
@@ -1,43 +1,42 @@
FILE fqName:<root> fileName:/builtinMap.kt
FUN name:plus visibility:public modality:FINAL <K, V> ($receiver:kotlin.collections.Map<out K, V>, pair:kotlin.Pair<K, V>) returnType:Map<K, V> flags:
TYPE_PARAMETER name:K index:0 variance: upperBounds:[kotlin.Any?]
FUN name:plus visibility:public modality:FINAL <K1, V1> ($receiver:kotlin.collections.Map<out K1, V1>, pair:kotlin.Pair<K1, V1>) returnType:Map<K1, V1> flags:
TYPE_PARAMETER name:K1 index:0 variance: upperBounds:[kotlin.Any?]
superClassifiers:
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
TYPE_PARAMETER name:V index:1 variance: upperBounds:[kotlin.Any?]
TYPE_PARAMETER name:V1 index:1 variance: upperBounds:[kotlin.Any?]
superClassifiers:
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<out K, V> flags:
VALUE_PARAMETER name:pair index:0 type:kotlin.Pair<K, V> flags:
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.Map<out K1, V1> flags:
VALUE_PARAMETER name:pair index:0 type:kotlin.Pair<K1, V1> flags:
BLOCK_BODY
RETURN type=kotlin.Nothing from='plus(Pair<K, V>) on Map<out K, V>: Map<K, V>'
WHEN type=kotlin.collections.Map<K, V> origin=null
RETURN type=kotlin.Nothing from='plus(Pair<K1, V1>) on Map<out K1, V1>: Map<K1, V1>'
WHEN type=kotlin.collections.Map<K1, V1> origin=null
BRANCH
if: CALL 'isEmpty(): Boolean' type=kotlin.Boolean origin=null
$this: GET_VAR 'this@plus: Map<out K, V>' type=kotlin.collections.Map<out K, V> origin=null
then: CALL 'mapOf(Pair<K, V>): Map<K, V>' type=kotlin.collections.Map<K, V> origin=null
<K>: K
<V>: V
pair: GET_VAR 'value-parameter pair: Pair<K, V>' type=kotlin.Pair<K, V> origin=null
$this: GET_VAR 'this@plus: Map<out K1, V1>' type=kotlin.collections.Map<out K1, V1> origin=null
then: CALL 'mapOf(Pair<K1, V1>): Map<K1, V1>' type=kotlin.collections.Map<K1, V1> origin=null
<K>: K1
<V>: V1
pair: GET_VAR 'value-parameter pair: Pair<K1, V1>' type=kotlin.Pair<K1, V1> origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CALL 'apply(LinkedHashMap<K!, V!> /* = LinkedHashMap<K!, V!> */.() -> Unit) on LinkedHashMap<K!, V!> /* = LinkedHashMap<K!, V!> */: LinkedHashMap<K!, V!> /* = LinkedHashMap<K!, V!> */' type=kotlin.collections.LinkedHashMap<K!, V!> /* = java.util.LinkedHashMap<K!, V!> */ origin=null
<T>: LinkedHashMap<K!, V!> /* = LinkedHashMap<K!, V!> */
$receiver: CALL 'constructor LinkedHashMap((MutableMap<out K!, out V!>..Map<out K!, V!>?))' type=java.util.LinkedHashMap<K!, V!> origin=null
<K : Any!>: null
<V : Any!>: null
p0: GET_VAR 'this@plus: Map<out K, V>' type=kotlin.collections.Map<out K, V> origin=null
block: BLOCK type=kotlin.collections.LinkedHashMap<K!, V!> /* = java.util.LinkedHashMap<K!, V!> */.() -> kotlin.Unit origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:kotlin.collections.LinkedHashMap<K!, V!> /* = java.util.LinkedHashMap<K!, V!> */) returnType:Unit flags:
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.LinkedHashMap<K!, V!> /* = java.util.LinkedHashMap<K!, V!> */ flags:
then: CALL 'apply(LinkedHashMap<K1!, V1!> /* = LinkedHashMap<K1!, V1!> */.() -> Unit) on LinkedHashMap<K1!, V1!> /* = LinkedHashMap<K1!, V1!> */: LinkedHashMap<K1!, V1!> /* = LinkedHashMap<K1!, V1!> */' type=kotlin.collections.LinkedHashMap<K1!, V1!> /* = java.util.LinkedHashMap<K1!, V1!> */ origin=null
<T>: LinkedHashMap<K1!, V1!> /* = LinkedHashMap<K1!, V1!> */
$receiver: CALL 'constructor LinkedHashMap((MutableMap<out K1!, out V1!>..Map<out K1!, V1!>?))' type=java.util.LinkedHashMap<K1!, V1!> origin=null
<K : Any!>: K1!
<V : Any!>: V1!
p0: GET_VAR 'this@plus: Map<out K1, V1>' type=kotlin.collections.Map<out K1, V1> origin=null
block: BLOCK type=kotlin.collections.LinkedHashMap<K1!, V1!> /* = java.util.LinkedHashMap<K1!, V1!> */.() -> kotlin.Unit origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:kotlin.collections.LinkedHashMap<K1!, V1!> /* = java.util.LinkedHashMap<K1!, V1!> */) returnType:Unit flags:
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.LinkedHashMap<K1!, V1!> /* = java.util.LinkedHashMap<K1!, V1!> */ flags:
BLOCK_BODY
RETURN type=kotlin.Nothing from='<anonymous>() on LinkedHashMap<K!, V!> /* = LinkedHashMap<K!, V!> */: Unit'
RETURN type=kotlin.Nothing from='<anonymous>() on LinkedHashMap<K1!, V1!> /* = LinkedHashMap<K1!, V1!> */: Unit'
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
typeOperand: CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public flags:
CALL 'put(K!, V!): V?' type=V? origin=null
$this: GET_VAR 'this@<anonymous>: LinkedHashMap<(K..K?), (V..V?)>' type=kotlin.collections.LinkedHashMap<K!, V!> /* = java.util.LinkedHashMap<K!, V!> */ origin=null
key: CALL '<get-first>(): K' type=K origin=GET_PROPERTY
$this: GET_VAR 'value-parameter pair: Pair<K, V>' type=kotlin.Pair<K, V> origin=null
value: CALL '<get-second>(): V' type=V origin=GET_PROPERTY
$this: GET_VAR 'value-parameter pair: Pair<K, V>' type=kotlin.Pair<K, V> origin=null
FUNCTION_REFERENCE '<anonymous>() on LinkedHashMap<K!, V!> /* = LinkedHashMap<K!, V!> */: Unit' type=kotlin.collections.LinkedHashMap<K!, V!> /* = java.util.LinkedHashMap<K!, V!> */.() -> kotlin.Unit origin=LAMBDA
CALL 'put(K1!, V1!): V1?' type=V1? origin=null
$this: GET_VAR 'this@<anonymous>: LinkedHashMap<(K1..K1?), (V1..V1?)>' type=kotlin.collections.LinkedHashMap<K1!, V1!> /* = java.util.LinkedHashMap<K1!, V1!> */ origin=null
key: CALL '<get-first>(): K1' type=K1 origin=GET_PROPERTY
$this: GET_VAR 'value-parameter pair: Pair<K1, V1>' type=kotlin.Pair<K1, V1> origin=null
value: CALL '<get-second>(): V1' type=V1 origin=GET_PROPERTY
$this: GET_VAR 'value-parameter pair: Pair<K1, V1>' type=kotlin.Pair<K1, V1> origin=null
FUNCTION_REFERENCE '<anonymous>() on LinkedHashMap<K1!, V1!> /* = LinkedHashMap<K1!, V1!> */: Unit' type=kotlin.collections.LinkedHashMap<K1!, V1!> /* = java.util.LinkedHashMap<K1!, V1!> */.() -> kotlin.Unit origin=LAMBDA