FIR2IR: correctly set type parameters of property accessors

In particular, we generate different type parameters for
getters & setters here.
This commit is contained in:
Mikhail Glukhikh
2020-02-25 16:24:23 +03:00
parent 50abb07245
commit 3a3d6e740c
20 changed files with 278 additions and 317 deletions
@@ -50,25 +50,31 @@ internal fun <T : IrElement> FirElement.convertWithOffsets(
internal fun createErrorType(): IrErrorType = IrErrorTypeImpl(null, emptyList(), Variance.INVARIANT)
fun FirTypeRef.toIrType(session: FirSession, declarationStorage: Fir2IrDeclarationStorage, irBuiltIns: IrBuiltIns): IrType {
fun FirTypeRef.toIrType(
session: FirSession,
declarationStorage: Fir2IrDeclarationStorage,
irBuiltIns: IrBuiltIns,
forSetter: Boolean = false
): IrType {
if (this !is FirResolvedTypeRef) {
return createErrorType()
}
return type.toIrType(session, declarationStorage, irBuiltIns)
return type.toIrType(session, declarationStorage, irBuiltIns, forSetter = forSetter)
}
fun ConeKotlinType.toIrType(
session: FirSession,
declarationStorage: Fir2IrDeclarationStorage,
irBuiltIns: IrBuiltIns,
definitelyNotNull: Boolean = false
definitelyNotNull: Boolean = false,
forSetter: Boolean = false
): IrType {
return when (this) {
is ConeKotlinErrorType -> createErrorType()
is ConeLookupTagBasedType -> {
val irSymbol = getArrayType(this.classId, irBuiltIns) ?: run {
val firSymbol = this.lookupTag.toSymbol(session) ?: return createErrorType()
firSymbol.toIrSymbol(session, declarationStorage)
firSymbol.toIrSymbol(session, declarationStorage, forSetter)
}
// TODO: annotations
IrSimpleTypeImpl(
@@ -132,10 +138,14 @@ fun ConeTypeProjection.toIrTypeArgument(
}
}
fun FirClassifierSymbol<*>.toIrSymbol(session: FirSession, declarationStorage: Fir2IrDeclarationStorage): IrClassifierSymbol {
fun FirClassifierSymbol<*>.toIrSymbol(
session: FirSession,
declarationStorage: Fir2IrDeclarationStorage,
forSetter: Boolean = false
): IrClassifierSymbol {
return when (this) {
is FirTypeParameterSymbol -> {
toTypeParameterSymbol(declarationStorage)
toTypeParameterSymbol(declarationStorage, forSetter)
}
is FirTypeAliasSymbol -> {
val typeAlias = fir
@@ -178,8 +188,11 @@ fun FirClassSymbol<*>.toClassSymbol(declarationStorage: Fir2IrDeclarationStorage
return declarationStorage.getIrClassSymbol(this)
}
fun FirTypeParameterSymbol.toTypeParameterSymbol(declarationStorage: Fir2IrDeclarationStorage): IrTypeParameterSymbol {
return declarationStorage.getIrTypeParameterSymbol(this)
fun FirTypeParameterSymbol.toTypeParameterSymbol(
declarationStorage: Fir2IrDeclarationStorage,
forSetter: Boolean = false
): IrTypeParameterSymbol {
return declarationStorage.getIrTypeParameterSymbol(this, forSetter)
}
fun FirFunctionSymbol<*>.toFunctionSymbol(declarationStorage: Fir2IrDeclarationStorage): IrFunctionSymbol {
@@ -61,6 +61,8 @@ class Fir2IrDeclarationStorage(
private val typeParameterCache = mutableMapOf<FirTypeParameter, IrTypeParameter>()
private val typeParameterCacheForSetter = mutableMapOf<FirTypeParameter, IrTypeParameter>()
private val functionCache = mutableMapOf<FirSimpleFunction, IrSimpleFunction>()
private val constructorCache = mutableMapOf<FirConstructor, IrConstructor>()
@@ -100,8 +102,8 @@ class Fir2IrDeclarationStorage(
irSymbolTable.leaveScope(descriptor)
}
private fun FirTypeRef.toIrType(session: FirSession, declarationStorage: Fir2IrDeclarationStorage) =
toIrType(session, declarationStorage, irBuiltIns)
private fun FirTypeRef.toIrType(session: FirSession, declarationStorage: Fir2IrDeclarationStorage, forSetter: Boolean = false) =
toIrType(session, declarationStorage, irBuiltIns, forSetter)
private fun getIrExternalPackageFragment(fqName: FqName): IrExternalPackageFragment {
return fragmentCache.getOrPut(fqName) {
@@ -148,12 +150,15 @@ class Fir2IrDeclarationStorage(
private fun preCacheTypeParameters(owner: FirTypeParametersOwner) {
owner.typeParameters.mapIndexed { index, typeParameter ->
getIrTypeParameter(typeParameter, index)
if (owner is FirProperty && owner.isVar) {
getIrTypeParameter(typeParameter, index, forSetter = true)
}
}
}
private fun IrTypeParametersContainer.setTypeParameters(owner: FirTypeParametersOwner) {
private fun IrTypeParametersContainer.setTypeParameters(owner: FirTypeParametersOwner, forSetter: Boolean = false) {
typeParameters = owner.typeParameters.mapIndexed { index, typeParameter ->
getIrTypeParameter(typeParameter, index).apply { parent = this@setTypeParameters }
getIrTypeParameter(typeParameter, index, forSetter).apply { parent = this@setTypeParameters }
}
}
@@ -323,9 +328,25 @@ class Fir2IrDeclarationStorage(
}.declareSupertypesAndTypeParameters(anonymousObject)
}
// TODO: change index default to -1
private fun getIrTypeParameter(typeParameter: FirTypeParameter, index: Int = 0): IrTypeParameter {
return typeParameterCache[typeParameter] ?: typeParameter.run {
private fun getIrTypeParameter(typeParameter: FirTypeParameter, index: Int = -1, forSetter: Boolean = false): IrTypeParameter {
// Here transformation is a bit difficult because one FIR property type parameter
// can be transformed to two different type parameters: one for getter and another one for setter
val simpleCachedParameter = typeParameterCache[typeParameter]
if (simpleCachedParameter != null) {
if (!forSetter) {
return simpleCachedParameter
}
if (index < 0) {
val parent = simpleCachedParameter.parent
if (parent !is IrSimpleFunction || parent.returnType == unitType) {
return simpleCachedParameter
}
}
}
if (forSetter) {
typeParameterCacheForSetter[typeParameter]?.let { return it }
}
return typeParameter.run {
// Yet I don't want to enable this requirement because it breaks some tests
// However, if we get here it *should* mean that type parameter index is given explicitly
// At this moment (20.02.2020) this requirement breaks 11/355 Fir2IrText tests
@@ -337,7 +358,7 @@ class Fir2IrDeclarationStorage(
irSymbolTable.declareGlobalTypeParameter(startOffset, endOffset, origin, descriptor) { symbol ->
IrTypeParameterImpl(
startOffset, endOffset, origin, symbol,
name, index,
name, if (index < 0) 0 else index,
isReified,
variance
).apply {
@@ -347,7 +368,11 @@ class Fir2IrDeclarationStorage(
}
// Cache the type parameter BEFORE processing its bounds/supertypes, to properly handle recursive type bounds.
typeParameterCache[typeParameter] = irTypeParameter
if (forSetter) {
typeParameterCacheForSetter[typeParameter] = irTypeParameter
} else {
typeParameterCache[typeParameter] = irTypeParameter
}
bounds.mapTo(irTypeParameter.superTypes) { it.toIrType(session, this@Fir2IrDeclarationStorage) }
irTypeParameter
}
@@ -419,14 +444,18 @@ class Fir2IrDeclarationStorage(
if (function is FirSimpleFunction) {
setTypeParameters(function)
}
val forSetter = function is FirPropertyAccessor && function.isSetter
if (function is FirDefaultPropertySetter) {
val type = function.valueParameters.first().returnTypeRef.toIrType(session, this@Fir2IrDeclarationStorage)
val type = function.valueParameters.first().returnTypeRef.toIrType(
session, this@Fir2IrDeclarationStorage, forSetter = true
)
declareDefaultSetterParameter(type)
} else if (function != null) {
valueParameters = function.valueParameters.mapIndexed { index, valueParameter ->
createAndSaveIrParameter(
valueParameter, index,
useStubForDefaultValueStub = function !is FirConstructor || containingClass?.name != Name.identifier("Enum")
useStubForDefaultValueStub = function !is FirConstructor || containingClass?.name != Name.identifier("Enum"),
forSetter = forSetter
).apply {
this.parent = parent
}
@@ -439,7 +468,7 @@ class Fir2IrDeclarationStorage(
extensionReceiverParameter = receiverTypeRef.convertWithOffsets { startOffset, endOffset ->
declareThisReceiverParameter(
parent,
thisType = receiverTypeRef.toIrType(session, this@Fir2IrDeclarationStorage),
thisType = receiverTypeRef.toIrType(session, this@Fir2IrDeclarationStorage, forSetter),
thisOrigin = thisOrigin,
startOffset = startOffset,
endOffset = endOffset
@@ -593,14 +622,14 @@ class Fir2IrDeclarationStorage(
private fun createIrPropertyAccessor(
propertyAccessor: FirPropertyAccessor?,
property: FirProperty,
correspondingProperty: IrProperty,
propertyType: IrType,
irParent: IrDeclarationParent?,
isSetter: Boolean,
origin: IrDeclarationOrigin,
startOffset: Int,
endOffset: Int,
correspondingPropertyReceiverTypeRef: FirTypeRef?
endOffset: Int
): IrSimpleFunction {
val propertyDescriptor = correspondingProperty.descriptor
val descriptor =
@@ -623,12 +652,15 @@ class Fir2IrDeclarationStorage(
isFakeOverride = origin == IrDeclarationOrigin.FAKE_OVERRIDE,
isOperator = false
).apply {
setTypeParameters(property, forSetter = isSetter)
if (propertyAccessor == null && isSetter) {
declareDefaultSetterParameter(propertyType)
declareDefaultSetterParameter(
property.returnTypeRef.toIrType(session, this@Fir2IrDeclarationStorage, forSetter = true)
)
}
}.bindAndDeclareParameters(
propertyAccessor, descriptor, irParent, isStatic = irParent !is IrClass, shouldLeaveScope = true,
parentPropertyReceiverType = correspondingPropertyReceiverTypeRef
parentPropertyReceiverType = property.receiverTypeRef
).apply {
if (irParent != null) {
parent = irParent
@@ -705,26 +737,24 @@ class Fir2IrDeclarationStorage(
).apply {
descriptor.bind(this)
val type = property.returnTypeRef.toIrType(session, this@Fir2IrDeclarationStorage)
val receiverType = property.receiverTypeRef
getter = createIrPropertyAccessor(
property.getter, this, type, irParent, false,
property.getter, property, this, type, irParent, false,
when {
property.delegate != null -> IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR
property.getter is FirDefaultPropertyGetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR
else -> origin
},
startOffset, endOffset, correspondingPropertyReceiverTypeRef = receiverType
startOffset, endOffset
)
if (property.isVar) {
setter = createIrPropertyAccessor(
property.setter, this, type, irParent, true,
property.setter, property, this, type, irParent, true,
when {
property.delegate != null -> IrDeclarationOrigin.DELEGATED_PROPERTY_ACCESSOR
property.setter is FirDefaultPropertySetter -> IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR
else -> origin
},
startOffset, endOffset,
correspondingPropertyReceiverTypeRef = receiverType
startOffset, endOffset
)
}
}
@@ -763,7 +793,8 @@ class Fir2IrDeclarationStorage(
private fun createAndSaveIrParameter(
valueParameter: FirValueParameter,
index: Int = -1,
useStubForDefaultValueStub: Boolean = true
useStubForDefaultValueStub: Boolean = true,
forSetter: Boolean = false
): IrValueParameter {
val descriptor = WrappedValueParameterDescriptor()
val origin = IrDeclarationOrigin.DEFINED
@@ -776,7 +807,9 @@ class Fir2IrDeclarationStorage(
startOffset, endOffset, origin, symbol,
valueParameter.name, index, type,
if (!valueParameter.isVararg) null
else valueParameter.returnTypeRef.coneTypeSafe<ConeKotlinType>()?.arrayElementType(session)?.toIrType(session, this, irBuiltIns),
else valueParameter.returnTypeRef.coneTypeSafe<ConeKotlinType>()?.arrayElementType(session)?.toIrType(
session, this, irBuiltIns, forSetter
),
valueParameter.isCrossinline, valueParameter.isNoinline
).apply {
descriptor.bind(this)
@@ -856,8 +889,8 @@ class Fir2IrDeclarationStorage(
return irSymbolTable.referenceClass(irClass.descriptor)
}
fun getIrTypeParameterSymbol(firTypeParameterSymbol: FirTypeParameterSymbol): IrTypeParameterSymbol {
val irTypeParameter = getIrTypeParameter(firTypeParameterSymbol.fir)
fun getIrTypeParameterSymbol(firTypeParameterSymbol: FirTypeParameterSymbol, forSetter: Boolean): IrTypeParameterSymbol {
val irTypeParameter = getIrTypeParameter(firTypeParameterSymbol.fir, forSetter = forSetter)
return irSymbolTable.referenceTypeParameter(irTypeParameter.descriptor)
}
@@ -8,20 +8,23 @@ FILE fqName:<root> fileName:/delegatedGenericImplementation.kt
VALUE_PARAMETER name:a index:0 type:A of <root>.IBase
VALUE_PARAMETER name:b index:1 type:B of <root>.IBase.foo
PROPERTY name:id visibility:public modality:ABSTRACT [val]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-id> visibility:public modality:ABSTRACT <> ($this:<root>.IBase<A of <root>.IBase>, $receiver:C of <uninitialized parent>) returnType:kotlin.collections.Map<A of <root>.IBase, C of <uninitialized parent>>?
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-id> visibility:public modality:ABSTRACT <C> ($this:<root>.IBase<A of <root>.IBase>, $receiver:C of <root>.IBase.<get-id>) returnType:kotlin.collections.Map<A of <root>.IBase, C of <root>.IBase.<get-id>>?
correspondingProperty: PROPERTY name:id visibility:public modality:ABSTRACT [val]
TYPE_PARAMETER name:C index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.IBase<A of <root>.IBase>
$receiver: VALUE_PARAMETER name:<this> type:C of <uninitialized parent>
$receiver: VALUE_PARAMETER name:<this> type:C of <root>.IBase.<get-id>
PROPERTY name:x visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:ABSTRACT <> ($this:<root>.IBase<A of <root>.IBase>, $receiver:kotlin.collections.List<D of <uninitialized parent>>) returnType:D of <uninitialized parent>?
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:ABSTRACT <D> ($this:<root>.IBase<A of <root>.IBase>, $receiver:kotlin.collections.List<D of <root>.IBase.<get-x>>) returnType:D of <root>.IBase.<get-x>?
correspondingProperty: PROPERTY name:x visibility:public modality:ABSTRACT [var]
TYPE_PARAMETER name:D index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.IBase<A of <root>.IBase>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.List<D of <uninitialized parent>>
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-x> visibility:public modality:ABSTRACT <> ($this:<root>.IBase<A of <root>.IBase>, $receiver:kotlin.collections.List<D of <uninitialized parent>>, <set-?>:D of <uninitialized parent>?) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.List<D of <root>.IBase.<get-x>>
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-x> visibility:public modality:ABSTRACT <D> ($this:<root>.IBase<A of <root>.IBase>, $receiver:kotlin.collections.List<D of <root>.IBase.<get-x>>, <set-?>:D of <root>.IBase.<set-x>?) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:x visibility:public modality:ABSTRACT [var]
TYPE_PARAMETER name:D index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.IBase<A of <root>.IBase>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.List<D of <uninitialized parent>>
VALUE_PARAMETER name:<set-?> index:0 type:D of <uninitialized parent>?
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.List<D of <root>.IBase.<get-x>>
VALUE_PARAMETER name:<set-?> index:0 type:D of <root>.IBase.<set-x>?
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
@@ -51,23 +54,23 @@ FILE fqName:<root> fileName:/delegatedGenericImplementation.kt
VALUE_PARAMETER name:a index:0 type:E of <root>.Test1
VALUE_PARAMETER name:b index:1 type:B of <root>.Test1.foo
PROPERTY FAKE_OVERRIDE name:id visibility:public modality:ABSTRACT [fake_override,val]
FUN FAKE_OVERRIDE name:<get-id> visibility:public modality:ABSTRACT <> ($this:<root>.Test1<E of <root>.Test1>) returnType:kotlin.collections.Map<E of <root>.Test1, C of <uninitialized parent>>? [fake_override]
FUN FAKE_OVERRIDE name:<get-id> visibility:public modality:ABSTRACT <> ($this:<root>.Test1<E of <root>.Test1>) returnType:kotlin.collections.Map<E of <root>.Test1, C of <root>.IBase.<get-id>>? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:id visibility:public modality:ABSTRACT [fake_override,val]
overridden:
public abstract fun <get-id> (): kotlin.collections.Map<A of <root>.IBase, C of <uninitialized parent>>? declared in <root>.IBase
public abstract fun <get-id> <C> (): kotlin.collections.Map<A of <root>.IBase, C of <root>.IBase.<get-id>>? declared in <root>.IBase
$this: VALUE_PARAMETER name:<this> type:<root>.Test1<E of <root>.Test1>
PROPERTY FAKE_OVERRIDE name:x visibility:public modality:ABSTRACT [fake_override,var]
FUN FAKE_OVERRIDE name:<get-x> visibility:public modality:ABSTRACT <> ($this:<root>.Test1<E of <root>.Test1>) returnType:D of <uninitialized parent>? [fake_override]
FUN FAKE_OVERRIDE name:<get-x> visibility:public modality:ABSTRACT <> ($this:<root>.Test1<E of <root>.Test1>) returnType:D of <root>.IBase.<get-x>? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:x visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <get-x> (): D of <uninitialized parent>? declared in <root>.IBase
public abstract fun <get-x> <D> (): D of <root>.IBase.<get-x>? declared in <root>.IBase
$this: VALUE_PARAMETER name:<this> type:<root>.Test1<E of <root>.Test1>
FUN FAKE_OVERRIDE name:<set-x> visibility:public modality:ABSTRACT <> ($this:<root>.Test1<E of <root>.Test1>, <set-?>:D of <uninitialized parent>?) returnType:kotlin.Unit [fake_override]
FUN FAKE_OVERRIDE name:<set-x> visibility:public modality:ABSTRACT <> ($this:<root>.Test1<E of <root>.Test1>, <set-?>:D of <root>.IBase.<set-x>?) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:x visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <set-x> (<set-?>: D of <uninitialized parent>?): kotlin.Unit declared in <root>.IBase
public abstract fun <set-x> <D> (<set-?>: D of <root>.IBase.<set-x>?): kotlin.Unit declared in <root>.IBase
$this: VALUE_PARAMETER name:<this> type:<root>.Test1<E of <root>.Test1>
VALUE_PARAMETER name:<set-?> index:0 type:D of <uninitialized parent>?
VALUE_PARAMETER name:<set-?> index:0 type:D of <root>.IBase.<set-x>?
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
@@ -115,23 +118,23 @@ FILE fqName:<root> fileName:/delegatedGenericImplementation.kt
VALUE_PARAMETER name:a index:0 type:kotlin.String
VALUE_PARAMETER name:b index:1 type:B of <root>.Test2.foo
PROPERTY FAKE_OVERRIDE name:id visibility:public modality:ABSTRACT [fake_override,val]
FUN FAKE_OVERRIDE name:<get-id> visibility:public modality:ABSTRACT <> ($this:<root>.Test2) returnType:kotlin.collections.Map<kotlin.String, C of <uninitialized parent>>? [fake_override]
FUN FAKE_OVERRIDE name:<get-id> visibility:public modality:ABSTRACT <> ($this:<root>.Test2) returnType:kotlin.collections.Map<kotlin.String, C of <root>.IBase.<get-id>>? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:id visibility:public modality:ABSTRACT [fake_override,val]
overridden:
public abstract fun <get-id> (): kotlin.collections.Map<A of <root>.IBase, C of <uninitialized parent>>? declared in <root>.IBase
public abstract fun <get-id> <C> (): kotlin.collections.Map<A of <root>.IBase, C of <root>.IBase.<get-id>>? declared in <root>.IBase
$this: VALUE_PARAMETER name:<this> type:<root>.Test2
PROPERTY FAKE_OVERRIDE name:x visibility:public modality:ABSTRACT [fake_override,var]
FUN FAKE_OVERRIDE name:<get-x> visibility:public modality:ABSTRACT <> ($this:<root>.Test2) returnType:D of <uninitialized parent>? [fake_override]
FUN FAKE_OVERRIDE name:<get-x> visibility:public modality:ABSTRACT <> ($this:<root>.Test2) returnType:D of <root>.IBase.<get-x>? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:x visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <get-x> (): D of <uninitialized parent>? declared in <root>.IBase
public abstract fun <get-x> <D> (): D of <root>.IBase.<get-x>? declared in <root>.IBase
$this: VALUE_PARAMETER name:<this> type:<root>.Test2
FUN FAKE_OVERRIDE name:<set-x> visibility:public modality:ABSTRACT <> ($this:<root>.Test2, <set-?>:D of <uninitialized parent>?) returnType:kotlin.Unit [fake_override]
FUN FAKE_OVERRIDE name:<set-x> visibility:public modality:ABSTRACT <> ($this:<root>.Test2, <set-?>:D of <root>.IBase.<set-x>?) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:x visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <set-x> (<set-?>: D of <uninitialized parent>?): kotlin.Unit declared in <root>.IBase
public abstract fun <set-x> <D> (<set-?>: D of <root>.IBase.<set-x>?): kotlin.Unit declared in <root>.IBase
$this: VALUE_PARAMETER name:<this> type:<root>.Test2
VALUE_PARAMETER name:<set-?> index:0 type:D of <uninitialized parent>?
VALUE_PARAMETER name:<set-?> index:0 type:D of <root>.IBase.<set-x>?
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
+7 -6
View File
@@ -2,13 +2,14 @@ FILE fqName:<root> fileName:/kt35550.kt
CLASS INTERFACE name:I modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
PROPERTY name:id visibility:public modality:OPEN [val]
FUN name:<get-id> visibility:public modality:OPEN <> ($this:<root>.I, $receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
FUN name:<get-id> visibility:public modality:OPEN <T> ($this:<root>.I, $receiver:T of <root>.I.<get-id>) returnType:T of <root>.I.<get-id>
correspondingProperty: PROPERTY name:id visibility:public modality:OPEN [val]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.I
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.I.<get-id>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-id> (): T of <uninitialized parent> declared in <root>.I'
ERROR_CALL 'Unresolved reference: this@R|/I.id|' type=T of <uninitialized parent>
RETURN type=kotlin.Nothing from='public open fun <get-id> <T> (): T of <root>.I.<get-id> declared in <root>.I'
ERROR_CALL 'Unresolved reference: this@R|/I.id|' type=T of <root>.I.<get-id>
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
@@ -30,10 +31,10 @@ FILE fqName:<root> fileName:/kt35550.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.I]'
PROPERTY FAKE_OVERRIDE name:id visibility:public modality:OPEN [fake_override,val]
FUN FAKE_OVERRIDE name:<get-id> visibility:public modality:OPEN <> ($this:<root>.A) returnType:T of <uninitialized parent> [fake_override]
FUN FAKE_OVERRIDE name:<get-id> visibility:public modality:OPEN <> ($this:<root>.A) returnType:T of <root>.I.<get-id> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:id visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-id> (): T of <uninitialized parent> declared in <root>.I
public open fun <get-id> <T> (): T of <root>.I.<get-id> declared in <root>.I
$this: VALUE_PARAMETER name:<this> type:<root>.A
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
@@ -1,138 +0,0 @@
FILE fqName:<root> fileName:/propertyAccessors.kt
PROPERTY name:test1 visibility:public modality:FINAL [val]
FUN name:<get-test1> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test1> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
PROPERTY name:test2 visibility:public modality:FINAL [var]
FUN name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [var]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
FUN name:<set-test2> visibility:public modality:FINAL <> (value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [var]
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY name:testExt1 visibility:public modality:FINAL [val]
FUN name:<get-testExt1> visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testExt1 visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testExt1> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
PROPERTY name:testExt2 visibility:public modality:FINAL [var]
FUN name:<get-testExt2> visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testExt2 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testExt2> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
FUN name:<set-testExt2> visibility:public modality:FINAL <> ($receiver:kotlin.String, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:testExt2 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY name:testExt3 visibility:public modality:FINAL [val]
FUN name:<get-testExt3> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testExt3 visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testExt3> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
PROPERTY name:testExt4 visibility:public modality:FINAL [var]
FUN name:<get-testExt4> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testExt4 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testExt4> (): kotlin.Int declared in <root>'
CONST Int type=kotlin.Int value=42
FUN name:<set-testExt4> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:testExt4 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Host<T of <root>.Host>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
CONSTRUCTOR visibility:public <> () returnType:<root>.Host<T of <root>.Host> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]'
PROPERTY name:testMem1 visibility:public modality:FINAL [val]
FUN name:<get-testMem1> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testMem1 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testMem1> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
PROPERTY name:testMem2 visibility:public modality:FINAL [var]
FUN name:<get-testMem2> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testMem2 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testMem2> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
FUN name:<set-testMem2> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:testMem2 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY name:testMemExt1 visibility:public modality:FINAL [val]
FUN name:<get-testMemExt1> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:kotlin.String) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testMemExt1 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testMemExt1> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
PROPERTY name:testMemExt2 visibility:public modality:FINAL [var]
FUN name:<get-testMemExt2> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:kotlin.String) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testMemExt2 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testMemExt2> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
FUN name:<set-testMemExt2> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:kotlin.String, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:testMemExt2 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:kotlin.String
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
PROPERTY name:testMemExt3 visibility:public modality:FINAL [val]
FUN name:<get-testMemExt3> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:TT of <uninitialized parent>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testMemExt3 visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:TT of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testMemExt3> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
PROPERTY name:testMemExt4 visibility:public modality:FINAL [var]
FUN name:<get-testMemExt4> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:TT of <uninitialized parent>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:testMemExt4 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:TT of <uninitialized parent>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-testMemExt4> (): kotlin.Int declared in <root>.Host'
CONST Int type=kotlin.Int value=42
FUN name:<set-testMemExt4> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:TT of <uninitialized parent>, value:kotlin.Int) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:testMemExt4 visibility:public modality:FINAL [var]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:TT of <uninitialized parent>
VALUE_PARAMETER name:value index:0 type:kotlin.Int
BLOCK_BODY
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
@@ -1,3 +1,5 @@
// FIR_IDENTICAL
val test1 get() = 42
var test2 get() = 42; set(value) {}
@@ -25,12 +25,16 @@ FILE fqName:<root> fileName:/typeParameterBeforeBound.kt
TYPE_PARAMETER name:U index:0 variance: superTypes:[kotlin.Any?]
BLOCK_BODY
PROPERTY name:test3 visibility:public modality:FINAL [var]
FUN name:<get-test3> visibility:public modality:FINAL <> ($receiver:<root>.Test1<T of <uninitialized parent>, U of <uninitialized parent>>) returnType:kotlin.Unit
FUN name:<get-test3> visibility:public modality:FINAL <T, U> ($receiver:<root>.Test1<T of <root>.<get-test3>, U of <root>.<get-test3>>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:test3 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Test1<T of <uninitialized parent>, U of <uninitialized parent>>
TYPE_PARAMETER name:T index:0 variance: superTypes:[U of <root>.<get-test3>]
TYPE_PARAMETER name:U index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Test1<T of <root>.<get-test3>, U of <root>.<get-test3>>
BLOCK_BODY
FUN name:<set-test3> visibility:public modality:FINAL <> ($receiver:<root>.Test1<T of <uninitialized parent>, U of <uninitialized parent>>, value:kotlin.Unit) returnType:kotlin.Unit
FUN name:<set-test3> visibility:public modality:FINAL <T, U> ($receiver:<root>.Test1<T of <root>.<get-test3>, U of <root>.<get-test3>>, value:kotlin.Unit) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:test3 visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Test1<T of <uninitialized parent>, U of <uninitialized parent>>
TYPE_PARAMETER name:T index:0 variance: superTypes:[U of <root>.<get-test3>]
TYPE_PARAMETER name:U index:1 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Test1<T of <root>.<get-test3>, U of <root>.<get-test3>>
VALUE_PARAMETER name:value index:0 type:kotlin.Unit
BLOCK_BODY
@@ -14,13 +14,14 @@ FILE fqName:<root> fileName:/castToTypeParameter.kt
TYPE_OP type=T of <root>.castExtFun origin=CAST typeOperand=T of <root>.castExtFun
GET_VAR '<this>: kotlin.Any declared in <root>.castExtFun' type=kotlin.Any origin=null
PROPERTY name:castExtVal visibility:public modality:FINAL [val]
FUN name:<get-castExtVal> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
FUN name:<get-castExtVal> visibility:public modality:FINAL <T> ($receiver:T of <root>.<get-castExtVal>) returnType:T of <root>.<get-castExtVal>
correspondingProperty: PROPERTY name:castExtVal visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.<get-castExtVal>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-castExtVal> (): T of <uninitialized parent> declared in <root>'
TYPE_OP type=T of <uninitialized parent> origin=CAST typeOperand=T of <uninitialized parent>
ERROR_CALL 'Unresolved reference: this@R|/castExtVal|' type=T of <uninitialized parent>
RETURN type=kotlin.Nothing from='public final fun <get-castExtVal> <T> (): T of <root>.<get-castExtVal> declared in <root>'
TYPE_OP type=T of <root>.<get-castExtVal> origin=CAST typeOperand=T of <root>.<get-castExtVal>
ERROR_CALL 'Unresolved reference: this@R|/castExtVal|' type=T of <root>.<get-castExtVal>
CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Host<T of <root>.Host>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
@@ -68,14 +69,15 @@ FILE fqName:<root> fileName:/castToTypeParameter.kt
TYPE_OP type=T of <root>.Host origin=CAST typeOperand=T of <root>.Host
ERROR_CALL 'Unresolved reference: this@R|/Host.castMemberExtVal|' type=kotlin.Any
PROPERTY name:castGenericMemberExtVal visibility:public modality:FINAL [val]
FUN name:<get-castGenericMemberExtVal> visibility:public modality:FINAL <> ($this:<root>.Host<T of <root>.Host>, $receiver:TV of <uninitialized parent>) returnType:TV of <uninitialized parent>
FUN name:<get-castGenericMemberExtVal> visibility:public modality:FINAL <TV> ($this:<root>.Host<T of <root>.Host>, $receiver:TV of <root>.Host.<get-castGenericMemberExtVal>) returnType:TV of <root>.Host.<get-castGenericMemberExtVal>
correspondingProperty: PROPERTY name:castGenericMemberExtVal visibility:public modality:FINAL [val]
TYPE_PARAMETER name:TV index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.Host<T of <root>.Host>
$receiver: VALUE_PARAMETER name:<this> type:TV of <uninitialized parent>
$receiver: VALUE_PARAMETER name:<this> type:TV of <root>.Host.<get-castGenericMemberExtVal>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-castGenericMemberExtVal> (): TV of <uninitialized parent> declared in <root>.Host'
TYPE_OP type=TV of <uninitialized parent> origin=CAST typeOperand=TV of <uninitialized parent>
ERROR_CALL 'Unresolved reference: this@R|/Host.castGenericMemberExtVal|' type=TV of <uninitialized parent>
RETURN type=kotlin.Nothing from='public final fun <get-castGenericMemberExtVal> <TV> (): TV of <root>.Host.<get-castGenericMemberExtVal> declared in <root>.Host'
TYPE_OP type=TV of <root>.Host.<get-castGenericMemberExtVal> origin=CAST typeOperand=TV of <root>.Host.<get-castGenericMemberExtVal>
ERROR_CALL 'Unresolved reference: this@R|/Host.castGenericMemberExtVal|' type=TV of <root>.Host.<get-castGenericMemberExtVal>
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
@@ -24,5 +24,11 @@ FILE fqName:<root> fileName:/classReference.kt
GET_OBJECT 'CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
GET_CLASS type=kotlin.reflect.KClass<<root>.A>
CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A' type=<root>.A origin=null
ERROR_EXPR 'Cannot bind 1 type arguments to <get-java> call with 0 type parameters' type=java.lang.Class<<root>.A>
ERROR_EXPR 'Cannot bind 1 type arguments to <get-java> call with 0 type parameters' type=java.lang.Class<<root>.A>
CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.A> origin=null
<T>: <root>.A
$receiver: GET_CLASS type=kotlin.reflect.KClass<<root>.A>
GET_OBJECT 'CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.A> origin=null
<T>: <root>.A
$receiver: GET_CLASS type=kotlin.reflect.KClass<<root>.A>
CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.A' type=<root>.A origin=null
@@ -1,15 +1,18 @@
FILE fqName:<root> fileName:/genericPropertyCall.kt
PROPERTY name:id visibility:public modality:FINAL [val]
FUN name:<get-id> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
FUN name:<get-id> visibility:public modality:FINAL <T> ($receiver:T of <root>.<get-id>) returnType:T of <root>.<get-id>
correspondingProperty: PROPERTY name:id visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.<get-id>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-id> (): T of <uninitialized parent> declared in <root>'
ERROR_CALL 'Unresolved reference: this@R|/id|' type=T of <uninitialized parent>
RETURN type=kotlin.Nothing from='public final fun <get-id> <T> (): T of <root>.<get-id> declared in <root>'
ERROR_CALL 'Unresolved reference: this@R|/id|' type=T of <root>.<get-id>
PROPERTY name:test visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test type:kotlin.String visibility:private [final,static]
EXPRESSION_BODY
ERROR_EXPR 'Cannot bind 1 type arguments to <get-id> call with 0 type parameters' type=kotlin.String
CALL 'public final fun <get-id> <T> (): T of <root>.<get-id> declared in <root>' type=kotlin.String origin=null
<T>: kotlin.String
$receiver: CONST String type=kotlin.String value="abc"
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test> visibility:public modality:FINAL <> () returnType:kotlin.String
correspondingProperty: PROPERTY name:test visibility:public modality:FINAL [val]
BLOCK_BODY
@@ -68,30 +68,32 @@ FILE fqName:<root> fileName:/genericPropertyRef.kt
FIELD PROPERTY_DELEGATE name:additionalText$delegate type:<root>.DVal visibility:private [final,static]
EXPRESSION_BODY
CONSTRUCTOR_CALL 'public constructor <init> (kmember: kotlin.Any) [primary] declared in <root>.DVal' type=<root>.DVal origin=null
kmember: PROPERTY_REFERENCE 'public final text: kotlin.String? [var]' field='FIELD PROPERTY_BACKING_FIELD name:text type:kotlin.String? visibility:private' getter='public final fun <get-text> (): kotlin.String? declared in <root>.Value' setter='public final fun <set-text> (<set-?>: kotlin.String?): kotlin.Unit declared in <root>.Value' type=kotlin.reflect.KMutableProperty1<<root>.Value<T of <uninitialized parent>>, kotlin.String?> origin=null
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalText> visibility:public modality:FINAL <> ($receiver:<root>.Value<T of <uninitialized parent>>) returnType:kotlin.Int
kmember: PROPERTY_REFERENCE 'public final text: kotlin.String? [var]' field='FIELD PROPERTY_BACKING_FIELD name:text type:kotlin.String? visibility:private' getter='public final fun <get-text> (): kotlin.String? declared in <root>.Value' setter='public final fun <set-text> (<set-?>: kotlin.String?): kotlin.Unit declared in <root>.Value' type=kotlin.reflect.KMutableProperty1<<root>.Value<T of <root>.<get-additionalText>>, kotlin.String?> origin=null
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalText> visibility:public modality:FINAL <T> ($receiver:<root>.Value<T of <root>.<get-additionalText>>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:additionalText visibility:public modality:FINAL [delegated,val]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Value<T of <uninitialized parent>>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Value<T of <root>.<get-additionalText>>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-additionalText> (): kotlin.Int declared in <root>'
RETURN type=kotlin.Nothing from='public final fun <get-additionalText> <T> (): kotlin.Int declared in <root>'
CALL 'public final fun getValue (t: kotlin.Any?, p: kotlin.Any): kotlin.Int [operator] declared in <root>.DVal' type=kotlin.Int origin=null
$this: GET_FIELD 'FIELD PROPERTY_DELEGATE name:additionalText$delegate type:<root>.DVal visibility:private [final,static]' type=<root>.DVal origin=GET_PROPERTY
t: ERROR_CALL 'Unresolved reference: this@R|/additionalText|' type=<root>.Value<T of <uninitialized parent>>
p: PROPERTY_REFERENCE 'public final additionalText: kotlin.Int [delegated,val]' field='FIELD PROPERTY_DELEGATE name:additionalText$delegate type:<root>.DVal visibility:private [final,static]' getter='public final fun <get-additionalText> (): kotlin.Int declared in <root>' setter=null type=kotlin.reflect.KProperty<*> origin=null
t: ERROR_CALL 'Unresolved reference: this@R|/additionalText|' type=<root>.Value<T of <root>.<get-additionalText>>
p: PROPERTY_REFERENCE 'public final additionalText: kotlin.Int [delegated,val]' field='FIELD PROPERTY_DELEGATE name:additionalText$delegate type:<root>.DVal visibility:private [final,static]' getter='public final fun <get-additionalText> <T> (): kotlin.Int declared in <root>' setter=null type=kotlin.reflect.KProperty<*> origin=null
PROPERTY name:additionalValue visibility:public modality:FINAL [delegated,val]
FIELD PROPERTY_DELEGATE name:additionalValue$delegate type:<root>.DVal visibility:private [final,static]
EXPRESSION_BODY
CONSTRUCTOR_CALL 'public constructor <init> (kmember: kotlin.Any) [primary] declared in <root>.DVal' type=<root>.DVal origin=null
kmember: PROPERTY_REFERENCE 'public final value: T of <uninitialized parent> [var]' field=null getter='public final fun <get-value> (): T of <uninitialized parent> declared in <root>.Value' setter='public final fun <set-value> (<set-?>: T of <uninitialized parent>): kotlin.Unit declared in <root>.Value' type=kotlin.reflect.KMutableProperty1<<root>.Value<T of <uninitialized parent>>, T of <uninitialized parent>> origin=null
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalValue> visibility:public modality:FINAL <> ($receiver:<root>.Value<T of <uninitialized parent>>) returnType:kotlin.Int
kmember: PROPERTY_REFERENCE 'public final value: T of <root>.<get-additionalValue> [var]' field=null getter='public final fun <get-value> (): T of <root>.<get-additionalValue> declared in <root>.Value' setter='public final fun <set-value> (<set-?>: T of <uninitialized parent>): kotlin.Unit declared in <root>.Value' type=kotlin.reflect.KMutableProperty1<<root>.Value<T of <root>.<get-additionalValue>>, T of <root>.<get-additionalValue>> origin=null
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-additionalValue> visibility:public modality:FINAL <T> ($receiver:<root>.Value<T of <root>.<get-additionalValue>>) returnType:kotlin.Int
correspondingProperty: PROPERTY name:additionalValue visibility:public modality:FINAL [delegated,val]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Value<T of <uninitialized parent>>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Value<T of <root>.<get-additionalValue>>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-additionalValue> (): kotlin.Int declared in <root>'
RETURN type=kotlin.Nothing from='public final fun <get-additionalValue> <T> (): kotlin.Int declared in <root>'
CALL 'public final fun getValue (t: kotlin.Any?, p: kotlin.Any): kotlin.Int [operator] declared in <root>.DVal' type=kotlin.Int origin=null
$this: GET_FIELD 'FIELD PROPERTY_DELEGATE name:additionalValue$delegate type:<root>.DVal visibility:private [final,static]' type=<root>.DVal origin=GET_PROPERTY
t: ERROR_CALL 'Unresolved reference: this@R|/additionalValue|' type=<root>.Value<T of <uninitialized parent>>
p: PROPERTY_REFERENCE 'public final additionalValue: kotlin.Int [delegated,val]' field='FIELD PROPERTY_DELEGATE name:additionalValue$delegate type:<root>.DVal visibility:private [final,static]' getter='public final fun <get-additionalValue> (): kotlin.Int declared in <root>' setter=null type=kotlin.reflect.KProperty<*> origin=null
t: ERROR_CALL 'Unresolved reference: this@R|/additionalValue|' type=<root>.Value<T of <root>.<get-additionalValue>>
p: PROPERTY_REFERENCE 'public final additionalValue: kotlin.Int [delegated,val]' field='FIELD PROPERTY_DELEGATE name:additionalValue$delegate type:<root>.DVal visibility:private [final,static]' getter='public final fun <get-additionalValue> <T> (): kotlin.Int declared in <root>' setter=null type=kotlin.reflect.KProperty<*> origin=null
CLASS CLASS name:DVal modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.DVal
CONSTRUCTOR visibility:public <> (kmember:kotlin.Any) returnType:<root>.DVal [primary]
@@ -161,25 +163,27 @@ FILE fqName:<root> fileName:/genericPropertyRef.kt
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value2 type:kotlin.Any? visibility:private [static]' type=kotlin.Unit origin=null
value: GET_VAR '<set-?>: kotlin.Any? declared in <root>.<set-value2>' type=kotlin.Any? origin=null
PROPERTY name:bar visibility:public modality:FINAL [var]
FUN name:<get-bar> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
FUN name:<get-bar> visibility:public modality:FINAL <T> ($receiver:T of <root>.<get-bar>) returnType:T of <root>.<get-bar>
correspondingProperty: PROPERTY name:bar visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.<get-bar>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-bar> (): T of <uninitialized parent> declared in <root>'
ERROR_CALL 'Unresolved reference: this@R|/bar|' type=T of <uninitialized parent>
FUN name:<set-bar> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>, value:T of <uninitialized parent>) returnType:kotlin.Unit
RETURN type=kotlin.Nothing from='public final fun <get-bar> <T> (): T of <root>.<get-bar> declared in <root>'
ERROR_CALL 'Unresolved reference: this@R|/bar|' type=T of <root>.<get-bar>
FUN name:<set-bar> visibility:public modality:FINAL <T> ($receiver:T of <root>.<set-bar>, value:T of <root>.<get-bar>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:bar visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
VALUE_PARAMETER name:value index:0 type:T of <uninitialized parent>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.<set-bar>
VALUE_PARAMETER name:value index:0 type:T of <root>.<get-bar>
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:recivier type:kotlin.Any? visibility:private [static]' type=kotlin.Unit origin=null
value: ERROR_CALL 'Unresolved reference: this@R|/bar|' type=T of <uninitialized parent>
value: ERROR_CALL 'Unresolved reference: this@R|/bar|' type=T of <root>.<get-bar>
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:value2 type:kotlin.Any? visibility:private [static]' type=kotlin.Unit origin=null
value: GET_VAR 'value: T of <uninitialized parent> declared in <root>.<set-bar>' type=T of <uninitialized parent> origin=null
value: GET_VAR 'value: T of <root>.<get-bar> declared in <root>.<set-bar>' type=T of <root>.<get-bar> origin=null
PROPERTY name:barRef visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:barRef type:kotlin.reflect.KMutableProperty1<kotlin.String?, kotlin.String?> visibility:private [final,static]
EXPRESSION_BODY
PROPERTY_REFERENCE 'public final bar: T of <uninitialized parent> [var]' field=null getter='public final fun <get-bar> (): T of <uninitialized parent> declared in <root>' setter='public final fun <set-bar> (value: T of <uninitialized parent>): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty1<kotlin.String?, kotlin.String?> origin=null
PROPERTY_REFERENCE 'public final bar: T of <root>.<get-bar> [var]' field=null getter='public final fun <get-bar> <T> (): T of <root>.<get-bar> declared in <root>' setter='public final fun <set-bar> <T> (value: T of <root>.<get-bar>): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty1<kotlin.String?, kotlin.String?> origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-barRef> visibility:public modality:FINAL <> () returnType:kotlin.reflect.KMutableProperty1<kotlin.String?, kotlin.String?>
correspondingProperty: PROPERTY name:barRef visibility:public modality:FINAL [val]
BLOCK_BODY
@@ -29,16 +29,17 @@ FILE fqName:<root> fileName:/implicitCastToTypeParameter.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:asT visibility:public modality:FINAL [val]
FUN name:<get-asT> visibility:public modality:FINAL <> ($receiver:<root>.Foo<T of <uninitialized parent>>) returnType:T of <uninitialized parent>?
FUN name:<get-asT> visibility:public modality:FINAL <T> ($receiver:<root>.Foo<T of <root>.<get-asT>>) returnType:T of <root>.<get-asT>?
correspondingProperty: PROPERTY name:asT visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Foo<T of <uninitialized parent>>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]
$receiver: VALUE_PARAMETER name:<this> type:<root>.Foo<T of <root>.<get-asT>>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-asT> (): T of <uninitialized parent>? declared in <root>'
WHEN type=T of <uninitialized parent>? origin=IF
RETURN type=kotlin.Nothing from='public final fun <get-asT> <T> (): T of <root>.<get-asT>? declared in <root>'
WHEN type=T of <root>.<get-asT>? origin=IF
BRANCH
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=T of <uninitialized parent>
ERROR_CALL 'Unresolved reference: this@R|/asT|' type=<root>.Foo<T of <uninitialized parent>>
then: ERROR_CALL 'Unresolved reference: this@R|/asT|' type=T of <uninitialized parent>
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=T of <root>.<get-asT>
ERROR_CALL 'Unresolved reference: this@R|/asT|' type=<root>.Foo<T of <root>.<get-asT>>
then: ERROR_CALL 'Unresolved reference: this@R|/asT|' type=T of <root>.<get-asT>
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Null type=kotlin.Nothing? value=null
@@ -22,4 +22,7 @@ FILE fqName:<root> fileName:/objectClassReference.kt
BLOCK_BODY
GET_CLASS type=kotlin.reflect.KClass<<root>.A>
GET_OBJECT 'CLASS OBJECT name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' type=<root>.A
ERROR_EXPR 'Cannot bind 1 type arguments to <get-java> call with 0 type parameters' type=java.lang.Class<<root>.A>
CALL 'public final fun <get-java> <T> (): java.lang.Class<T of kotlin.jvm.<get-java>> declared in kotlin.jvm' type=java.lang.Class<<root>.A> origin=null
<T>: <root>.A
$receiver: GET_CLASS type=kotlin.reflect.KClass<<root>.A>
GET_OBJECT 'CLASS OBJECT name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' type=<root>.A
@@ -11,12 +11,13 @@ FILE fqName:<root> fileName:/typeParameterClassLiteral.kt
RETURN type=kotlin.Nothing from='public final fun classRefExtFun <T> (): kotlin.reflect.KClass<T of <root>.classRefExtFun> [inline] declared in <root>'
CLASS_REFERENCE 'TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<T of <root>.classRefExtFun>
PROPERTY name:classRefExtVal visibility:public modality:FINAL [val]
FUN name:<get-classRefExtVal> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:kotlin.reflect.KClass<T of <uninitialized parent>>
FUN name:<get-classRefExtVal> visibility:public modality:FINAL <T> ($receiver:T of <root>.<get-classRefExtVal>) returnType:kotlin.reflect.KClass<T of <root>.<get-classRefExtVal>>
correspondingProperty: PROPERTY name:classRefExtVal visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.<get-classRefExtVal>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-classRefExtVal> (): kotlin.reflect.KClass<T of <uninitialized parent>> declared in <root>'
CLASS_REFERENCE 'TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<T of <uninitialized parent>>
RETURN type=kotlin.Nothing from='public final fun <get-classRefExtVal> <T> (): kotlin.reflect.KClass<T of <root>.<get-classRefExtVal>> declared in <root>'
CLASS_REFERENCE 'TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<T of <root>.<get-classRefExtVal>>
CLASS CLASS name:Host modality:FINAL visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Host
CONSTRUCTOR visibility:public <> () returnType:<root>.Host [primary]
@@ -37,13 +38,14 @@ FILE fqName:<root> fileName:/typeParameterClassLiteral.kt
RETURN type=kotlin.Nothing from='public final fun classRefGenericMemberExtFun <TF> (): kotlin.reflect.KClass<TF of <root>.Host.classRefGenericMemberExtFun> [inline] declared in <root>.Host'
CLASS_REFERENCE 'TYPE_PARAMETER name:TF index:0 variance: superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<TF of <root>.Host.classRefGenericMemberExtFun>
PROPERTY name:classRefGenericMemberExtVal visibility:public modality:FINAL [val]
FUN name:<get-classRefGenericMemberExtVal> visibility:public modality:FINAL <> ($this:<root>.Host, $receiver:TV of <uninitialized parent>) returnType:kotlin.reflect.KClass<TV of <uninitialized parent>>
FUN name:<get-classRefGenericMemberExtVal> visibility:public modality:FINAL <TV> ($this:<root>.Host, $receiver:TV of <root>.Host.<get-classRefGenericMemberExtVal>) returnType:kotlin.reflect.KClass<TV of <root>.Host.<get-classRefGenericMemberExtVal>>
correspondingProperty: PROPERTY name:classRefGenericMemberExtVal visibility:public modality:FINAL [val]
TYPE_PARAMETER name:TV index:0 variance: superTypes:[kotlin.Any]
$this: VALUE_PARAMETER name:<this> type:<root>.Host
$receiver: VALUE_PARAMETER name:<this> type:TV of <uninitialized parent>
$receiver: VALUE_PARAMETER name:<this> type:TV of <root>.Host.<get-classRefGenericMemberExtVal>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-classRefGenericMemberExtVal> (): kotlin.reflect.KClass<TV of <uninitialized parent>> declared in <root>.Host'
CLASS_REFERENCE 'TYPE_PARAMETER name:TV index:0 variance: superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<TV of <uninitialized parent>>
RETURN type=kotlin.Nothing from='public final fun <get-classRefGenericMemberExtVal> <TV> (): kotlin.reflect.KClass<TV of <root>.Host.<get-classRefGenericMemberExtVal>> declared in <root>.Host'
CLASS_REFERENCE 'TYPE_PARAMETER name:TV index:0 variance: superTypes:[kotlin.Any]' type=kotlin.reflect.KClass<TV of <root>.Host.<get-classRefGenericMemberExtVal>>
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
@@ -35,13 +35,14 @@ FILE fqName:<root> fileName:/useImportedMember.kt
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:BaseClass modality:OPEN visibility:public superTypes:[kotlin.Any]'
PROPERTY name:fromClass visibility:public modality:FINAL [val]
FUN name:<get-fromClass> visibility:public modality:FINAL <> ($this:<root>.BaseClass, $receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
FUN name:<get-fromClass> visibility:public modality:FINAL <T> ($this:<root>.BaseClass, $receiver:T of <root>.BaseClass.<get-fromClass>) returnType:T of <root>.BaseClass.<get-fromClass>
correspondingProperty: PROPERTY name:fromClass visibility:public modality:FINAL [val]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.BaseClass
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.BaseClass.<get-fromClass>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-fromClass> (): T of <uninitialized parent> declared in <root>.BaseClass'
ERROR_CALL 'Unresolved reference: this@R|/BaseClass.fromClass|' type=T of <uninitialized parent>
RETURN type=kotlin.Nothing from='public final fun <get-fromClass> <T> (): T of <root>.BaseClass.<get-fromClass> declared in <root>.BaseClass'
ERROR_CALL 'Unresolved reference: this@R|/BaseClass.fromClass|' type=T of <root>.BaseClass.<get-fromClass>
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
@@ -114,18 +115,19 @@ FILE fqName:<root> fileName:/useImportedMember.kt
RETURN type=kotlin.Nothing from='public final fun g1 <T> (t: T of <root>.C.g1): T of <root>.C.g1 declared in <root>.C'
GET_VAR 't: T of <root>.C.g1 declared in <root>.C.g1' type=T of <root>.C.g1 origin=null
PROPERTY name:g2 visibility:public modality:FINAL [val]
FUN name:<get-g2> visibility:public modality:FINAL <> ($this:<root>.C, $receiver:T of <uninitialized parent>) returnType:T of <uninitialized parent>
FUN name:<get-g2> visibility:public modality:FINAL <T> ($this:<root>.C, $receiver:T of <root>.C.<get-g2>) returnType:T of <root>.C.<get-g2>
correspondingProperty: PROPERTY name:g2 visibility:public modality:FINAL [val]
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.C
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.C.<get-g2>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-g2> (): T of <uninitialized parent> declared in <root>.C'
ERROR_CALL 'Unresolved reference: this@R|/C.g2|' type=T of <uninitialized parent>
RETURN type=kotlin.Nothing from='public final fun <get-g2> <T> (): T of <root>.C.<get-g2> declared in <root>.C'
ERROR_CALL 'Unresolved reference: this@R|/C.g2|' type=T of <root>.C.<get-g2>
PROPERTY FAKE_OVERRIDE name:fromClass visibility:public modality:FINAL [fake_override,val]
FUN FAKE_OVERRIDE name:<get-fromClass> visibility:public modality:FINAL <> ($this:<root>.C) returnType:T of <uninitialized parent> [fake_override]
FUN FAKE_OVERRIDE name:<get-fromClass> visibility:public modality:FINAL <> ($this:<root>.C) returnType:T of <root>.BaseClass.<get-fromClass> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:fromClass visibility:public modality:FINAL [fake_override,val]
overridden:
public final fun <get-fromClass> (): T of <uninitialized parent> declared in <root>.BaseClass
public final fun <get-fromClass> <T> (): T of <root>.BaseClass.<get-fromClass> declared in <root>.BaseClass
$this: VALUE_PARAMETER name:<this> type:<root>.C
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
@@ -229,7 +231,10 @@ FILE fqName:<root> fileName:/useImportedMember.kt
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: ERROR_EXPR 'Cannot bind 1 type arguments to <get-g2> call with 0 type parameters' type=kotlin.String
arg0: CALL 'public final fun <get-g2> <T> (): T of <root>.C.<get-g2> declared in <root>.C' type=kotlin.String origin=null
<T>: kotlin.String
$this: CONST String type=kotlin.String value="8"
$receiver: CONST String type=kotlin.String value="8"
arg1: CONST String type=kotlin.String value="8"
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="8"
@@ -248,7 +253,10 @@ FILE fqName:<root> fileName:/useImportedMember.kt
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: ERROR_EXPR 'Cannot bind 1 type arguments to <get-fromClass> call with 0 type parameters' type=kotlin.String
arg0: CALL 'public final fun <get-fromClass> <T> (): T of <root>.BaseClass.<get-fromClass> declared in <root>.BaseClass' type=kotlin.String origin=null
<T>: kotlin.String
$this: CONST String type=kotlin.String value="10"
$receiver: CONST String type=kotlin.String value="10"
arg1: CONST String type=kotlin.String value="10"
then: RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="10"
@@ -1,34 +1,40 @@
FILE fqName:<root> fileName:/variableAsFunctionCallWithGenerics.kt
PROPERTY name:gk visibility:public modality:FINAL [val]
FUN name:<get-gk> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:kotlin.Function0<T of <uninitialized parent>>
FUN name:<get-gk> visibility:public modality:FINAL <T> ($receiver:T of <root>.<get-gk>) returnType:kotlin.Function0<T of <root>.<get-gk>>
correspondingProperty: PROPERTY name:gk visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.CharSequence]
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.<get-gk>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-gk> (): kotlin.Function0<T of <uninitialized parent>> declared in <root>'
FUN_EXPR type=kotlin.Function0<T of <uninitialized parent>> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:T of <uninitialized parent>
RETURN type=kotlin.Nothing from='public final fun <get-gk> <T> (): kotlin.Function0<T of <root>.<get-gk>> declared in <root>'
FUN_EXPR type=kotlin.Function0<T of <root>.<get-gk>> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:T of <root>.<get-gk>
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): T of <uninitialized parent> declared in <root>.<get-gk>'
ERROR_CALL 'Unresolved reference: this@R|/gk|' type=T of <uninitialized parent>
FUN name:testGeneric1 visibility:public modality:FINAL <> (x:kotlin.String) returnType:T of <uninitialized parent>
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): T of <root>.<get-gk> declared in <root>.<get-gk>'
ERROR_CALL 'Unresolved reference: this@R|/gk|' type=T of <root>.<get-gk>
FUN name:testGeneric1 visibility:public modality:FINAL <> (x:kotlin.String) returnType:T of <root>.<get-gk>
VALUE_PARAMETER name:x index:0 type:kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun testGeneric1 (x: kotlin.String): T of <uninitialized parent> declared in <root>'
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=T of <uninitialized parent> origin=INVOKE
$this: ERROR_EXPR 'Cannot bind 1 type arguments to <get-gk> call with 0 type parameters' type=kotlin.Function0<kotlin.String>
RETURN type=kotlin.Nothing from='public final fun testGeneric1 (x: kotlin.String): T of <root>.<get-gk> declared in <root>'
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=T of <root>.<get-gk> origin=INVOKE
$this: CALL 'public final fun <get-gk> <T> (): kotlin.Function0<T of <root>.<get-gk>> declared in <root>' type=kotlin.Function0<kotlin.String> origin=null
<T>: kotlin.String
$receiver: GET_VAR 'x: kotlin.String declared in <root>.testGeneric1' type=kotlin.String origin=null
PROPERTY name:kt26531Val visibility:public modality:FINAL [val]
FUN name:<get-kt26531Val> visibility:public modality:FINAL <> ($receiver:T of <uninitialized parent>) returnType:kotlin.Function0<T of <uninitialized parent>>
FUN name:<get-kt26531Val> visibility:public modality:FINAL <T> ($receiver:T of <root>.<get-kt26531Val>) returnType:kotlin.Function0<T of <root>.<get-kt26531Val>>
correspondingProperty: PROPERTY name:kt26531Val visibility:public modality:FINAL [val]
$receiver: VALUE_PARAMETER name:<this> type:T of <uninitialized parent>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.<get-kt26531Val>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-kt26531Val> (): kotlin.Function0<T of <uninitialized parent>> declared in <root>'
FUN_EXPR type=kotlin.Function0<T of <uninitialized parent>> origin=LAMBDA
FUN name:<no name provided> visibility:local modality:FINAL <> () returnType:T of <uninitialized parent>
RETURN type=kotlin.Nothing from='public final fun <get-kt26531Val> <T> (): kotlin.Function0<T of <root>.<get-kt26531Val>> declared in <root>'
FUN_EXPR type=kotlin.Function0<T of <root>.<get-kt26531Val>> origin=LAMBDA
FUN name:<no name provided> visibility:local modality:FINAL <> () returnType:T of <root>.<get-kt26531Val>
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <no name provided> (): T of <uninitialized parent> declared in <root>.<get-kt26531Val>'
ERROR_CALL 'Unresolved reference: this@R|/kt26531Val|' type=T of <uninitialized parent>
FUN name:kt26531 visibility:public modality:FINAL <> () returnType:T of <uninitialized parent>
RETURN type=kotlin.Nothing from='local final fun <no name provided> (): T of <root>.<get-kt26531Val> declared in <root>.<get-kt26531Val>'
ERROR_CALL 'Unresolved reference: this@R|/kt26531Val|' type=T of <root>.<get-kt26531Val>
FUN name:kt26531 visibility:public modality:FINAL <> () returnType:T of <root>.<get-kt26531Val>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun kt26531 (): T of <uninitialized parent> declared in <root>'
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=T of <uninitialized parent> origin=INVOKE
$this: ERROR_EXPR 'Cannot bind 1 type arguments to <get-kt26531Val> call with 0 type parameters' type=kotlin.Function0<kotlin.Int>
RETURN type=kotlin.Nothing from='public final fun kt26531 (): T of <root>.<get-kt26531Val> declared in <root>'
CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=T of <root>.<get-kt26531Val> origin=INVOKE
$this: CALL 'public final fun <get-kt26531Val> <T> (): kotlin.Function0<T of <root>.<get-kt26531Val>> declared in <root>' type=kotlin.Function0<kotlin.Int> origin=null
<T>: kotlin.Int
$receiver: CONST Int type=kotlin.Int value=7
@@ -41,16 +41,18 @@ FILE fqName:<root> fileName:/integerCoercionToT.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:value visibility:public modality:FINAL [var]
FUN name:<get-value> visibility:public modality:FINAL <> ($receiver:<root>.CInt32VarX<T_INT of <uninitialized parent>>) returnType:T_INT of <uninitialized parent>
FUN name:<get-value> visibility:public modality:FINAL <T_INT> ($receiver:<root>.CInt32VarX<T_INT of <root>.<get-value>>) returnType:T_INT of <root>.<get-value>
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.CInt32VarX<T_INT of <uninitialized parent>>
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
RETURN type=kotlin.Nothing from='public final fun <get-value> (): T_INT of <uninitialized parent> declared in <root>'
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' type=kotlin.Nothing origin=null
FUN name:<set-value> visibility:public modality:FINAL <> ($receiver:<root>.CInt32VarX<T_INT of <uninitialized parent>>, value:T_INT of <uninitialized parent>) returnType:kotlin.Unit
FUN name:<set-value> visibility:public modality:FINAL <T_INT> ($receiver:<root>.CInt32VarX<T_INT of <root>.<get-value>>, value:T_INT of <root>.<get-value>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.CInt32VarX<T_INT of <uninitialized parent>>
VALUE_PARAMETER name:value index:0 type:T_INT of <uninitialized parent>
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>>
VALUE_PARAMETER name:value index:0 type:T_INT of <root>.<get-value>
BLOCK_BODY
CLASS CLASS name:IdType modality:FINAL visibility:public superTypes:[<root>.CPointed]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.IdType
@@ -31,14 +31,16 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m1.kt
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
VALUE_PARAMETER name:<set-?> index:0 type:T of <root>.Base
PROPERTY name:exn visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-exn> visibility:public modality:ABSTRACT <> ($this:<root>.Base<T of <root>.Base>, $receiver:Z of <uninitialized parent>) returnType:T of <root>.Base
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-exn> visibility:public modality:ABSTRACT <Z> ($this:<root>.Base<T of <root>.Base>, $receiver:Z of <root>.Base.<get-exn>) returnType:T of <root>.Base
correspondingProperty: PROPERTY name:exn visibility:public modality:ABSTRACT [var]
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
$receiver: VALUE_PARAMETER name:<this> type:Z of <uninitialized parent>
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-exn> visibility:public modality:ABSTRACT <> ($this:<root>.Base<T of <root>.Base>, $receiver:Z of <uninitialized parent>, <set-?>:T of <root>.Base) returnType:kotlin.Unit
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Base.<get-exn>
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-exn> visibility:public modality:ABSTRACT <Z> ($this:<root>.Base<T of <root>.Base>, $receiver:Z of <root>.Base.<set-exn>, <set-?>:T of <root>.Base) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:exn visibility:public modality:ABSTRACT [var]
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.Base<T of <root>.Base>
$receiver: VALUE_PARAMETER name:<this> type:Z of <uninitialized parent>
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Base.<set-exn>
VALUE_PARAMETER name:<set-?> index:0 type:T of <root>.Base
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
@@ -37,18 +37,20 @@ FILE fqName:<root> fileName:/genericClassInDifferentModule_m2.kt
receiver: GET_VAR '<this>: <root>.Derived1<T of <root>.Derived1> declared in <root>.Derived1.<set-bar>' type=<root>.Derived1<T of <root>.Derived1> origin=null
value: GET_VAR '<set-?>: T of <root>.Derived1 declared in <root>.Derived1.<set-bar>' type=T of <root>.Derived1 origin=null
PROPERTY name:exn visibility:public modality:FINAL [var]
FUN name:<get-exn> visibility:public modality:FINAL <> ($this:<root>.Derived1<T of <root>.Derived1>, $receiver:Z of <uninitialized parent>) returnType:T of <root>.Derived1
FUN name:<get-exn> visibility:public modality:FINAL <Z> ($this:<root>.Derived1<T of <root>.Derived1>, $receiver:Z of <root>.Derived1.<get-exn>) returnType:T of <root>.Derived1
correspondingProperty: PROPERTY name:exn visibility:public modality:FINAL [var]
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.Derived1<T of <root>.Derived1>
$receiver: VALUE_PARAMETER name:<this> type:Z of <uninitialized parent>
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Derived1.<get-exn>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-exn> (): T of <root>.Derived1 declared in <root>.Derived1'
RETURN type=kotlin.Nothing from='public final fun <get-exn> <Z> (): T of <root>.Derived1 declared in <root>.Derived1'
CALL 'public final fun <get-x> (): T of <root>.Derived1 declared in <root>.Base' type=T of <root>.Derived1 origin=null
$this: GET_VAR '<this>: <root>.Derived1<T of <root>.Derived1> declared in <root>.Derived1.<get-exn>' type=<root>.Derived1<T of <root>.Derived1> origin=null
FUN name:<set-exn> visibility:public modality:FINAL <> ($this:<root>.Derived1<T of <root>.Derived1>, $receiver:Z of <uninitialized parent>, value:T of <root>.Derived1) returnType:kotlin.Unit
FUN name:<set-exn> visibility:public modality:FINAL <Z> ($this:<root>.Derived1<T of <root>.Derived1>, $receiver:Z of <root>.Derived1.<set-exn>, value:T of <root>.Derived1) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:exn visibility:public modality:FINAL [var]
TYPE_PARAMETER name:Z index:0 variance: superTypes:[kotlin.Any?]
$this: VALUE_PARAMETER name:<this> type:<root>.Derived1<T of <root>.Derived1>
$receiver: VALUE_PARAMETER name:<this> type:Z of <uninitialized parent>
$receiver: VALUE_PARAMETER name:<this> type:Z of <root>.Derived1.<set-exn>
VALUE_PARAMETER name:value index:0 type:T of <root>.Derived1
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:x visibility:public modality:FINAL [fake_override,val]
@@ -40,17 +40,19 @@ FILE fqName:<root> fileName:/genericPropertyReferenceType.kt
public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY name:y visibility:public modality:FINAL [var]
FUN name:<get-y> visibility:public modality:FINAL <> ($receiver:<root>.C<T of <uninitialized parent>>) returnType:T of <uninitialized parent>
FUN name:<get-y> visibility:public modality:FINAL <T> ($receiver:<root>.C<T of <root>.<get-y>>) returnType:T of <root>.<get-y>
correspondingProperty: PROPERTY name:y visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.C<T of <uninitialized parent>>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:<root>.C<T of <root>.<get-y>>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-y> (): T of <uninitialized parent> declared in <root>'
CALL 'public final fun <get-x> (): T of <uninitialized parent> declared in <root>.C' type=T of <uninitialized parent> origin=null
$this: ERROR_CALL 'Unresolved reference: this@R|/y|' type=<root>.C<T of <uninitialized parent>>
FUN name:<set-y> visibility:public modality:FINAL <> ($receiver:<root>.C<T of <uninitialized parent>>, v:T of <uninitialized parent>) returnType:kotlin.Unit
RETURN type=kotlin.Nothing from='public final fun <get-y> <T> (): T of <root>.<get-y> declared in <root>'
CALL 'public final fun <get-x> (): T of <root>.<get-y> declared in <root>.C' type=T of <root>.<get-y> origin=null
$this: ERROR_CALL 'Unresolved reference: this@R|/y|' type=<root>.C<T of <root>.<get-y>>
FUN name:<set-y> visibility:public modality:FINAL <T> ($receiver:<root>.C<T of <root>.<get-y>>, v:T of <root>.<get-y>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:y visibility:public modality:FINAL [var]
$receiver: VALUE_PARAMETER name:<this> type:<root>.C<T of <uninitialized parent>>
VALUE_PARAMETER name:v index:0 type:T of <uninitialized parent>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?]
$receiver: VALUE_PARAMETER name:<this> type:<root>.C<T of <root>.<get-y>>
VALUE_PARAMETER name:v index:0 type:T of <root>.<get-y>
BLOCK_BODY
ERROR_CALL 'Unresolved reference: R|FakeOverride</C.x: R|T|>|' type=IrErrorType
FUN name:use visibility:public modality:FINAL <> (p:kotlin.reflect.KMutableProperty<kotlin.String>) returnType:kotlin.Unit
@@ -59,11 +61,11 @@ FILE fqName:<root> fileName:/genericPropertyReferenceType.kt
FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public final fun use (p: kotlin.reflect.KMutableProperty<kotlin.String>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
p: PROPERTY_REFERENCE 'public final y: T of <uninitialized parent> [var]' field=null getter='public final fun <get-y> (): T of <uninitialized parent> declared in <root>' setter='public final fun <set-y> (v: T of <uninitialized parent>): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<kotlin.String> origin=null
p: PROPERTY_REFERENCE 'public final y: T of <root>.<get-y> [var]' field=null getter='public final fun <get-y> <T> (): T of <root>.<get-y> declared in <root>' setter='public final fun <set-y> <T> (v: T of <root>.<get-y>): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<kotlin.String> origin=null
FUN name:test2 visibility:public modality:FINAL <> (a:kotlin.Any) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:kotlin.Any
BLOCK_BODY
TYPE_OP type=<root>.C<kotlin.String> origin=CAST typeOperand=<root>.C<kotlin.String>
GET_VAR 'a: kotlin.Any declared in <root>.test2' type=kotlin.Any origin=null
CALL 'public final fun use (p: kotlin.reflect.KMutableProperty<kotlin.String>): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
p: PROPERTY_REFERENCE 'public final y: T of <uninitialized parent> [var]' field=null getter='public final fun <get-y> (): T of <uninitialized parent> declared in <root>' setter='public final fun <set-y> (v: T of <uninitialized parent>): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<kotlin.String> origin=null
p: PROPERTY_REFERENCE 'public final y: T of <root>.<get-y> [var]' field=null getter='public final fun <get-y> <T> (): T of <root>.<get-y> declared in <root>' setter='public final fun <set-y> <T> (v: T of <root>.<get-y>): kotlin.Unit declared in <root>' type=kotlin.reflect.KMutableProperty0<kotlin.String> origin=null