[FIR2IR] Properly handle intersection types in interface delegation
The changes to the irText test data result in the fact that we now unconditionally unwrap substitution overrides of delegation targets whereas before we built an unsubstituted scope of the type we delegate to. If we delegate to a class A : B<C>, the unsubstituted scope of A can still contain substitution overrides for inherited generic methods from B<T> that we didn't unwrap before but do unwrap now. #KT-57899 Fixed
This commit is contained in:
committed by
Space Team
parent
cda7dc4a3a
commit
e80b4c530d
+6
-6
@@ -309,13 +309,13 @@ class Fir2IrImplicitCastInserter(
|
||||
return implicitCastOrExpression(original, castType.toIrType(conversionTypeContext))
|
||||
}
|
||||
|
||||
internal fun implicitCastOrExpression(original: IrExpression, castType: IrType): IrExpression {
|
||||
val originalNotNull = original.type.makeNotNull()
|
||||
if (originalNotNull == castType.makeNotNull()) return original
|
||||
return implicitCast(original, castType)
|
||||
}
|
||||
|
||||
companion object {
|
||||
internal fun implicitCastOrExpression(original: IrExpression, castType: IrType): IrExpression {
|
||||
val originalNotNull = original.type.makeNotNull()
|
||||
if (originalNotNull == castType.makeNotNull()) return original
|
||||
return implicitCast(original, castType)
|
||||
}
|
||||
|
||||
private fun implicitCast(original: IrExpression, castType: IrType): IrExpression {
|
||||
val typeOperator = if (original.type is IrDynamicType) {
|
||||
IrTypeOperator.IMPLICIT_DYNAMIC_CAST
|
||||
|
||||
@@ -991,7 +991,7 @@ class Fir2IrVisitor(
|
||||
if (notNullType == originalType) {
|
||||
irGetLhsValue()
|
||||
} else {
|
||||
implicitCastInserter.implicitCastOrExpression(
|
||||
Fir2IrImplicitCastInserter.implicitCastOrExpression(
|
||||
irGetLhsValue(),
|
||||
firLhsVariable.returnTypeRef.resolvedTypeFromPrototype(notNullType).toIrType()
|
||||
)
|
||||
|
||||
+36
-32
@@ -13,23 +13,18 @@ import org.jetbrains.kotlin.fir.declarations.utils.modality
|
||||
import org.jetbrains.kotlin.fir.resolve.fullyExpandedType
|
||||
import org.jetbrains.kotlin.fir.scopes.*
|
||||
import org.jetbrains.kotlin.fir.delegatedWrapperData
|
||||
import org.jetbrains.kotlin.fir.resolve.scope
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.types.ConeClassLikeType
|
||||
import org.jetbrains.kotlin.fir.types.coneType
|
||||
import org.jetbrains.kotlin.fir.types.lowerBoundIfFlexible
|
||||
import org.jetbrains.kotlin.fir.types.toSymbol
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.IrBlockBody
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrGetFieldImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.impl.IrReturnImpl
|
||||
import org.jetbrains.kotlin.ir.types.classifierOrNull
|
||||
import org.jetbrains.kotlin.ir.types.*
|
||||
import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl
|
||||
import org.jetbrains.kotlin.ir.types.isNothing
|
||||
import org.jetbrains.kotlin.ir.types.isNullable
|
||||
import org.jetbrains.kotlin.ir.types.isUnit
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.JvmNames.JVM_DEFAULT_CLASS_ID
|
||||
@@ -94,8 +89,6 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I
|
||||
|
||||
// Generate delegated members for [subClass]. The synthetic field [irField] has the super interface type.
|
||||
fun generate(irField: IrField, firField: FirField, firSubClass: FirClass, subClass: IrClass) {
|
||||
val subClassLookupTag = firSubClass.symbol.toLookupTag()
|
||||
|
||||
val subClassScope = firSubClass.unsubstitutedScope(
|
||||
session,
|
||||
scopeSession,
|
||||
@@ -103,17 +96,12 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I
|
||||
memberRequiredPhase = null,
|
||||
)
|
||||
|
||||
val delegateToType = firField.initializer!!.typeRef.coneType.fullyExpandedType(session).lowerBoundIfFlexible()
|
||||
val delegateToClass = delegateToType.toSymbol(session).boundClass()
|
||||
val delegateToScope = firField.initializer!!.typeRef.coneType
|
||||
.fullyExpandedType(session)
|
||||
.lowerBoundIfFlexible()
|
||||
.scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing, null) ?: return
|
||||
|
||||
val delegateToScope = delegateToClass.unsubstitutedScope(
|
||||
session,
|
||||
scopeSession,
|
||||
withForcedTypeCalculator = false,
|
||||
memberRequiredPhase = null,
|
||||
)
|
||||
|
||||
val delegateToLookupTag = (delegateToType as? ConeClassLikeType)?.lookupTag
|
||||
val subClassLookupTag = firSubClass.symbol.toLookupTag()
|
||||
|
||||
subClassScope.processAllFunctions { functionSymbol ->
|
||||
val unwrapped =
|
||||
@@ -126,9 +114,13 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I
|
||||
delegateToScope::processOverriddenFunctions
|
||||
) ?: return@processAllFunctions
|
||||
|
||||
val delegateToLookupTag = delegateToSymbol.dispatchReceiverClassLookupTagOrNull()
|
||||
?: return@processAllFunctions
|
||||
|
||||
val irSubFunction = generateDelegatedFunction(
|
||||
subClass, firSubClass, functionSymbol.fir
|
||||
)
|
||||
|
||||
bodiesInfo += DeclarationBodyInfo(irSubFunction, irField, delegateToSymbol, delegateToLookupTag)
|
||||
declarationStorage.cacheDelegationFunction(functionSymbol.fir, irSubFunction)
|
||||
subClass.addMember(irSubFunction)
|
||||
@@ -152,6 +144,9 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I
|
||||
delegateToScope::processOverriddenProperties
|
||||
) ?: return@processAllProperties
|
||||
|
||||
val delegateToLookupTag = delegateToSymbol.dispatchReceiverClassLookupTagOrNull()
|
||||
?: return@processAllProperties
|
||||
|
||||
val irSubProperty = generateDelegatedProperty(
|
||||
subClass, firSubClass, propertySymbol.fir
|
||||
)
|
||||
@@ -184,7 +179,7 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I
|
||||
}
|
||||
}
|
||||
}
|
||||
return result
|
||||
return result?.unwrapSubstitutionOverrides()
|
||||
}
|
||||
|
||||
fun bindDelegatedMembersOverriddenSymbols(irClass: IrClass) {
|
||||
@@ -247,22 +242,31 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I
|
||||
val irCall = IrCallImpl(
|
||||
startOffset,
|
||||
endOffset,
|
||||
delegateFunction.returnType,
|
||||
superFunction.returnType,
|
||||
superFunction.symbol,
|
||||
superFunction.typeParameters.size,
|
||||
superFunction.valueParameters.size
|
||||
).apply {
|
||||
dispatchReceiver =
|
||||
IrGetFieldImpl(
|
||||
val getField = IrGetFieldImpl(
|
||||
startOffset, endOffset,
|
||||
irField.symbol,
|
||||
irField.type,
|
||||
IrGetValueImpl(
|
||||
startOffset, endOffset,
|
||||
irField.symbol,
|
||||
irField.type,
|
||||
IrGetValueImpl(
|
||||
startOffset, endOffset,
|
||||
delegateFunction.dispatchReceiverParameter?.type!!,
|
||||
delegateFunction.dispatchReceiverParameter?.symbol!!
|
||||
)
|
||||
delegateFunction.dispatchReceiverParameter?.type!!,
|
||||
delegateFunction.dispatchReceiverParameter?.symbol!!
|
||||
)
|
||||
)
|
||||
|
||||
// When the delegation expression has an intersection type, it is not guaranteed that the field will have the same type as the
|
||||
// dispatch receiver of the target method. Therefore, we need to check if a cast must be inserted.
|
||||
val superFunctionParent = superFunction.parent as? IrClass
|
||||
dispatchReceiver = if (superFunctionParent == null || irField.type.isSubtypeOfClass(superFunctionParent.symbol)) {
|
||||
getField
|
||||
} else {
|
||||
Fir2IrImplicitCastInserter.implicitCastOrExpression(getField, superFunction.dispatchReceiverParameter!!.type)
|
||||
}
|
||||
|
||||
extensionReceiver =
|
||||
delegateFunction.extensionReceiverParameter?.let { extensionReceiver ->
|
||||
IrGetValueImpl(startOffset, endOffset, extensionReceiver.type, extensionReceiver.symbol)
|
||||
@@ -282,6 +286,7 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I
|
||||
}
|
||||
}
|
||||
val resultType = delegateFunction.returnType
|
||||
|
||||
val irCastOrCall =
|
||||
if (callTypeCanBeNullable && !resultType.isNullable()) Fir2IrImplicitCastInserter.implicitNotNullCast(irCall)
|
||||
else irCall
|
||||
@@ -366,4 +371,3 @@ class DelegatedMemberGenerator(private val components: Fir2IrComponents) : Fir2I
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+18
@@ -15731,6 +15731,18 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType2.kt")
|
||||
public void testDelegationToIntersectionType2() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToMap.kt")
|
||||
public void testDelegationToMap() throws Exception {
|
||||
@@ -15827,6 +15839,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr
|
||||
runTest("compiler/testData/codegen/box/delegation/simple.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+18
@@ -15731,6 +15731,18 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType2.kt")
|
||||
public void testDelegationToIntersectionType2() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToMap.kt")
|
||||
public void testDelegationToMap() throws Exception {
|
||||
@@ -15827,6 +15839,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo
|
||||
runTest("compiler/testData/codegen/box/delegation/simple.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+149
@@ -0,0 +1,149 @@
|
||||
FILE fqName:<root> fileName:/delegationToIntersectionType.kt
|
||||
FUN name:select visibility:public modality:FINAL <T> (a:T of <root>.select, b:T of <root>.select) returnType:T of <root>.select
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
VALUE_PARAMETER name:a index:0 type:T of <root>.select
|
||||
VALUE_PARAMETER name:b index:1 type:T of <root>.select
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun select <T> (a: T of <root>.select, b: T of <root>.select): T of <root>.select declared in <root>'
|
||||
GET_VAR 'a: T of <root>.select declared in <root>.select' type=T of <root>.select origin=null
|
||||
CLASS INTERFACE name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER 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:
|
||||
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
|
||||
CLASS INTERFACE name:B modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
|
||||
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.B) returnType:kotlin.String
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
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
|
||||
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]'
|
||||
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.String
|
||||
overridden:
|
||||
public abstract fun foo (): kotlin.String declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.C'
|
||||
CONST String type=kotlin.String value="OK"
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.A
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun toString (): kotlin.String [fake_override] declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]'
|
||||
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
|
||||
overridden:
|
||||
public abstract fun foo (): kotlin.String declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.D'
|
||||
CONST String type=kotlin.String value="FAIL"
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.A
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun toString (): kotlin.String [fake_override] declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:test visibility:public modality:FINAL <> (c:<root>.C, d:<root>.D) returnType:kotlin.String
|
||||
VALUE_PARAMETER name:c index:0 type:<root>.C
|
||||
VALUE_PARAMETER name:d index:1 type:<root>.D
|
||||
BLOCK_BODY
|
||||
VAR name:intersection type:<root>.A [val]
|
||||
CALL 'public final fun select <T> (a: T of <root>.select, b: T of <root>.select): T of <root>.select declared in <root>' type=<root>.A origin=null
|
||||
<T>: <root>.A
|
||||
a: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
b: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun test (c: <root>.C, d: <root>.D): kotlin.String declared in <root>'
|
||||
CALL 'public open fun foo (): kotlin.String declared in <root>.test.<no name provided>' type=kotlin.String origin=null
|
||||
$this: BLOCK type=<root>.test.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS CLASS name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.B]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.test.<no name provided>
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.test.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.B]'
|
||||
FUN DELEGATED_MEMBER name:foo visibility:public modality:OPEN <> ($this:<root>.test.<no name provided>) returnType:kotlin.String
|
||||
overridden:
|
||||
public abstract fun foo (): kotlin.String declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.test.<no name provided>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.test.<no name provided>'
|
||||
CALL 'public abstract fun foo (): kotlin.String declared in <root>.B' type=kotlin.String origin=null
|
||||
$this: TYPE_OP type=<root>.B origin=IMPLICIT_CAST typeOperand=<root>.B
|
||||
GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.A visibility:private [final]' type=<root>.A origin=null
|
||||
receiver: GET_VAR '<this>: <root>.test.<no name provided> declared in <root>.test.<no name provided>.foo' type=<root>.test.<no name provided> origin=null
|
||||
FIELD DELEGATE name:$$delegate_0 type:<root>.A visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
GET_VAR 'val intersection: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=OBJECT_LITERAL
|
||||
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
CALL 'public final fun test (c: <root>.C, d: <root>.D): kotlin.String declared in <root>' type=kotlin.String origin=null
|
||||
c: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.C' type=<root>.C origin=null
|
||||
d: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.D' type=<root>.D origin=null
|
||||
+149
@@ -0,0 +1,149 @@
|
||||
FILE fqName:<root> fileName:/delegationToIntersectionType.kt
|
||||
FUN name:select visibility:public modality:FINAL <T> (a:T of <root>.select, b:T of <root>.select) returnType:T of <root>.select
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
VALUE_PARAMETER name:a index:0 type:T of <root>.select
|
||||
VALUE_PARAMETER name:b index:1 type:T of <root>.select
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun select <T> (a: T of <root>.select, b: T of <root>.select): T of <root>.select declared in <root>'
|
||||
GET_VAR 'a: T of <root>.select declared in <root>.select' type=T of <root>.select origin=null
|
||||
CLASS INTERFACE name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER 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:
|
||||
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
|
||||
CLASS INTERFACE name:B modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
|
||||
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.B) returnType:kotlin.String
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
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
|
||||
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]'
|
||||
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.String
|
||||
overridden:
|
||||
public abstract fun foo (): kotlin.String declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.C'
|
||||
CONST String type=kotlin.String value="OK"
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.A
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun toString (): kotlin.String [fake_override] declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]'
|
||||
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
|
||||
overridden:
|
||||
public abstract fun foo (): kotlin.String declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.D'
|
||||
CONST String type=kotlin.String value="FAIL"
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.A
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun toString (): kotlin.String [fake_override] declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:test visibility:public modality:FINAL <> (c:<root>.C, d:<root>.D) returnType:kotlin.String
|
||||
VALUE_PARAMETER name:c index:0 type:<root>.C
|
||||
VALUE_PARAMETER name:d index:1 type:<root>.D
|
||||
BLOCK_BODY
|
||||
VAR name:intersection type:kotlin.Any [val]
|
||||
CALL 'public final fun select <T> (a: T of <root>.select, b: T of <root>.select): T of <root>.select declared in <root>' type=kotlin.Any origin=null
|
||||
<T>: kotlin.Any
|
||||
a: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
b: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun test (c: <root>.C, d: <root>.D): kotlin.String declared in <root>'
|
||||
CALL 'public open fun foo (): kotlin.String declared in <root>.test.<no name provided>' type=kotlin.String origin=null
|
||||
$this: BLOCK type=<root>.test.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS CLASS name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.B]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.test.<no name provided>
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.test.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.B]'
|
||||
FIELD DELEGATE name:$$delegate_0 type:kotlin.Any visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
GET_VAR 'val intersection: kotlin.Any [val] declared in <root>.test' type=kotlin.Any origin=null
|
||||
FUN DELEGATED_MEMBER name:foo visibility:public modality:OPEN <> ($this:<root>.test.<no name provided>) returnType:kotlin.String
|
||||
overridden:
|
||||
public abstract fun foo (): kotlin.String declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.test.<no name provided>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.test.<no name provided>'
|
||||
CALL 'public abstract fun foo (): kotlin.String declared in <root>.B' type=kotlin.String origin=null
|
||||
$this: TYPE_OP type=<root>.B origin=IMPLICIT_CAST typeOperand=<root>.B
|
||||
GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:kotlin.Any visibility:private [final]' type=kotlin.Any origin=null
|
||||
receiver: GET_VAR '<this>: <root>.test.<no name provided> declared in <root>.test.<no name provided>.foo' type=<root>.test.<no name provided> origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=OBJECT_LITERAL
|
||||
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
CALL 'public final fun test (c: <root>.C, d: <root>.D): kotlin.String declared in <root>' type=kotlin.String origin=null
|
||||
c: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.C' type=<root>.C origin=null
|
||||
d: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.D' type=<root>.D origin=null
|
||||
@@ -0,0 +1,21 @@
|
||||
// DUMP_IR
|
||||
|
||||
fun <T> select(a: T, b: T) : T = a
|
||||
|
||||
interface A
|
||||
interface B {
|
||||
fun foo(): String
|
||||
}
|
||||
class C : A, B {
|
||||
override fun foo() = "OK"
|
||||
}
|
||||
class D : A, B {
|
||||
override fun foo() = "FAIL"
|
||||
}
|
||||
|
||||
fun test(c: C, d: D): String {
|
||||
val intersection = select(c, d)
|
||||
return object: B by intersection {}.foo()
|
||||
}
|
||||
|
||||
fun box() = test(C(), D())
|
||||
+154
@@ -0,0 +1,154 @@
|
||||
FILE fqName:<root> fileName:/delegationToIntersectionType2.kt
|
||||
FUN name:select visibility:public modality:FINAL <T> (a:T of <root>.select, b:T of <root>.select) returnType:T of <root>.select
|
||||
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
|
||||
VALUE_PARAMETER name:a index:0 type:T of <root>.select
|
||||
VALUE_PARAMETER name:b index:1 type:T of <root>.select
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun select <T> (a: T of <root>.select, b: T of <root>.select): T of <root>.select declared in <root>'
|
||||
GET_VAR 'a: T of <root>.select declared in <root>.select' type=T of <root>.select origin=null
|
||||
CLASS INTERFACE name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
|
||||
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.A) returnType:kotlin.Any
|
||||
$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:
|
||||
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
|
||||
CLASS INTERFACE name:B modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
|
||||
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.B) returnType:kotlin.String
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.B
|
||||
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
|
||||
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]'
|
||||
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.String
|
||||
overridden:
|
||||
public abstract fun foo (): kotlin.Any declared in <root>.A
|
||||
public abstract fun foo (): kotlin.String declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.C'
|
||||
CONST String type=kotlin.String value="OK"
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.A
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun toString (): kotlin.String [fake_override] declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.A; <root>.B]'
|
||||
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.String
|
||||
overridden:
|
||||
public abstract fun foo (): kotlin.Any declared in <root>.A
|
||||
public abstract fun foo (): kotlin.String declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.D
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.D'
|
||||
CONST String type=kotlin.String value="FAIL"
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.A
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun hashCode (): kotlin.Int [fake_override] declared in <root>.B
|
||||
$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 [fake_override] declared in <root>.A
|
||||
public open fun toString (): kotlin.String [fake_override] declared in <root>.B
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
FUN name:test visibility:public modality:FINAL <> (c:<root>.C, d:<root>.D) returnType:kotlin.String
|
||||
VALUE_PARAMETER name:c index:0 type:<root>.C
|
||||
VALUE_PARAMETER name:d index:1 type:<root>.D
|
||||
BLOCK_BODY
|
||||
VAR name:intersection type:<root>.A [val]
|
||||
CALL 'public final fun select <T> (a: T of <root>.select, b: T of <root>.select): T of <root>.select declared in <root>' type=<root>.A origin=null
|
||||
<T>: <root>.A
|
||||
a: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
|
||||
b: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
|
||||
RETURN type=kotlin.Nothing from='public final fun test (c: <root>.C, d: <root>.D): kotlin.String declared in <root>'
|
||||
CALL 'public open fun toString (): kotlin.String declared in kotlin.Any' type=kotlin.String origin=null
|
||||
$this: CALL 'public open fun foo (): kotlin.Any declared in <root>.test.<no name provided>' type=kotlin.Any origin=null
|
||||
$this: BLOCK type=<root>.test.<no name provided> origin=OBJECT_LITERAL
|
||||
CLASS CLASS name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.A]
|
||||
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.test.<no name provided>
|
||||
CONSTRUCTOR visibility:public <> () returnType:<root>.test.<no name provided> [primary]
|
||||
BLOCK_BODY
|
||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:<no name provided> modality:FINAL visibility:local superTypes:[<root>.A]'
|
||||
FUN DELEGATED_MEMBER name:foo visibility:public modality:OPEN <> ($this:<root>.test.<no name provided>) returnType:kotlin.Any
|
||||
overridden:
|
||||
public abstract fun foo (): kotlin.Any declared in <root>.A
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.test.<no name provided>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.Any declared in <root>.test.<no name provided>'
|
||||
CALL 'public abstract fun foo (): kotlin.String declared in <root>.B' type=kotlin.String origin=null
|
||||
$this: TYPE_OP type=<root>.B origin=IMPLICIT_CAST typeOperand=<root>.B
|
||||
GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.A visibility:private [final]' type=<root>.A origin=null
|
||||
receiver: GET_VAR '<this>: <root>.test.<no name provided> declared in <root>.test.<no name provided>.foo' type=<root>.test.<no name provided> origin=null
|
||||
FIELD DELEGATE name:$$delegate_0 type:<root>.A visibility:private [final]
|
||||
EXPRESSION_BODY
|
||||
GET_VAR 'val intersection: <root>.A [val] declared in <root>.test' type=<root>.A origin=null
|
||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||
overridden:
|
||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in <root>.A
|
||||
$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 [fake_override] declared in <root>.A
|
||||
$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 [fake_override] declared in <root>.A
|
||||
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.test.<no name provided>' type=<root>.test.<no name provided> origin=OBJECT_LITERAL
|
||||
FUN name:box visibility:public modality:FINAL <> () returnType:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
|
||||
CALL 'public final fun test (c: <root>.C, d: <root>.D): kotlin.String declared in <root>' type=kotlin.String origin=null
|
||||
c: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.C' type=<root>.C origin=null
|
||||
d: CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in <root>.D' type=<root>.D origin=null
|
||||
@@ -0,0 +1,26 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// IGNORE_BACKEND_K1: ANY
|
||||
// DUMP_IR
|
||||
// K1_STATUS: java.lang.AssertionError: There is still an unbound symbol after generation of IR module <main>
|
||||
|
||||
fun <T> select(a: T, b: T) : T = a
|
||||
|
||||
interface A {
|
||||
fun foo(): Any
|
||||
}
|
||||
interface B {
|
||||
fun foo(): String
|
||||
}
|
||||
class C : A, B {
|
||||
override fun foo() = "OK"
|
||||
}
|
||||
class D : A, B {
|
||||
override fun foo() = "FAIL"
|
||||
}
|
||||
|
||||
fun test(c: C, d: D): String {
|
||||
val intersection = select(c, d)
|
||||
return object: A by intersection {}.foo().toString()
|
||||
}
|
||||
|
||||
fun box() = test(C(), D())
|
||||
@@ -0,0 +1,12 @@
|
||||
interface DosFileAttributeView {
|
||||
fun bar(): String
|
||||
}
|
||||
|
||||
fun <V> foo(view: V): DosFileAttributeView {
|
||||
view as DosFileAttributeView
|
||||
return object : DosFileAttributeView by view {}
|
||||
}
|
||||
|
||||
fun box() = foo(object : DosFileAttributeView {
|
||||
override fun bar() = "OK"
|
||||
}).bar()
|
||||
compiler/testData/codegen/box/functions/delegatedPropertyWithMultipleOverriddens_generics.fir.ir.txt
Vendored
+2
-2
@@ -203,7 +203,7 @@ FILE fqName:<root> fileName:/delegatedPropertyWithMultipleOverriddens_generics.k
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MC
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.MC'
|
||||
CALL 'public open fun foo (): E6 of <root>.MyArrayList declared in <root>.MyArrayList' type=kotlin.String origin=null
|
||||
CALL 'public open fun foo (): E6 of <root>.MyArrayList declared in <root>.MyArrayList' type=E6 of <root>.MyArrayList origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.MyArrayList<kotlin.String> visibility:private [final]' type=<root>.MyArrayList<kotlin.String> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.MC declared in <root>.MC.foo' type=<root>.MC origin=null
|
||||
PROPERTY DELEGATED_MEMBER name:bar visibility:public modality:OPEN [val]
|
||||
@@ -216,7 +216,7 @@ FILE fqName:<root> fileName:/delegatedPropertyWithMultipleOverriddens_generics.k
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.MC
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-bar> (): kotlin.String declared in <root>.MC'
|
||||
CALL 'public open fun <get-bar> (): E6 of <root>.MyArrayList declared in <root>.MyArrayList' type=kotlin.String origin=null
|
||||
CALL 'public open fun <get-bar> (): E6 of <root>.MyArrayList declared in <root>.MyArrayList' type=E6 of <root>.MyArrayList origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.MyArrayList<kotlin.String> visibility:private [final]' type=<root>.MyArrayList<kotlin.String> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.MC declared in <root>.MC.<get-bar>' type=<root>.MC origin=null
|
||||
FIELD DELEGATE name:$$delegate_0 type:<root>.MyArrayList<kotlin.String> visibility:private [final]
|
||||
|
||||
+4
-4
@@ -72,7 +72,7 @@ FILE fqName:<root> fileName:/delegatedGenericImplementation.kt
|
||||
$receiver: VALUE_PARAMETER name:<this> type:C of <root>.Test1.<get-id>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-id> <C> (): kotlin.collections.Map<E of <root>.Test1, C of <root>.Test1.<get-id>>? declared in <root>.Test1'
|
||||
CALL 'public abstract fun <get-id> <C> (): kotlin.collections.Map<A of <root>.IBase, C of <root>.IBase.<get-id>>? declared in <root>.IBase' type=kotlin.collections.Map<E of <root>.Test1, C of <root>.Test1.<get-id>>? origin=null
|
||||
CALL 'public abstract fun <get-id> <C> (): kotlin.collections.Map<A of <root>.IBase, C of <root>.IBase.<get-id>>? declared in <root>.IBase' type=kotlin.collections.Map<A of <root>.IBase, C of <root>.IBase.<get-id>>? origin=null
|
||||
<C>: C of <root>.Test1.<get-id>
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.IBase<E of <root>.Test1> visibility:private [final]' type=<root>.IBase<E of <root>.Test1> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Test1<E of <root>.Test1> declared in <root>.Test1.<get-id>' type=<root>.Test1<E of <root>.Test1> origin=null
|
||||
@@ -89,7 +89,7 @@ FILE fqName:<root> fileName:/delegatedGenericImplementation.kt
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.List<D of <root>.Test1.<get-x>>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-x> <D> (): D of <root>.Test1.<get-x>? declared in <root>.Test1'
|
||||
CALL 'public abstract fun <get-x> <D> (): D of <root>.IBase.<get-x>? declared in <root>.IBase' type=D of <root>.Test1.<get-x>? origin=null
|
||||
CALL 'public abstract fun <get-x> <D> (): D of <root>.IBase.<get-x>? declared in <root>.IBase' type=D of <root>.IBase.<get-x>? origin=null
|
||||
<D>: D of <root>.Test1.<get-x>
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.IBase<E of <root>.Test1> visibility:private [final]' type=<root>.IBase<E of <root>.Test1> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Test1<E of <root>.Test1> declared in <root>.Test1.<get-x>' type=<root>.Test1<E of <root>.Test1> origin=null
|
||||
@@ -158,7 +158,7 @@ FILE fqName:<root> fileName:/delegatedGenericImplementation.kt
|
||||
$receiver: VALUE_PARAMETER name:<this> type:C of <root>.Test2.<get-id>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-id> <C> (): kotlin.collections.Map<kotlin.String, C of <root>.Test2.<get-id>>? declared in <root>.Test2'
|
||||
CALL 'public abstract fun <get-id> <C> (): kotlin.collections.Map<A of <root>.IBase, C of <root>.IBase.<get-id>>? declared in <root>.IBase' type=kotlin.collections.Map<kotlin.String, C of <root>.Test2.<get-id>>? origin=null
|
||||
CALL 'public abstract fun <get-id> <C> (): kotlin.collections.Map<A of <root>.IBase, C of <root>.IBase.<get-id>>? declared in <root>.IBase' type=kotlin.collections.Map<A of <root>.IBase, C of <root>.IBase.<get-id>>? origin=null
|
||||
<C>: C of <root>.Test2.<get-id>
|
||||
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j type:<root>.IBase<kotlin.String> visibility:private' type=<root>.IBase<kotlin.String> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Test2 declared in <root>.Test2.<get-id>' type=<root>.Test2 origin=null
|
||||
@@ -175,7 +175,7 @@ FILE fqName:<root> fileName:/delegatedGenericImplementation.kt
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.collections.List<D of <root>.Test2.<get-x>>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-x> <D> (): D of <root>.Test2.<get-x>? declared in <root>.Test2'
|
||||
CALL 'public abstract fun <get-x> <D> (): D of <root>.IBase.<get-x>? declared in <root>.IBase' type=D of <root>.Test2.<get-x>? origin=null
|
||||
CALL 'public abstract fun <get-x> <D> (): D of <root>.IBase.<get-x>? declared in <root>.IBase' type=D of <root>.IBase.<get-x>? origin=null
|
||||
<D>: D of <root>.Test2.<get-x>
|
||||
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:j type:<root>.IBase<kotlin.String> visibility:private' type=<root>.IBase<kotlin.String> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Test2 declared in <root>.Test2.<get-x>' type=<root>.Test2 origin=null
|
||||
|
||||
+3
-3
@@ -138,7 +138,7 @@ FILE fqName:<root> fileName:/implicitNotNullOnDelegatedImplementation.kt
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.TestJFoo'
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun foo (): @[EnhancedNullability] kotlin.String declared in <root>.JFoo' type=kotlin.String origin=null
|
||||
CALL 'public open fun foo (): @[EnhancedNullability] kotlin.String declared in <root>.JFoo' type=@[EnhancedNullability] kotlin.String origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.JFoo visibility:private [final]' type=<root>.JFoo origin=null
|
||||
receiver: GET_VAR '<this>: <root>.TestJFoo declared in <root>.TestJFoo.foo' type=<root>.TestJFoo origin=null
|
||||
FIELD DELEGATE name:$$delegate_0 type:<root>.JFoo visibility:private [final]
|
||||
@@ -170,7 +170,7 @@ FILE fqName:<root> fileName:/implicitNotNullOnDelegatedImplementation.kt
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.TestK1'
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun foo (): @[EnhancedNullability] kotlin.String [fake_override] declared in <root>.K1' type=kotlin.String origin=null
|
||||
CALL 'public open fun foo (): @[EnhancedNullability] kotlin.String declared in <root>.JFoo' type=@[EnhancedNullability] kotlin.String origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.K1 visibility:private [final]' type=<root>.K1 origin=null
|
||||
receiver: GET_VAR '<this>: <root>.TestK1 declared in <root>.TestK1.foo' type=<root>.TestK1 origin=null
|
||||
FIELD DELEGATE name:$$delegate_0 type:<root>.K1 visibility:private [final]
|
||||
@@ -264,7 +264,7 @@ FILE fqName:<root> fileName:/implicitNotNullOnDelegatedImplementation.kt
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.TestK4'
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun foo (): @[FlexibleNullability] kotlin.String? declared in <root>.K4' type=kotlin.String origin=null
|
||||
CALL 'public open fun foo (): @[FlexibleNullability] kotlin.String? declared in <root>.K4' type=@[FlexibleNullability] kotlin.String? origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.K4 visibility:private [final]' type=<root>.K4 origin=null
|
||||
receiver: GET_VAR '<this>: <root>.TestK4 declared in <root>.TestK4.foo' type=<root>.TestK4 origin=null
|
||||
FIELD DELEGATE name:$$delegate_0 type:<root>.K4 visibility:private [final]
|
||||
|
||||
+1
-1
@@ -13,7 +13,7 @@ FILE fqName:<root> fileName:/kt45934.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo <C> (): @[FlexibleNullability] kotlin.collections.MutableList<@[FlexibleNullability] C of <root>.C.foo?>? declared in <root>.C'
|
||||
CALL 'public open fun foo (): @[FlexibleNullability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.String?>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.MutableList<@[FlexibleNullability] C of <root>.C.foo?>? origin=null
|
||||
CALL 'public open fun foo (): @[FlexibleNullability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.String?>? declared in <root>.J' type=@[FlexibleNullability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.String?>? origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.J visibility:private [final]' type=<root>.J origin=null
|
||||
receiver: GET_VAR '<this>: <root>.C declared in <root>.C.foo' type=<root>.C origin=null
|
||||
FIELD DELEGATE name:$$delegate_0 type:<root>.J visibility:private [final]
|
||||
|
||||
@@ -42,7 +42,7 @@ FILE fqName:<root> fileName:/kt35550.kt
|
||||
$receiver: VALUE_PARAMETER name:<this> type:T of <root>.A.<get-id>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-id> <T> (): T of <root>.A.<get-id> declared in <root>.A'
|
||||
CALL 'public open fun <get-id> <T> (): T of <root>.I.<get-id> declared in <root>.I' type=T of <root>.A.<get-id> origin=null
|
||||
CALL 'public open fun <get-id> <T> (): T of <root>.I.<get-id> declared in <root>.I' type=T of <root>.I.<get-id> origin=null
|
||||
<T>: T of <root>.A.<get-id>
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.I visibility:private [final]' type=<root>.I origin=null
|
||||
receiver: GET_VAR '<this>: <root>.A declared in <root>.A.<get-id>' type=<root>.A origin=null
|
||||
|
||||
+11
-11
@@ -14,7 +14,7 @@ FILE fqName:<root> fileName:/DelegationAndInheritanceFromJava.kt
|
||||
VALUE_PARAMETER name:element index:0 type:@[FlexibleNullability] kotlin.String?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun add (element: @[FlexibleNullability] kotlin.String?): kotlin.Boolean declared in <root>.Impl'
|
||||
CALL 'public abstract fun add (element: @[FlexibleNullability] kotlin.String?): kotlin.Boolean [fake_override] declared in <root>.Foo.B' type=kotlin.Boolean origin=null
|
||||
CALL 'public abstract fun add (element: E of kotlin.collections.MutableSet): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]' type=<root>.Foo.B origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Impl declared in <root>.Impl.add' type=<root>.Impl origin=null
|
||||
element: GET_VAR 'element: @[FlexibleNullability] kotlin.String? declared in <root>.Impl.add' type=@[FlexibleNullability] kotlin.String? origin=null
|
||||
@@ -26,7 +26,7 @@ FILE fqName:<root> fileName:/DelegationAndInheritanceFromJava.kt
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun addAll (elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>): kotlin.Boolean declared in <root>.Impl'
|
||||
CALL 'public abstract fun addAll (elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>): kotlin.Boolean [fake_override] declared in <root>.Foo.B' type=kotlin.Boolean origin=null
|
||||
CALL 'public abstract fun addAll (elements: kotlin.collections.Collection<E of kotlin.collections.MutableSet>): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]' type=<root>.Foo.B origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Impl declared in <root>.Impl.addAll' type=<root>.Impl origin=null
|
||||
elements: GET_VAR 'elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?> declared in <root>.Impl.addAll' type=kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?> origin=null
|
||||
@@ -36,7 +36,7 @@ FILE fqName:<root> fileName:/DelegationAndInheritanceFromJava.kt
|
||||
public abstract fun clear (): kotlin.Unit [fake_override] declared in <root>.Foo.B
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Impl
|
||||
BLOCK_BODY
|
||||
CALL 'public abstract fun clear (): kotlin.Unit [fake_override] declared in <root>.Foo.B' type=kotlin.Unit origin=null
|
||||
CALL 'public abstract fun clear (): kotlin.Unit declared in kotlin.collections.MutableSet' type=kotlin.Unit origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]' type=<root>.Foo.B origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Impl declared in <root>.Impl.clear' type=<root>.Impl origin=null
|
||||
FUN DELEGATED_MEMBER name:iterator visibility:public modality:OPEN <> ($this:<root>.Impl) returnType:kotlin.collections.MutableIterator<@[FlexibleNullability] kotlin.String?> [operator]
|
||||
@@ -46,7 +46,7 @@ FILE fqName:<root> fileName:/DelegationAndInheritanceFromJava.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Impl
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun iterator (): kotlin.collections.MutableIterator<@[FlexibleNullability] kotlin.String?> [operator] declared in <root>.Impl'
|
||||
CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator<@[FlexibleNullability] kotlin.String?> [fake_override,operator] declared in <root>.Foo.B' type=kotlin.collections.MutableIterator<@[FlexibleNullability] kotlin.String?> origin=null
|
||||
CALL 'public abstract fun iterator (): kotlin.collections.MutableIterator<E of kotlin.collections.MutableSet> [operator] declared in kotlin.collections.MutableSet' type=kotlin.collections.MutableIterator<E of kotlin.collections.MutableSet> origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]' type=<root>.Foo.B origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Impl declared in <root>.Impl.iterator' type=<root>.Impl origin=null
|
||||
FUN DELEGATED_MEMBER name:remove visibility:public modality:OPEN <> ($this:<root>.Impl, element:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Boolean
|
||||
@@ -57,7 +57,7 @@ FILE fqName:<root> fileName:/DelegationAndInheritanceFromJava.kt
|
||||
VALUE_PARAMETER name:element index:0 type:@[FlexibleNullability] kotlin.String?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun remove (element: @[FlexibleNullability] kotlin.String?): kotlin.Boolean declared in <root>.Impl'
|
||||
CALL 'public abstract fun remove (element: @[FlexibleNullability] kotlin.String?): kotlin.Boolean [fake_override] declared in <root>.Foo.B' type=kotlin.Boolean origin=null
|
||||
CALL 'public abstract fun remove (element: E of kotlin.collections.MutableSet): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]' type=<root>.Foo.B origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Impl declared in <root>.Impl.remove' type=<root>.Impl origin=null
|
||||
element: GET_VAR 'element: @[FlexibleNullability] kotlin.String? declared in <root>.Impl.remove' type=@[FlexibleNullability] kotlin.String? origin=null
|
||||
@@ -69,7 +69,7 @@ FILE fqName:<root> fileName:/DelegationAndInheritanceFromJava.kt
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun removeAll (elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>): kotlin.Boolean declared in <root>.Impl'
|
||||
CALL 'public abstract fun removeAll (elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>): kotlin.Boolean [fake_override] declared in <root>.Foo.B' type=kotlin.Boolean origin=null
|
||||
CALL 'public abstract fun removeAll (elements: kotlin.collections.Collection<E of kotlin.collections.MutableSet>): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]' type=<root>.Foo.B origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Impl declared in <root>.Impl.removeAll' type=<root>.Impl origin=null
|
||||
elements: GET_VAR 'elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?> declared in <root>.Impl.removeAll' type=kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?> origin=null
|
||||
@@ -81,7 +81,7 @@ FILE fqName:<root> fileName:/DelegationAndInheritanceFromJava.kt
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun retainAll (elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>): kotlin.Boolean declared in <root>.Impl'
|
||||
CALL 'public abstract fun retainAll (elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>): kotlin.Boolean [fake_override] declared in <root>.Foo.B' type=kotlin.Boolean origin=null
|
||||
CALL 'public abstract fun retainAll (elements: kotlin.collections.Collection<E of kotlin.collections.MutableSet>): kotlin.Boolean declared in kotlin.collections.MutableSet' type=kotlin.Boolean origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]' type=<root>.Foo.B origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Impl declared in <root>.Impl.retainAll' type=<root>.Impl origin=null
|
||||
elements: GET_VAR 'elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?> declared in <root>.Impl.retainAll' type=kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?> origin=null
|
||||
@@ -93,7 +93,7 @@ FILE fqName:<root> fileName:/DelegationAndInheritanceFromJava.kt
|
||||
VALUE_PARAMETER name:element index:0 type:@[FlexibleNullability] kotlin.String?
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun contains (element: @[FlexibleNullability] kotlin.String?): kotlin.Boolean [operator] declared in <root>.Impl'
|
||||
CALL 'public abstract fun contains (element: @[FlexibleNullability] kotlin.String?): kotlin.Boolean [fake_override,operator] declared in <root>.Foo.B' type=kotlin.Boolean origin=null
|
||||
CALL 'public abstract fun contains (element: E of kotlin.collections.Set): kotlin.Boolean [operator] declared in kotlin.collections.Set' type=kotlin.Boolean origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]' type=<root>.Foo.B origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Impl declared in <root>.Impl.contains' type=<root>.Impl origin=null
|
||||
element: GET_VAR 'element: @[FlexibleNullability] kotlin.String? declared in <root>.Impl.contains' type=@[FlexibleNullability] kotlin.String? origin=null
|
||||
@@ -105,7 +105,7 @@ FILE fqName:<root> fileName:/DelegationAndInheritanceFromJava.kt
|
||||
VALUE_PARAMETER name:elements index:0 type:kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun containsAll (elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>): kotlin.Boolean declared in <root>.Impl'
|
||||
CALL 'public abstract fun containsAll (elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?>): kotlin.Boolean [fake_override] declared in <root>.Foo.B' type=kotlin.Boolean origin=null
|
||||
CALL 'public abstract fun containsAll (elements: kotlin.collections.Collection<E of kotlin.collections.Set>): kotlin.Boolean declared in kotlin.collections.Set' type=kotlin.Boolean origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]' type=<root>.Foo.B origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Impl declared in <root>.Impl.containsAll' type=<root>.Impl origin=null
|
||||
elements: GET_VAR 'elements: kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?> declared in <root>.Impl.containsAll' type=kotlin.collections.Collection<@[FlexibleNullability] kotlin.String?> origin=null
|
||||
@@ -116,7 +116,7 @@ FILE fqName:<root> fileName:/DelegationAndInheritanceFromJava.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Impl
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun isEmpty (): kotlin.Boolean declared in <root>.Impl'
|
||||
CALL 'public abstract fun isEmpty (): kotlin.Boolean [fake_override] declared in <root>.Foo.B' type=kotlin.Boolean origin=null
|
||||
CALL 'public abstract fun isEmpty (): kotlin.Boolean declared in kotlin.collections.Set' type=kotlin.Boolean origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]' type=<root>.Foo.B origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Impl declared in <root>.Impl.isEmpty' type=<root>.Impl origin=null
|
||||
PROPERTY DELEGATED_MEMBER name:size visibility:public modality:OPEN [val]
|
||||
@@ -131,7 +131,7 @@ FILE fqName:<root> fileName:/DelegationAndInheritanceFromJava.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Impl
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-size> (): kotlin.Int declared in <root>.Impl'
|
||||
CALL 'public abstract fun <get-size> (): kotlin.Int [fake_override] declared in <root>.Foo.B' type=kotlin.Int origin=null
|
||||
CALL 'public abstract fun <get-size> (): kotlin.Int declared in kotlin.collections.Set' type=kotlin.Int origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]' type=<root>.Foo.B origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Impl declared in <root>.Impl.<get-size>' type=<root>.Impl origin=null
|
||||
FIELD DELEGATE name:$$delegate_0 type:<root>.Foo.B visibility:private [final]
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ FILE fqName:<root> fileName:/FakeOverrideInAnonymousWithDelegation.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.Wrapper.bar.<no name provided>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-foo> (): kotlin.String declared in <root>.Wrapper.bar.<no name provided>'
|
||||
CALL 'public open fun <get-foo> (): kotlin.String [fake_override] declared in <root>.Wrapper.dummy.<no name provided>' type=kotlin.String origin=null
|
||||
CALL 'public open fun <get-foo> (): kotlin.String declared in <root>.Bar' type=kotlin.String origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Wrapper.dummy.<no name provided> visibility:private [final]' type=<root>.Wrapper.dummy.<no name provided> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Wrapper.bar.<no name provided> declared in <root>.Wrapper.bar.<no name provided>.<get-foo>' type=<root>.Wrapper.bar.<no name provided> origin=null
|
||||
FIELD DELEGATE name:$$delegate_0 type:<root>.Wrapper.dummy.<no name provided> visibility:private [final]
|
||||
|
||||
@@ -37,7 +37,7 @@ FILE fqName:<root> fileName:/kt43342.kt
|
||||
VALUE_PARAMETER name:key index:0 type:K of <root>.ControlFlowInfo
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun get (key: K of <root>.ControlFlowInfo): V of <root>.ControlFlowInfo? [operator] declared in <root>.ControlFlowInfo'
|
||||
CALL 'public abstract fun get (key: K of kotlin.collections.Map): V of kotlin.collections.Map? [operator] declared in kotlin.collections.Map' type=V of <root>.ControlFlowInfo? origin=null
|
||||
CALL 'public abstract fun get (key: K of kotlin.collections.Map): V of kotlin.collections.Map? [operator] declared in kotlin.collections.Map' type=V of kotlin.collections.Map? origin=null
|
||||
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:map type:kotlin.collections.Map<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> visibility:private [final]' type=kotlin.collections.Map<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.ControlFlowInfo<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> declared in <root>.ControlFlowInfo.get' type=<root>.ControlFlowInfo<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> origin=null
|
||||
key: GET_VAR 'key: K of <root>.ControlFlowInfo declared in <root>.ControlFlowInfo.get' type=K of <root>.ControlFlowInfo origin=null
|
||||
@@ -60,7 +60,7 @@ FILE fqName:<root> fileName:/kt43342.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.ControlFlowInfo<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-entries> (): kotlin.collections.Set<kotlin.collections.Map.Entry<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo>> declared in <root>.ControlFlowInfo'
|
||||
CALL 'public abstract fun <get-entries> (): kotlin.collections.Set<kotlin.collections.Map.Entry<K of kotlin.collections.Map, V of kotlin.collections.Map>> declared in kotlin.collections.Map' type=kotlin.collections.Set<kotlin.collections.Map.Entry<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo>> origin=null
|
||||
CALL 'public abstract fun <get-entries> (): kotlin.collections.Set<kotlin.collections.Map.Entry<K of kotlin.collections.Map, V of kotlin.collections.Map>> declared in kotlin.collections.Map' type=kotlin.collections.Set<kotlin.collections.Map.Entry<K of kotlin.collections.Map, V of kotlin.collections.Map>> origin=null
|
||||
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:map type:kotlin.collections.Map<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> visibility:private [final]' type=kotlin.collections.Map<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.ControlFlowInfo<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> declared in <root>.ControlFlowInfo.<get-entries>' type=<root>.ControlFlowInfo<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> origin=null
|
||||
PROPERTY DELEGATED_MEMBER name:keys visibility:public modality:OPEN [val]
|
||||
@@ -73,7 +73,7 @@ FILE fqName:<root> fileName:/kt43342.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.ControlFlowInfo<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-keys> (): kotlin.collections.Set<K of <root>.ControlFlowInfo> declared in <root>.ControlFlowInfo'
|
||||
CALL 'public abstract fun <get-keys> (): kotlin.collections.Set<K of kotlin.collections.Map> declared in kotlin.collections.Map' type=kotlin.collections.Set<K of <root>.ControlFlowInfo> origin=null
|
||||
CALL 'public abstract fun <get-keys> (): kotlin.collections.Set<K of kotlin.collections.Map> declared in kotlin.collections.Map' type=kotlin.collections.Set<K of kotlin.collections.Map> origin=null
|
||||
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:map type:kotlin.collections.Map<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> visibility:private [final]' type=kotlin.collections.Map<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.ControlFlowInfo<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> declared in <root>.ControlFlowInfo.<get-keys>' type=<root>.ControlFlowInfo<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> origin=null
|
||||
PROPERTY DELEGATED_MEMBER name:size visibility:public modality:OPEN [val]
|
||||
@@ -99,7 +99,7 @@ FILE fqName:<root> fileName:/kt43342.kt
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.ControlFlowInfo<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo>
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun <get-values> (): kotlin.collections.Collection<V of <root>.ControlFlowInfo> declared in <root>.ControlFlowInfo'
|
||||
CALL 'public abstract fun <get-values> (): kotlin.collections.Collection<V of kotlin.collections.Map> declared in kotlin.collections.Map' type=kotlin.collections.Collection<V of <root>.ControlFlowInfo> origin=null
|
||||
CALL 'public abstract fun <get-values> (): kotlin.collections.Collection<V of kotlin.collections.Map> declared in kotlin.collections.Map' type=kotlin.collections.Collection<V of kotlin.collections.Map> origin=null
|
||||
$this: GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:map type:kotlin.collections.Map<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> visibility:private [final]' type=kotlin.collections.Map<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> origin=null
|
||||
receiver: GET_VAR '<this>: <root>.ControlFlowInfo<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> declared in <root>.ControlFlowInfo.<get-values>' type=<root>.ControlFlowInfo<K of <root>.ControlFlowInfo, V of <root>.ControlFlowInfo> origin=null
|
||||
PROPERTY name:map visibility:public modality:FINAL [val]
|
||||
|
||||
+1
-1
@@ -62,7 +62,7 @@ FILE fqName:<root> fileName:/nullCheckOnInterfaceDelegation.kt
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='public open fun foo (): kotlin.String declared in <root>.Delegated'
|
||||
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
|
||||
CALL 'public open fun foo (): @[FlexibleNullability] kotlin.String? declared in <root>.Derived' type=kotlin.String origin=null
|
||||
CALL 'public open fun foo (): @[FlexibleNullability] kotlin.String? declared in <root>.Derived' type=@[FlexibleNullability] kotlin.String? origin=null
|
||||
$this: GET_FIELD 'FIELD DELEGATE name:$$delegate_0 type:<root>.Derived visibility:private [final]' type=<root>.Derived origin=null
|
||||
receiver: GET_VAR '<this>: <root>.Delegated declared in <root>.Delegated.foo' type=<root>.Delegated origin=null
|
||||
FIELD DELEGATE name:$$delegate_0 type:<root>.Derived visibility:private [final]
|
||||
|
||||
+18
@@ -15401,6 +15401,18 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType2.kt")
|
||||
public void testDelegationToIntersectionType2() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToMap.kt")
|
||||
public void testDelegationToMap() throws Exception {
|
||||
@@ -15485,6 +15497,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
runTest("compiler/testData/codegen/box/delegation/simple.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+18
@@ -15731,6 +15731,18 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType2.kt")
|
||||
public void testDelegationToIntersectionType2() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToMap.kt")
|
||||
public void testDelegationToMap() throws Exception {
|
||||
@@ -15827,6 +15839,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
runTest("compiler/testData/codegen/box/delegation/simple.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+18
@@ -15731,6 +15731,18 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType2.kt")
|
||||
public void testDelegationToIntersectionType2() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType2.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToMap.kt")
|
||||
public void testDelegationToMap() throws Exception {
|
||||
@@ -15827,6 +15839,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack
|
||||
runTest("compiler/testData/codegen/box/delegation/simple.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+15
@@ -12630,6 +12630,16 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("delegationToIntersectionType2.kt")
|
||||
public void testDelegationToIntersectionType2() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType2.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("delegationToMap.kt")
|
||||
public void testDelegationToMap() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToMap.kt");
|
||||
@@ -12695,6 +12705,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
runTest("compiler/testData/codegen/box/delegation/simple.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/viaTypeAlias.kt");
|
||||
|
||||
+12
@@ -11779,6 +11779,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationWithPrivateConstructor.kt")
|
||||
public void testDelegationWithPrivateConstructor() throws Exception {
|
||||
@@ -11815,6 +11821,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
|
||||
runTest("compiler/testData/codegen/box/delegation/kt8154.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+12
@@ -11875,6 +11875,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationWithPrivateConstructor.kt")
|
||||
public void testDelegationWithPrivateConstructor() throws Exception {
|
||||
@@ -11911,6 +11917,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest {
|
||||
runTest("compiler/testData/codegen/box/delegation/kt8154.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+12
@@ -11875,6 +11875,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationWithPrivateConstructor.kt")
|
||||
public void testDelegationWithPrivateConstructor() throws Exception {
|
||||
@@ -11911,6 +11917,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
|
||||
runTest("compiler/testData/codegen/box/delegation/kt8154.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+12
@@ -11875,6 +11875,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationWithPrivateConstructor.kt")
|
||||
public void testDelegationWithPrivateConstructor() throws Exception {
|
||||
@@ -11911,6 +11917,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes
|
||||
runTest("compiler/testData/codegen/box/delegation/kt8154.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+12
@@ -13164,6 +13164,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationWithPrivateConstructor.kt")
|
||||
public void testDelegationWithPrivateConstructor() throws Exception {
|
||||
@@ -13200,6 +13206,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe
|
||||
runTest("compiler/testData/codegen/box/delegation/kt8154.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+12
@@ -13464,6 +13464,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationWithPrivateConstructor.kt")
|
||||
public void testDelegationWithPrivateConstructor() throws Exception {
|
||||
@@ -13500,6 +13506,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB
|
||||
runTest("compiler/testData/codegen/box/delegation/kt8154.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+12
@@ -13014,6 +13014,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationWithPrivateConstructor.kt")
|
||||
public void testDelegationWithPrivateConstructor() throws Exception {
|
||||
@@ -13050,6 +13056,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest
|
||||
runTest("compiler/testData/codegen/box/delegation/kt8154.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
+12
@@ -13314,6 +13314,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("delegationWithPrivateConstructor.kt")
|
||||
public void testDelegationWithPrivateConstructor() throws Exception {
|
||||
@@ -13350,6 +13356,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT
|
||||
runTest("compiler/testData/codegen/box/delegation/kt8154.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@Test
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
|
||||
Generated
+10
@@ -10515,6 +10515,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationDifferentModule.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("delegationToIntersectionType.kt")
|
||||
public void testDelegationToIntersectionType() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationToIntersectionType.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("delegationWithPrivateConstructor.kt")
|
||||
public void testDelegationWithPrivateConstructor() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/delegationWithPrivateConstructor.kt");
|
||||
@@ -10545,6 +10550,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest
|
||||
runTest("compiler/testData/codegen/box/delegation/kt8154.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("smartCastedDelegation.kt")
|
||||
public void testSmartCastedDelegation() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/smartCastedDelegation.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("viaTypeAlias.kt")
|
||||
public void testViaTypeAlias() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/delegation/viaTypeAlias.kt");
|
||||
|
||||
Reference in New Issue
Block a user