From 0924216ed2884f917541e0b53a27868f225e0865 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 23 Aug 2021 16:29:52 +0300 Subject: [PATCH] [FIR] Distinguish stub types for builder inference and for subtyping ^KT-48110 Fixed --- .../problems/KtFirCompositeScope.fir.txt | 2 +- ...irOldFrontendDiagnosticsTestGenerated.java | 6 + ...DiagnosticsWithLightTreeTestGenerated.java | 6 + .../checkers/FirUpperBoundViolatedHelpers.kt | 2 +- .../jetbrains/kotlin/fir/types/ConeTypes.kt | 5 +- .../kotlin/fir/types/TypeRenderer.kt | 3 +- .../inference/FirBuilderInferenceSession.kt | 2 +- .../kotlin/fir/types/ConeInferenceContext.kt | 9 +- .../kotlin/fir/types/ConeTypeContext.kt | 6 +- .../jetbrains/kotlin/fir/types/TypeUtils.kt | 3 +- .../builderInference/commonSuperType.kt | 1 - .../commonSuperTypeCovariant.kt | 1 - .../commonSuperTypeNullable.kt | 1 - .../stubTypes/commonSuperType.fir.fail | 267 ---------------- .../stubTypes/commonSuperType.fir.kt | 4 +- .../commonSuperTypeContravariant.fir.kt | 34 +-- .../commonSuperTypeCovariant.fir.fail | 287 ------------------ .../stubTypes/commonSuperTypeCovariant.fir.kt | 5 +- .../stubTypes/commonSuperTypeCovariant.kt | 1 - .../commonSuperTypeNullable.fir.fail | 253 --------------- .../stubTypes/commonSuperTypeNullable.fir.kt | 4 +- .../tests/inference/stubTypeForSubtyping.kt | 16 + .../tests/inference/stubTypeForSubtyping.txt | 3 + .../test/runners/DiagnosticTestGenerated.java | 6 + ...CompilerTestFE10TestdataTestGenerated.java | 6 + 25 files changed, 85 insertions(+), 848 deletions(-) delete mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperType.fir.fail delete mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.fir.fail delete mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeNullable.fir.fail create mode 100644 compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.kt create mode 100644 compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.txt diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/KtFirCompositeScope.fir.txt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/KtFirCompositeScope.fir.txt index 17edd1a0953..7b4e9decf37 100644 --- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/KtFirCompositeScope.fir.txt +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/KtFirCompositeScope.fir.txt @@ -20,7 +20,7 @@ FILE: KtFirCompositeScope.kt public final fun getAllNames(): R|kotlin/collections/Set| { ^getAllNames R|/withValidityAssertion||>( = withValidityAssertion@fun (): R|kotlin/collections/Set| { ^ R|/buildSet|( = buildSet@fun R|kotlin/collections/MutableSet|.(): R|kotlin/Unit| { - this@R|/KtFirCompositeScope|.R|/KtFirCompositeScope.subScopes|.R|kotlin/collections/flatMapTo||>(this@R|special/anonymous|, = flatMapTo@fun (it: R|KtScope|): R|kotlin/collections/Iterable| { + this@R|/KtFirCompositeScope|.R|/KtFirCompositeScope.subScopes|.R|kotlin/collections/flatMapTo||>(this@R|special/anonymous|, = flatMapTo@fun (it: R|KtScope|): R|kotlin/collections/Iterable| { ^ R|/it|.R|/KtScope.getAllNames|() } ) diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index 6f849154cd2..60fb4fc5ccf 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -13269,6 +13269,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti runTest("compiler/testData/diagnostics/tests/inference/starApproximationFromDifferentTypeParameter.kt"); } + @Test + @TestMetadata("stubTypeForSubtyping.kt") + public void testStubTypeForSubtyping() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.kt"); + } + @Test @TestMetadata("tooEagerSmartcast.kt") public void testTooEagerSmartcast() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java index dab4689f68d..c682483cc45 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java @@ -13269,6 +13269,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac runTest("compiler/testData/diagnostics/tests/inference/starApproximationFromDifferentTypeParameter.kt"); } + @Test + @TestMetadata("stubTypeForSubtyping.kt") + public void testStubTypeForSubtyping() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.kt"); + } + @Test @TestMetadata("tooEagerSmartcast.kt") public void testTooEagerSmartcast() throws Exception { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirUpperBoundViolatedHelpers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirUpperBoundViolatedHelpers.kt index 548c32dde32..538a5c99ca3 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirUpperBoundViolatedHelpers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirUpperBoundViolatedHelpers.kt @@ -85,7 +85,7 @@ fun checkUpperBoundViolated( substitution[typeParameterSymbol] = typeArgumentType } else { substitution[typeParameterSymbol] = - ConeStubType(ConeTypeVariable("", typeParameterSymbol.toLookupTag()), ConeNullability.NOT_NULL) + ConeStubTypeForTypeVariableInSubtyping(ConeTypeVariable("", typeParameterSymbol.toLookupTag()), ConeNullability.NOT_NULL) } } } diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeTypes.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeTypes.kt index 1e73b610464..76f6f7821b9 100644 --- a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeTypes.kt +++ b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/ConeTypes.kt @@ -281,7 +281,7 @@ fun ConeIntersectionType.mapTypes(func: (ConeKotlinType) -> ConeKotlinType): Con return ConeIntersectionType(intersectedTypes.map(func), alternativeType?.let(func)) } -class ConeStubType(val variable: ConeTypeVariable, override val nullability: ConeNullability) : StubTypeMarker, ConeSimpleKotlinType() { +sealed class ConeStubType(val variable: ConeTypeVariable, override val nullability: ConeNullability) : StubTypeMarker, ConeSimpleKotlinType() { override val typeArguments: Array get() = emptyArray() @@ -308,6 +308,9 @@ class ConeStubType(val variable: ConeTypeVariable, override val nullability: Con } } +class ConeStubTypeForBuilderInference(variable: ConeTypeVariable, nullability: ConeNullability) : ConeStubType(variable, nullability) +class ConeStubTypeForTypeVariableInSubtyping(variable: ConeTypeVariable, nullability: ConeNullability) : ConeStubType(variable, nullability) + open class ConeTypeVariable(name: String, originalTypeParameter: TypeParameterMarker? = null) : TypeVariableMarker { val typeConstructor = ConeTypeVariableTypeConstructor(name, originalTypeParameter) val defaultType = ConeTypeVariableType(ConeNullability.NOT_NULL, typeConstructor) diff --git a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/TypeRenderer.kt b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/TypeRenderer.kt index 8f90cd8439e..ffe59acb079 100644 --- a/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/TypeRenderer.kt +++ b/compiler/fir/cones/src/org/jetbrains/kotlin/fir/types/TypeRenderer.kt @@ -46,7 +46,8 @@ fun ConeKotlinType.render(): String { postfix = ")" ) } - is ConeStubType -> "${renderAttributes()}Stub: $variable" + is ConeStubTypeForBuilderInference -> "${renderAttributes()}Stub (builder inference): $variable" + is ConeStubType -> "${renderAttributes()}Stub (subtyping): $variable" is ConeIntegerLiteralType -> "${renderAttributes()}ILT: $value" } + nullabilitySuffix } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt index 29324697b17..4e1872390f5 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt @@ -67,7 +67,7 @@ class FirBuilderInferenceSession( private fun ConeKotlinType.containsStubType(): Boolean { return this.contains { - it is ConeStubType + it is ConeStubTypeForBuilderInference } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeInferenceContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeInferenceContext.kt index bd8f5da797f..6081976e0d6 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeInferenceContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeInferenceContext.kt @@ -262,12 +262,13 @@ interface ConeInferenceContext : TypeSystemInferenceExtensionContext, ConeTypeCo override fun createStubTypeForBuilderInference(typeVariable: TypeVariableMarker): StubTypeMarker { require(typeVariable is ConeTypeVariable) { "$typeVariable should subtype of ${ConeTypeVariable::class.qualifiedName}" } - return ConeStubType(typeVariable, ConeNullability.create(typeVariable.defaultType().isMarkedNullable())) + return ConeStubTypeForBuilderInference(typeVariable, ConeNullability.create(typeVariable.defaultType().isMarkedNullable())) } - // TODO - override fun createStubTypeForTypeVariablesInSubtyping(typeVariable: TypeVariableMarker) = - createStubTypeForBuilderInference(typeVariable) + override fun createStubTypeForTypeVariablesInSubtyping(typeVariable: TypeVariableMarker): StubTypeMarker{ + require(typeVariable is ConeTypeVariable) { "$typeVariable should subtype of ${ConeTypeVariable::class.qualifiedName}" } + return ConeStubTypeForTypeVariableInSubtyping(typeVariable, ConeNullability.create(typeVariable.defaultType().isMarkedNullable())) + } override fun KotlinTypeMarker.removeAnnotations(): KotlinTypeMarker { require(this is ConeKotlinType) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt index e5f42be24a3..9ba30c83d5c 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt @@ -406,15 +406,15 @@ interface ConeTypeContext : TypeSystemContext, TypeSystemOptimizationContext, Ty } override fun SimpleTypeMarker.isStubType(): Boolean { - return this is ConeStubType // TODO: distinguish stub types for builder inference and for subtyping + return this is ConeStubType } override fun SimpleTypeMarker.isStubTypeForVariableInSubtyping(): Boolean { - return this is ConeStubType // TODO: distinguish stub types for builder inference and for subtyping + return this is ConeStubTypeForTypeVariableInSubtyping } override fun SimpleTypeMarker.isStubTypeForBuilderInference(): Boolean { - return this is ConeStubType // TODO: distinguish stub types for builder inference and for subtyping + return this is ConeStubTypeForBuilderInference } override fun intersectTypes(types: List): SimpleTypeMarker { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt index 88958390b2c..5ee94cc3c8b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt @@ -156,7 +156,8 @@ fun T.withNullability( ConeNullability.UNKNOWN -> this // TODO: is that correct? ConeNullability.NOT_NULL -> this } - is ConeStubType -> ConeStubType(variable, nullability) + is ConeStubTypeForBuilderInference -> ConeStubTypeForBuilderInference(variable, nullability) + is ConeStubTypeForTypeVariableInSubtyping -> ConeStubTypeForTypeVariableInSubtyping(variable, nullability) is ConeDefinitelyNotNullType -> when (nullability) { ConeNullability.NOT_NULL -> this ConeNullability.NULLABLE -> original.withNullability(nullability, typeContext) diff --git a/compiler/testData/codegen/box/inference/builderInference/commonSuperType.kt b/compiler/testData/codegen/box/inference/builderInference/commonSuperType.kt index 642f1e3e905..fbfcc377358 100644 --- a/compiler/testData/codegen/box/inference/builderInference/commonSuperType.kt +++ b/compiler/testData/codegen/box/inference/builderInference/commonSuperType.kt @@ -2,7 +2,6 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -DEPRECATION -EXPERIMENTAL_IS_NOT_ENABLED -UNUSED_VARIABLE // WITH_RUNTIME // TARGET_BACKEND: JVM -// IGNORE_BACKEND_FIR: JVM_IR // FILE: Test.java diff --git a/compiler/testData/codegen/box/inference/builderInference/commonSuperTypeCovariant.kt b/compiler/testData/codegen/box/inference/builderInference/commonSuperTypeCovariant.kt index 69845cbed84..412359614d0 100644 --- a/compiler/testData/codegen/box/inference/builderInference/commonSuperTypeCovariant.kt +++ b/compiler/testData/codegen/box/inference/builderInference/commonSuperTypeCovariant.kt @@ -2,7 +2,6 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -DEPRECATION -EXPERIMENTAL_IS_NOT_ENABLED -UNUSED_VARIABLE // WITH_RUNTIME // TARGET_BACKEND: JVM -// IGNORE_BACKEND_FIR: JVM_IR // DONT_TARGET_EXACT_BACKEND: WASM // FILE: Test.java diff --git a/compiler/testData/codegen/box/inference/builderInference/commonSuperTypeNullable.kt b/compiler/testData/codegen/box/inference/builderInference/commonSuperTypeNullable.kt index 85f4850dce7..40b32453871 100644 --- a/compiler/testData/codegen/box/inference/builderInference/commonSuperTypeNullable.kt +++ b/compiler/testData/codegen/box/inference/builderInference/commonSuperTypeNullable.kt @@ -2,7 +2,6 @@ // !DIAGNOSTICS: -UNUSED_PARAMETER -DEPRECATION -EXPERIMENTAL_IS_NOT_ENABLED -UNUSED_VARIABLE // WITH_RUNTIME // TARGET_BACKEND: JVM -// IGNORE_BACKEND_FIR: JVM_IR // DONT_TARGET_EXACT_BACKEND: WASM // FILE: Test.java diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperType.fir.fail b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperType.fir.fail deleted file mode 100644 index 4753a9b2ba9..00000000000 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperType.fir.fail +++ /dev/null @@ -1,267 +0,0 @@ -While resolving call R?C|/build|( = build@fun R|TestInterface|.(): R|kotlin/Unit| { - this@R|special/anonymous|.R|SubstitutionOverride|(String(1)) - Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()) - Q|Test|.R|/Test.foo|, Inv?>|>(this@R|special/anonymous|.R|SubstitutionOverride|>|()) - R|/id|(this@R|special/anonymous|.R|SubstitutionOverride|()) - R|/select|(vararg(this@R|special/anonymous|.R|SubstitutionOverride|(), this@R|special/anonymous|.R|SubstitutionOverride|())) - R|/select||>(vararg(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()))) - R?C|/select|(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), this@R|special/anonymous|.R|SubstitutionOverride|()) - select#(getInv#(), getInv#()) - select#(Test#.foo#(getInv#()), Test#.foo#(getInv#())) - select#(Test#.foo#(getInv#()), getInv#()) - select#(getInv#(), Test#.foo#(getInv#())) - select#(id#(get#()), id#(get#())) - build2#( = build2@fun .(): { - emit#(IntegerLiteral(1)) - select#(this@build#.get#(), get#()) - select#(Test#.foo#(this@build#.get#()), Test#.foo#(get#())) - select#(this@build#.getInv#(), getInv#()) - select#(Test#.foo#(this@build#.getInv#()), Test#.foo#(getInv#())) - select#(Test#.foo#(this@build#.getInv#()), getInv#()) - select#(id#(this@build#.get#()), id#(get#())) - String() - } - ) - String() -} -) -java.lang.RuntimeException: While resolving call R?C|/build|( = build@fun R|TestInterface|.(): R|kotlin/Unit| { - this@R|special/anonymous|.R|SubstitutionOverride|(String(1)) - Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()) - Q|Test|.R|/Test.foo|, Inv?>|>(this@R|special/anonymous|.R|SubstitutionOverride|>|()) - R|/id|(this@R|special/anonymous|.R|SubstitutionOverride|()) - R|/select|(vararg(this@R|special/anonymous|.R|SubstitutionOverride|(), this@R|special/anonymous|.R|SubstitutionOverride|())) - R|/select||>(vararg(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()))) - R?C|/select|(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), this@R|special/anonymous|.R|SubstitutionOverride|()) - select#(getInv#(), getInv#()) - select#(Test#.foo#(getInv#()), Test#.foo#(getInv#())) - select#(Test#.foo#(getInv#()), getInv#()) - select#(getInv#(), Test#.foo#(getInv#())) - select#(id#(get#()), id#(get#())) - build2#( = build2@fun .(): { - emit#(IntegerLiteral(1)) - select#(this@build#.get#(), get#()) - select#(Test#.foo#(this@build#.get#()), Test#.foo#(get#())) - select#(this@build#.getInv#(), getInv#()) - select#(Test#.foo#(this@build#.getInv#()), Test#.foo#(getInv#())) - select#(Test#.foo#(this@build#.getInv#()), getInv#()) - select#(id#(this@build#.get#()), id#(get#())) - String() - } - ) - String() -} -) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:298) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:107) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirFunctionCall.transform(FirFunctionCall.kt:37) - at org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl.transformInitializer(FirPropertyImpl.kt:104) - at org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl.transformInitializer(FirPropertyImpl.kt:34) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformLocalVariable(FirDeclarationsResolveTransformer.kt:276) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformProperty(FirDeclarationsResolveTransformer.kt:119) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformProperty(FirBodyResolveTransformer.kt:259) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformProperty(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirProperty.transform(FirProperty.kt:58) - at org.jetbrains.kotlin.fir.expressions.FirExpressionUtilKt.transformStatementsIndexed(FirExpressionUtil.kt:134) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlockInCurrentScope$resolve(FirExpressionsResolveTransformer.kt:323) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlock(FirExpressionsResolveTransformer.kt:314) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:122) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirBlock.transform(FirBlock.kt:28) - at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.transformBody(FirSimpleFunctionImpl.kt:99) - at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.transformChildren(FirSimpleFunctionImpl.kt:75) - at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.transformChildren(FirSimpleFunctionImpl.kt:33) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:60) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:244) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformDeclarationContent(FirDeclarationsResolveTransformer.kt:69) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFunction(FirDeclarationsResolveTransformer.kt:527) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFunctionWithGivenSignature(FirDeclarationsResolveTransformer.kt:490) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.access$transformFunctionWithGivenSignature(FirDeclarationsResolveTransformer.kt:41) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformSimpleFunction$1$1.invoke(FirDeclarationsResolveTransformer.kt:479) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformSimpleFunction$1$1.invoke(FirDeclarationsResolveTransformer.kt:477) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.forFunctionBody(BodyResolveContext.kt:896) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformSimpleFunction(FirDeclarationsResolveTransformer.kt:477) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformSimpleFunction(FirBodyResolveTransformer.kt:281) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformSimpleFunction(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirSimpleFunction.transform(FirSimpleFunction.kt:52) - at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformInplace(FirTransformerUtil.kt:19) - at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformDeclarations(FirFileImpl.kt:61) - at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:46) - at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:25) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:60) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:244) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFile(FirBodyResolveTransformer.kt:54) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFile(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:37) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformerAdapter.transformFile(FirBodyResolveTransformerAdapters.kt:37) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformerAdapter.transformFile(FirBodyResolveTransformerAdapters.kt:23) - at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:37) - at org.jetbrains.kotlin.fir.resolve.transformers.FirTransformerBasedResolveProcessor.processFile(FirResolveProcessor.kt:29) - at org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveProcessor.process(FirTotalResolveProcessor.kt:23) - at org.jetbrains.kotlin.fir.analysis.FirAnalyzerFacade.runResolution(FirAnalyzerFacade.kt:69) - at org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade.analyze(FirFrontendFacade.kt:75) - at org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade.analyze(FirFrontendFacade.kt:26) - at org.jetbrains.kotlin.test.model.FrontendFacade.transform(Facades.kt:36) - at org.jetbrains.kotlin.test.model.FrontendFacade.transform(Facades.kt:25) - at org.jetbrains.kotlin.test.TestRunner.processModule(TestRunner.kt:125) - at org.jetbrains.kotlin.test.TestRunner.runTestImpl(TestRunner.kt:66) - at org.jetbrains.kotlin.test.TestRunner.runTest(TestRunner.kt:20) - at org.jetbrains.kotlin.test.TestRunner.runTest$default(TestRunner.kt:18) - at org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest.runTest(AbstractKotlinCompilerTest.kt:80) - at org.jetbrains.kotlin.test.runners.FirOldFrontendDiagnosticsTestGenerated$Tests$Inference$BuilderInference$StubTypes.testCommonSuperType(FirOldFrontendDiagnosticsTestGenerated.java:12699) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:498) - at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688) - at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) - at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) - at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) - at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:210) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:206) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:129) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) - at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) - at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) - at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) - at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) -Caused by: java.lang.RuntimeException: While resolving call R?C|/select|(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), this@R|special/anonymous|.R|SubstitutionOverride|()) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:298) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:107) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirFunctionCall.transform(FirFunctionCall.kt:37) - at org.jetbrains.kotlin.fir.expressions.FirExpressionUtilKt.transformStatementsIndexed(FirExpressionUtil.kt:134) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlockInCurrentScope$resolve(FirExpressionsResolveTransformer.kt:323) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlock(FirExpressionsResolveTransformer.kt:314) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:122) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirBlock.transform(FirBlock.kt:28) - at org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl.transformBody(FirAnonymousFunctionImpl.kt:102) - at org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl.transformChildren(FirAnonymousFunctionImpl.kt:74) - at org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl.transformChildren(FirAnonymousFunctionImpl.kt:31) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:60) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:244) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformDeclarationContent(FirDeclarationsResolveTransformer.kt:69) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFunction(FirDeclarationsResolveTransformer.kt:527) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformAnonymousFunctionWithLambdaResolution(FirDeclarationsResolveTransformer.kt:430) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.access$transformAnonymousFunctionWithLambdaResolution(FirDeclarationsResolveTransformer.kt:41) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformAnonymousFunction$3.invoke(FirDeclarationsResolveTransformer.kt:638) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformAnonymousFunction$3.invoke(FirDeclarationsResolveTransformer.kt:636) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.withAnonymousFunction(BodyResolveContext.kt:946) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformAnonymousFunction(FirDeclarationsResolveTransformer.kt:636) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformAnonymousFunction(FirBodyResolveTransformer.kt:306) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformAnonymousFunction(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction.transform(FirAnonymousFunction.kt:50) - at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformSingle(FirTransformerUtil.kt:12) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter$LambdaAnalyzerImpl.analyzeAndGetLambdaReturnArguments(FirCallCompleter.kt:239) - at org.jetbrains.kotlin.fir.resolve.inference.PostponedArgumentsAnalyzer.analyzeLambda(PostponedArgumentsAnalyzer.kt:131) - at org.jetbrains.kotlin.fir.resolve.inference.PostponedArgumentsAnalyzer.analyze(PostponedArgumentsAnalyzer.kt:59) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter$runCompletionForCall$1.invoke(FirCallCompleter.kt:125) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter$runCompletionForCall$1.invoke(FirCallCompleter.kt:124) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.analyzeArgumentWithFixedParameterTypes(ConstraintSystemCompleter.kt:131) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete(ConstraintSystemCompleter.kt:48) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete$default(ConstraintSystemCompleter.kt:31) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.runCompletionForCall(FirCallCompleter.kt:118) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.completeCall(FirCallCompleter.kt:80) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:296) - ... 154 more -Caused by: java.lang.AssertionError: There should be at least one non-stub type to compute common supertype but there are: [Stub: TypeVariable(R), Stub: TypeVariable(R)] - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperTypeForNotNullTypes(NewCommonSuperTypeCalculator.kt:174) - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperTypeForSimpleTypes(NewCommonSuperTypeCalculator.kt:93) - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperType(NewCommonSuperTypeCalculator.kt:53) - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperType(NewCommonSuperTypeCalculator.kt:18) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.computeCommonSuperType(ResultTypeResolver.kt:175) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.findSubType(ResultTypeResolver.kt:135) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.findResultTypeOrNull(ResultTypeResolver.kt:42) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.findResultType(ResultTypeResolver.kt:27) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.fixVariable(ConstraintSystemCompleter.kt:322) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.fixVariablesOrReportNotEnoughInformation(ConstraintSystemCompleter.kt:219) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete(ConstraintSystemCompleter.kt:108) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete$default(ConstraintSystemCompleter.kt:31) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.runCompletionForCall(FirCallCompleter.kt:118) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.completeCall(FirCallCompleter.kt:80) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:296) - ... 191 more - diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperType.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperType.fir.kt index 26a13277993..6ec10480938 100644 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperType.fir.kt +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperType.fir.kt @@ -12,10 +12,10 @@ class Test { import kotlin.experimental.ExperimentalTypeInference @UseExperimental(ExperimentalTypeInference::class) -fun build(@BuilderInference block: TestInterface.() -> Unit): R = TODO() +fun build(@BuilderInference block: TestInterface.() -> Unit): R = TODO() @UseExperimental(ExperimentalTypeInference::class) -fun build2(@BuilderInference block: TestInterface.() -> Unit): R = TODO() +fun build2(@BuilderInference block: TestInterface.() -> Unit): R = TODO() class Inv diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.fir.kt index 429f713eb24..aba590a3a64 100644 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.fir.kt +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeContravariant.fir.kt @@ -34,16 +34,16 @@ fun select4(x: E?, y: In): E = x!! fun test() { val ret = build { emit("1") - select1(get(), getIn()) - select1(get(), Test.foo(getIn())) - select1(Test.foo(get()), Test.foo(getIn())) - select1(Test.foo(get()), getIn()) - select4(get(), getIn()) - select4(get(), Test.foo(getIn())) - select4(Test.foo(get()), Test.foo(getIn())) - select4(Test.foo(get()), getIn()) + select1(get(), getIn()) + select1(get(), Test.foo(getIn())) + select1(Test.foo(get()), Test.foo(getIn())) + select1(Test.foo(get()), getIn()) + select4(get(), getIn()) + select4(get(), Test.foo(getIn())) + select4(Test.foo(get()), Test.foo(getIn())) + select4(Test.foo(get()), getIn()) - select4(id(Test.foo(get())), getIn()) + select4(id(Test.foo(get())), getIn()) build2 { emit(1) @@ -71,14 +71,14 @@ fun test() { } val ret2 = build { emit(if (true) "" else null) - select2(get(), getIn()) - select2(get(), Test.foo(getIn())) - select2(Test.foo(get()), Test.foo(getIn())) - select2(Test.foo(get()), getIn()) - select3(get(), getIn()) - select3(get(), Test.foo(getIn())) - select3(Test.foo(get()), Test.foo(getIn())) - select3(Test.foo(get()), getIn()) + select2(get(), getIn()) + select2(get(), Test.foo(getIn())) + select2(Test.foo(get()), Test.foo(getIn())) + select2(Test.foo(get()), getIn()) + select3(get(), getIn()) + select3(get(), Test.foo(getIn())) + select3(Test.foo(get()), Test.foo(getIn())) + select3(Test.foo(get()), getIn()) "" } } diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.fir.fail b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.fir.fail deleted file mode 100644 index 6cd6303c951..00000000000 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.fir.fail +++ /dev/null @@ -1,287 +0,0 @@ - -While resolving call R?C|/build|( = build@fun R|TestInterface|.(): R|kotlin/Unit| { - this@R|special/anonymous|.R|SubstitutionOverride|(String(1)) - R|/select1|(this@R|special/anonymous|.R|SubstitutionOverride|(), this@R|special/anonymous|.R|SubstitutionOverride|>|()) - R|/select1|(this@R|special/anonymous|.R|SubstitutionOverride|(), Q|Test|.R|/Test.foo|, Out?>|>(this@R|special/anonymous|.R|SubstitutionOverride|>|())) - R?C|/select1|(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), Q|Test|.R|/Test.foo|, Out?>|>(this@R|special/anonymous|.R|SubstitutionOverride|>|())) - select1#(Test#.foo#(get#()), getOut#()) - select2#(get#(), getOut#()) - select2#(get#(), Test#.foo#(getOut#())) - select2#(Test#.foo#(get#()), Test#.foo#(getOut#())) - select2#(Test#.foo#(get#()), getOut#()) - select3#(get#(), getOut#()) - select3#(get#(), Test#.foo#(getOut#())) - select3#(Test#.foo#(get#()), Test#.foo#(getOut#())) - select3#(Test#.foo#(get#()), getOut#()) - select4#(get#(), getOut#()) - select4#(get#(), Test#.foo#(getOut#())) - select4#(Test#.foo#(get#()), Test#.foo#(getOut#())) - select4#(Test#.foo#(get#()), getOut#()) - select4#(id#(Test#.foo#(get#())), getOut#()) - build2#( = build2@fun .(): { - emit#(IntegerLiteral(1)) - select1#(this@build#.get#(), getOut#()) - select1#(get#(), Test#.foo#(this@build#.getOut#())) - select1#(Test#.foo#(this@build#.get#()), Test#.foo#(getOut#())) - select1#(Test#.foo#(get#()), this@build#.getOut#()) - select2#(this@build#.get#(), getOut#()) - select2#(get#(), Test#.foo#(this@build#.getOut#())) - select2#(Test#.foo#(this@build#.get#()), Test#.foo#(getOut#())) - select2#(Test#.foo#(get#()), this@build#.getOut#()) - select3#(this@build#.get#(), getOut#()) - select3#(get#(), Test#.foo#(this@build#.getOut#())) - select3#(Test#.foo#(this@build#.get#()), Test#.foo#(getOut#())) - select3#(Test#.foo#(get#()), this@build#.getOut#()) - select4#(this@build#.get#(), getOut#()) - select4#(get#(), Test#.foo#(this@build#.getOut#())) - select4#(Test#.foo#(this@build#.get#()), Test#.foo#(getOut#())) - select4#(Test#.foo#(get#()), this@build#.getOut#()) - select4#(id#(Test#.foo#(this@build#.get#())), getOut#()) - String() - } - ) - String() -} -) -java.lang.RuntimeException: While resolving call R?C|/build|( = build@fun R|TestInterface|.(): R|kotlin/Unit| { - this@R|special/anonymous|.R|SubstitutionOverride|(String(1)) - R|/select1|(this@R|special/anonymous|.R|SubstitutionOverride|(), this@R|special/anonymous|.R|SubstitutionOverride|>|()) - R|/select1|(this@R|special/anonymous|.R|SubstitutionOverride|(), Q|Test|.R|/Test.foo|, Out?>|>(this@R|special/anonymous|.R|SubstitutionOverride|>|())) - R?C|/select1|(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), Q|Test|.R|/Test.foo|, Out?>|>(this@R|special/anonymous|.R|SubstitutionOverride|>|())) - select1#(Test#.foo#(get#()), getOut#()) - select2#(get#(), getOut#()) - select2#(get#(), Test#.foo#(getOut#())) - select2#(Test#.foo#(get#()), Test#.foo#(getOut#())) - select2#(Test#.foo#(get#()), getOut#()) - select3#(get#(), getOut#()) - select3#(get#(), Test#.foo#(getOut#())) - select3#(Test#.foo#(get#()), Test#.foo#(getOut#())) - select3#(Test#.foo#(get#()), getOut#()) - select4#(get#(), getOut#()) - select4#(get#(), Test#.foo#(getOut#())) - select4#(Test#.foo#(get#()), Test#.foo#(getOut#())) - select4#(Test#.foo#(get#()), getOut#()) - select4#(id#(Test#.foo#(get#())), getOut#()) - build2#( = build2@fun .(): { - emit#(IntegerLiteral(1)) - select1#(this@build#.get#(), getOut#()) - select1#(get#(), Test#.foo#(this@build#.getOut#())) - select1#(Test#.foo#(this@build#.get#()), Test#.foo#(getOut#())) - select1#(Test#.foo#(get#()), this@build#.getOut#()) - select2#(this@build#.get#(), getOut#()) - select2#(get#(), Test#.foo#(this@build#.getOut#())) - select2#(Test#.foo#(this@build#.get#()), Test#.foo#(getOut#())) - select2#(Test#.foo#(get#()), this@build#.getOut#()) - select3#(this@build#.get#(), getOut#()) - select3#(get#(), Test#.foo#(this@build#.getOut#())) - select3#(Test#.foo#(this@build#.get#()), Test#.foo#(getOut#())) - select3#(Test#.foo#(get#()), this@build#.getOut#()) - select4#(this@build#.get#(), getOut#()) - select4#(get#(), Test#.foo#(this@build#.getOut#())) - select4#(Test#.foo#(this@build#.get#()), Test#.foo#(getOut#())) - select4#(Test#.foo#(get#()), this@build#.getOut#()) - select4#(id#(Test#.foo#(this@build#.get#())), getOut#()) - String() - } - ) - String() -} -) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:298) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:107) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirFunctionCall.transform(FirFunctionCall.kt:37) - at org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl.transformInitializer(FirPropertyImpl.kt:104) - at org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl.transformInitializer(FirPropertyImpl.kt:34) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformLocalVariable(FirDeclarationsResolveTransformer.kt:276) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformProperty(FirDeclarationsResolveTransformer.kt:119) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformProperty(FirBodyResolveTransformer.kt:259) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformProperty(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirProperty.transform(FirProperty.kt:58) - at org.jetbrains.kotlin.fir.expressions.FirExpressionUtilKt.transformStatementsIndexed(FirExpressionUtil.kt:134) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlockInCurrentScope$resolve(FirExpressionsResolveTransformer.kt:323) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlock(FirExpressionsResolveTransformer.kt:314) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:122) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirBlock.transform(FirBlock.kt:28) - at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.transformBody(FirSimpleFunctionImpl.kt:99) - at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.transformChildren(FirSimpleFunctionImpl.kt:75) - at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.transformChildren(FirSimpleFunctionImpl.kt:33) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:60) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:244) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformDeclarationContent(FirDeclarationsResolveTransformer.kt:69) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFunction(FirDeclarationsResolveTransformer.kt:527) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFunctionWithGivenSignature(FirDeclarationsResolveTransformer.kt:490) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.access$transformFunctionWithGivenSignature(FirDeclarationsResolveTransformer.kt:41) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformSimpleFunction$1$1.invoke(FirDeclarationsResolveTransformer.kt:479) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformSimpleFunction$1$1.invoke(FirDeclarationsResolveTransformer.kt:477) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.forFunctionBody(BodyResolveContext.kt:896) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformSimpleFunction(FirDeclarationsResolveTransformer.kt:477) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformSimpleFunction(FirBodyResolveTransformer.kt:281) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformSimpleFunction(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirSimpleFunction.transform(FirSimpleFunction.kt:52) - at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformInplace(FirTransformerUtil.kt:19) - at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformDeclarations(FirFileImpl.kt:61) - at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:46) - at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:25) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:60) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:244) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFile(FirBodyResolveTransformer.kt:54) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFile(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:37) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformerAdapter.transformFile(FirBodyResolveTransformerAdapters.kt:37) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformerAdapter.transformFile(FirBodyResolveTransformerAdapters.kt:23) - at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:37) - at org.jetbrains.kotlin.fir.resolve.transformers.FirTransformerBasedResolveProcessor.processFile(FirResolveProcessor.kt:29) - at org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveProcessor.process(FirTotalResolveProcessor.kt:23) - at org.jetbrains.kotlin.fir.analysis.FirAnalyzerFacade.runResolution(FirAnalyzerFacade.kt:69) - at org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade.analyze(FirFrontendFacade.kt:75) - at org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade.analyze(FirFrontendFacade.kt:26) - at org.jetbrains.kotlin.test.model.FrontendFacade.transform(Facades.kt:36) - at org.jetbrains.kotlin.test.model.FrontendFacade.transform(Facades.kt:25) - at org.jetbrains.kotlin.test.TestRunner.processModule(TestRunner.kt:125) - at org.jetbrains.kotlin.test.TestRunner.runTestImpl(TestRunner.kt:66) - at org.jetbrains.kotlin.test.TestRunner.runTest(TestRunner.kt:20) - at org.jetbrains.kotlin.test.TestRunner.runTest$default(TestRunner.kt:18) - at org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest.runTest(AbstractKotlinCompilerTest.kt:80) - at org.jetbrains.kotlin.test.runners.FirOldFrontendDiagnosticsTestGenerated$Tests$Inference$BuilderInference$StubTypes.testCommonSuperTypeCovariant(FirOldFrontendDiagnosticsTestGenerated.java:12711) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:498) - at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688) - at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) - at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) - at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) - at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:210) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:206) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) - at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) - at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:389) - at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.joinConcurrentTasksInReverseOrderToEnableWorkStealing(ForkJoinPoolHierarchicalTestExecutorService.java:162) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:136) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) - at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) - at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:389) - at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.joinConcurrentTasksInReverseOrderToEnableWorkStealing(ForkJoinPoolHierarchicalTestExecutorService.java:162) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:136) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) - at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) - at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:389) - at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.joinConcurrentTasksInReverseOrderToEnableWorkStealing(ForkJoinPoolHierarchicalTestExecutorService.java:162) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:136) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) - at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) - at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) - at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) - at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) -Caused by: java.lang.RuntimeException: While resolving call R?C|/select1|(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), Q|Test|.R|/Test.foo|, Out?>|>(this@R|special/anonymous|.R|SubstitutionOverride|>|())) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:298) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:107) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirFunctionCall.transform(FirFunctionCall.kt:37) - at org.jetbrains.kotlin.fir.expressions.FirExpressionUtilKt.transformStatementsIndexed(FirExpressionUtil.kt:134) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlockInCurrentScope$resolve(FirExpressionsResolveTransformer.kt:323) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlock(FirExpressionsResolveTransformer.kt:314) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:122) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirBlock.transform(FirBlock.kt:28) - at org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl.transformBody(FirAnonymousFunctionImpl.kt:102) - at org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl.transformChildren(FirAnonymousFunctionImpl.kt:74) - at org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl.transformChildren(FirAnonymousFunctionImpl.kt:31) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:60) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:244) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformDeclarationContent(FirDeclarationsResolveTransformer.kt:69) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFunction(FirDeclarationsResolveTransformer.kt:527) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformAnonymousFunctionWithLambdaResolution(FirDeclarationsResolveTransformer.kt:430) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.access$transformAnonymousFunctionWithLambdaResolution(FirDeclarationsResolveTransformer.kt:41) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformAnonymousFunction$3.invoke(FirDeclarationsResolveTransformer.kt:638) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformAnonymousFunction$3.invoke(FirDeclarationsResolveTransformer.kt:636) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.withAnonymousFunction(BodyResolveContext.kt:946) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformAnonymousFunction(FirDeclarationsResolveTransformer.kt:636) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformAnonymousFunction(FirBodyResolveTransformer.kt:306) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformAnonymousFunction(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction.transform(FirAnonymousFunction.kt:50) - at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformSingle(FirTransformerUtil.kt:12) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter$LambdaAnalyzerImpl.analyzeAndGetLambdaReturnArguments(FirCallCompleter.kt:239) - at org.jetbrains.kotlin.fir.resolve.inference.PostponedArgumentsAnalyzer.analyzeLambda(PostponedArgumentsAnalyzer.kt:131) - at org.jetbrains.kotlin.fir.resolve.inference.PostponedArgumentsAnalyzer.analyze(PostponedArgumentsAnalyzer.kt:59) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter$runCompletionForCall$1.invoke(FirCallCompleter.kt:125) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter$runCompletionForCall$1.invoke(FirCallCompleter.kt:124) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.analyzeArgumentWithFixedParameterTypes(ConstraintSystemCompleter.kt:131) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete(ConstraintSystemCompleter.kt:48) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete$default(ConstraintSystemCompleter.kt:31) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.runCompletionForCall(FirCallCompleter.kt:118) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.completeCall(FirCallCompleter.kt:80) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:296) - ... 139 more -Caused by: java.lang.AssertionError: There should be at least one non-stub type to compute common supertype but there are: [Stub: TypeVariable(R1), Stub: TypeVariable(R1)] - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperTypeForNotNullTypes(NewCommonSuperTypeCalculator.kt:174) - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperTypeForSimpleTypes(NewCommonSuperTypeCalculator.kt:93) - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperType(NewCommonSuperTypeCalculator.kt:53) - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperType(NewCommonSuperTypeCalculator.kt:18) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.computeCommonSuperType(ResultTypeResolver.kt:175) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.findSubType(ResultTypeResolver.kt:135) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.findResultTypeOrNull(ResultTypeResolver.kt:42) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.findResultType(ResultTypeResolver.kt:27) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.fixVariable(ConstraintSystemCompleter.kt:322) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.fixVariablesOrReportNotEnoughInformation(ConstraintSystemCompleter.kt:219) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete(ConstraintSystemCompleter.kt:108) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete$default(ConstraintSystemCompleter.kt:31) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.runCompletionForCall(FirCallCompleter.kt:118) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.completeCall(FirCallCompleter.kt:80) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:296) - ... 176 more - diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.fir.kt index bc1c0ac40ef..dc90ca5aa14 100644 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.fir.kt +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.fir.kt @@ -1,7 +1,6 @@ // !LANGUAGE: +UnrestrictedBuilderInference // !DIAGNOSTICS: -UNUSED_PARAMETER -DEPRECATION -EXPERIMENTAL_IS_NOT_ENABLED -UNUSED_VARIABLE // WITH_RUNTIME -// FIR_IDE_IGNORE // FILE: Test.java @@ -13,10 +12,10 @@ class Test { import kotlin.experimental.ExperimentalTypeInference @UseExperimental(ExperimentalTypeInference::class) -fun build(@BuilderInference block: TestInterface.() -> Unit): R1 = TODO() +fun build(@BuilderInference block: TestInterface.() -> Unit): R1 = TODO() @UseExperimental(ExperimentalTypeInference::class) -fun build2(@BuilderInference block: TestInterface.() -> Unit): R2 = TODO() +fun build2(@BuilderInference block: TestInterface.() -> Unit): R2 = TODO() class Out diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.kt index 854da5f7888..29413894bcb 100644 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.kt +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.kt @@ -1,7 +1,6 @@ // !LANGUAGE: +UnrestrictedBuilderInference // !DIAGNOSTICS: -UNUSED_PARAMETER -DEPRECATION -EXPERIMENTAL_IS_NOT_ENABLED -UNUSED_VARIABLE // WITH_RUNTIME -// FIR_IDE_IGNORE // FILE: Test.java diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeNullable.fir.fail b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeNullable.fir.fail deleted file mode 100644 index 08695a86ae6..00000000000 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeNullable.fir.fail +++ /dev/null @@ -1,253 +0,0 @@ - -While resolving call R?C|/build|( = build@fun R|TestInterface|.(): R|kotlin/Unit| { - this@R|special/anonymous|.R|SubstitutionOverride|(String(1)) - Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()) - Q|Test|.R|/Test.foo|, Inv?>|>(this@R|special/anonymous|.R|SubstitutionOverride|>|()) - R|/id|(this@R|special/anonymous|.R|SubstitutionOverride|()) - R|/select|(vararg(this@R|special/anonymous|.R|SubstitutionOverride|(), this@R|special/anonymous|.R|SubstitutionOverride|())) - R|/select|(vararg(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()))) - R?C|/select|(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), this@R|special/anonymous|.R|SubstitutionOverride|()) - select#(getInv#(), getInv#()) - select#(Test#.foo#(getInv#()), Test#.foo#(getInv#())) - select#(Test#.foo#(getInv#()), getInv#()) - select#(getInv#(), Test#.foo#(getInv#())) - select#(id#(get#()), id#(get#())) - build2#( = build2@fun .(): { - emit#(IntegerLiteral(1)) - select#(this@build#.get#(), get#()) - select#(Test#.foo#(this@build#.get#()), Test#.foo#(get#())) - select#(this@build#.getInv#(), getInv#()) - select#(Test#.foo#(this@build#.getInv#()), Test#.foo#(getInv#())) - select#(Test#.foo#(this@build#.getInv#()), getInv#()) - select#(id#(this@build#.get#()), id#(get#())) - String() - } - ) - String() -} -) -java.lang.RuntimeException: While resolving call R?C|/build|( = build@fun R|TestInterface|.(): R|kotlin/Unit| { - this@R|special/anonymous|.R|SubstitutionOverride|(String(1)) - Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()) - Q|Test|.R|/Test.foo|, Inv?>|>(this@R|special/anonymous|.R|SubstitutionOverride|>|()) - R|/id|(this@R|special/anonymous|.R|SubstitutionOverride|()) - R|/select|(vararg(this@R|special/anonymous|.R|SubstitutionOverride|(), this@R|special/anonymous|.R|SubstitutionOverride|())) - R|/select|(vararg(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()))) - R?C|/select|(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), this@R|special/anonymous|.R|SubstitutionOverride|()) - select#(getInv#(), getInv#()) - select#(Test#.foo#(getInv#()), Test#.foo#(getInv#())) - select#(Test#.foo#(getInv#()), getInv#()) - select#(getInv#(), Test#.foo#(getInv#())) - select#(id#(get#()), id#(get#())) - build2#( = build2@fun .(): { - emit#(IntegerLiteral(1)) - select#(this@build#.get#(), get#()) - select#(Test#.foo#(this@build#.get#()), Test#.foo#(get#())) - select#(this@build#.getInv#(), getInv#()) - select#(Test#.foo#(this@build#.getInv#()), Test#.foo#(getInv#())) - select#(Test#.foo#(this@build#.getInv#()), getInv#()) - select#(id#(this@build#.get#()), id#(get#())) - String() - } - ) - String() -} -) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:298) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:107) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirFunctionCall.transform(FirFunctionCall.kt:37) - at org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl.transformInitializer(FirPropertyImpl.kt:104) - at org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl.transformInitializer(FirPropertyImpl.kt:34) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformLocalVariable(FirDeclarationsResolveTransformer.kt:276) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformProperty(FirDeclarationsResolveTransformer.kt:119) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformProperty(FirBodyResolveTransformer.kt:259) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformProperty(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirProperty.transform(FirProperty.kt:58) - at org.jetbrains.kotlin.fir.expressions.FirExpressionUtilKt.transformStatementsIndexed(FirExpressionUtil.kt:134) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlockInCurrentScope$resolve(FirExpressionsResolveTransformer.kt:323) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlock(FirExpressionsResolveTransformer.kt:314) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:122) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirBlock.transform(FirBlock.kt:28) - at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.transformBody(FirSimpleFunctionImpl.kt:99) - at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.transformChildren(FirSimpleFunctionImpl.kt:75) - at org.jetbrains.kotlin.fir.declarations.impl.FirSimpleFunctionImpl.transformChildren(FirSimpleFunctionImpl.kt:33) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:60) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:244) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformDeclarationContent(FirDeclarationsResolveTransformer.kt:69) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFunction(FirDeclarationsResolveTransformer.kt:527) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFunctionWithGivenSignature(FirDeclarationsResolveTransformer.kt:490) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.access$transformFunctionWithGivenSignature(FirDeclarationsResolveTransformer.kt:41) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformSimpleFunction$1$1.invoke(FirDeclarationsResolveTransformer.kt:479) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformSimpleFunction$1$1.invoke(FirDeclarationsResolveTransformer.kt:477) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.forFunctionBody(BodyResolveContext.kt:896) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformSimpleFunction(FirDeclarationsResolveTransformer.kt:477) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformSimpleFunction(FirBodyResolveTransformer.kt:281) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformSimpleFunction(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirSimpleFunction.transform(FirSimpleFunction.kt:52) - at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformInplace(FirTransformerUtil.kt:19) - at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformDeclarations(FirFileImpl.kt:61) - at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:46) - at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:25) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:60) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:244) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFile(FirBodyResolveTransformer.kt:54) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFile(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:37) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformerAdapter.transformFile(FirBodyResolveTransformerAdapters.kt:37) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformerAdapter.transformFile(FirBodyResolveTransformerAdapters.kt:23) - at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:37) - at org.jetbrains.kotlin.fir.resolve.transformers.FirTransformerBasedResolveProcessor.processFile(FirResolveProcessor.kt:29) - at org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveProcessor.process(FirTotalResolveProcessor.kt:23) - at org.jetbrains.kotlin.fir.analysis.FirAnalyzerFacade.runResolution(FirAnalyzerFacade.kt:69) - at org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade.analyze(FirFrontendFacade.kt:75) - at org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade.analyze(FirFrontendFacade.kt:26) - at org.jetbrains.kotlin.test.model.FrontendFacade.transform(Facades.kt:36) - at org.jetbrains.kotlin.test.model.FrontendFacade.transform(Facades.kt:25) - at org.jetbrains.kotlin.test.TestRunner.processModule(TestRunner.kt:125) - at org.jetbrains.kotlin.test.TestRunner.runTestImpl(TestRunner.kt:66) - at org.jetbrains.kotlin.test.TestRunner.runTest(TestRunner.kt:20) - at org.jetbrains.kotlin.test.TestRunner.runTest$default(TestRunner.kt:18) - at org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest.runTest(AbstractKotlinCompilerTest.kt:80) - at org.jetbrains.kotlin.test.runners.FirOldFrontendDiagnosticsTestGenerated$Tests$Inference$BuilderInference$StubTypes.testCommonSuperTypeNullable(FirOldFrontendDiagnosticsTestGenerated.java:12723) - at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) - at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) - at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) - at java.lang.reflect.Method.invoke(Method.java:498) - at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688) - at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) - at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) - at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) - at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) - at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) - at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) - at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:210) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:206) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131) - at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) - at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) - at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:389) - at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.joinConcurrentTasksInReverseOrderToEnableWorkStealing(ForkJoinPoolHierarchicalTestExecutorService.java:162) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:136) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) - at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) - at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:389) - at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.joinConcurrentTasksInReverseOrderToEnableWorkStealing(ForkJoinPoolHierarchicalTestExecutorService.java:162) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:136) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) - at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) - at java.util.concurrent.ForkJoinTask.doJoin(ForkJoinTask.java:389) - at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:719) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.joinConcurrentTasksInReverseOrderToEnableWorkStealing(ForkJoinPoolHierarchicalTestExecutorService.java:162) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService.invokeAll(ForkJoinPoolHierarchicalTestExecutorService.java:136) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) - at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) - at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) - at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) - at org.junit.platform.engine.support.hierarchical.ForkJoinPoolHierarchicalTestExecutorService$ExclusiveTask.compute(ForkJoinPoolHierarchicalTestExecutorService.java:185) - at java.util.concurrent.RecursiveAction.exec(RecursiveAction.java:189) - at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) - at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) - at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) - at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) -Caused by: java.lang.RuntimeException: While resolving call R?C|/select|(Q|Test|.R|/Test.foo||>(this@R|special/anonymous|.R|SubstitutionOverride|()), this@R|special/anonymous|.R|SubstitutionOverride|()) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:298) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:107) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirFunctionCall.transform(FirFunctionCall.kt:37) - at org.jetbrains.kotlin.fir.expressions.FirExpressionUtilKt.transformStatementsIndexed(FirExpressionUtil.kt:134) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlockInCurrentScope$resolve(FirExpressionsResolveTransformer.kt:323) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformBlock(FirExpressionsResolveTransformer.kt:314) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:122) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformBlock(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.expressions.FirBlock.transform(FirBlock.kt:28) - at org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl.transformBody(FirAnonymousFunctionImpl.kt:102) - at org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl.transformChildren(FirAnonymousFunctionImpl.kt:74) - at org.jetbrains.kotlin.fir.declarations.impl.FirAnonymousFunctionImpl.transformChildren(FirAnonymousFunctionImpl.kt:31) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:60) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:244) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformDeclarationContent(FirDeclarationsResolveTransformer.kt:69) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformFunction(FirDeclarationsResolveTransformer.kt:527) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformAnonymousFunctionWithLambdaResolution(FirDeclarationsResolveTransformer.kt:430) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.access$transformAnonymousFunctionWithLambdaResolution(FirDeclarationsResolveTransformer.kt:41) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformAnonymousFunction$3.invoke(FirDeclarationsResolveTransformer.kt:638) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$transformAnonymousFunction$3.invoke(FirDeclarationsResolveTransformer.kt:636) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.withAnonymousFunction(BodyResolveContext.kt:946) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformAnonymousFunction(FirDeclarationsResolveTransformer.kt:636) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformAnonymousFunction(FirBodyResolveTransformer.kt:306) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformAnonymousFunction(FirBodyResolveTransformer.kt:27) - at org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction.transform(FirAnonymousFunction.kt:50) - at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformSingle(FirTransformerUtil.kt:12) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter$LambdaAnalyzerImpl.analyzeAndGetLambdaReturnArguments(FirCallCompleter.kt:239) - at org.jetbrains.kotlin.fir.resolve.inference.PostponedArgumentsAnalyzer.analyzeLambda(PostponedArgumentsAnalyzer.kt:131) - at org.jetbrains.kotlin.fir.resolve.inference.PostponedArgumentsAnalyzer.analyze(PostponedArgumentsAnalyzer.kt:59) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter$runCompletionForCall$1.invoke(FirCallCompleter.kt:125) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter$runCompletionForCall$1.invoke(FirCallCompleter.kt:124) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.analyzeArgumentWithFixedParameterTypes(ConstraintSystemCompleter.kt:131) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete(ConstraintSystemCompleter.kt:48) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete$default(ConstraintSystemCompleter.kt:31) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.runCompletionForCall(FirCallCompleter.kt:118) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.completeCall(FirCallCompleter.kt:80) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:296) - ... 139 more -Caused by: java.lang.AssertionError: There should be at least one non-stub type to compute common supertype but there are: [Stub: TypeVariable(R)?, Stub: TypeVariable(R)] - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperTypeForNotNullTypes(NewCommonSuperTypeCalculator.kt:174) - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperTypeForSimpleTypes(NewCommonSuperTypeCalculator.kt:93) - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperType(NewCommonSuperTypeCalculator.kt:53) - at org.jetbrains.kotlin.resolve.calls.NewCommonSuperTypeCalculator.commonSuperType(NewCommonSuperTypeCalculator.kt:18) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.computeCommonSuperType(ResultTypeResolver.kt:175) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.findSubType(ResultTypeResolver.kt:135) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.findResultTypeOrNull(ResultTypeResolver.kt:42) - at org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.findResultType(ResultTypeResolver.kt:27) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.fixVariable(ConstraintSystemCompleter.kt:322) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.fixVariablesOrReportNotEnoughInformation(ConstraintSystemCompleter.kt:219) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete(ConstraintSystemCompleter.kt:108) - at org.jetbrains.kotlin.fir.resolve.inference.ConstraintSystemCompleter.complete$default(ConstraintSystemCompleter.kt:31) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.runCompletionForCall(FirCallCompleter.kt:118) - at org.jetbrains.kotlin.fir.resolve.inference.FirCallCompleter.completeCall(FirCallCompleter.kt:80) - at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:296) - ... 176 more - diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeNullable.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeNullable.fir.kt index c14edc95dee..693aaac30f7 100644 --- a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeNullable.fir.kt +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeNullable.fir.kt @@ -15,10 +15,10 @@ class Test { import kotlin.experimental.ExperimentalTypeInference @UseExperimental(ExperimentalTypeInference::class) -fun build(@BuilderInference block: TestInterface.() -> Unit): R = TODO() +fun build(@BuilderInference block: TestInterface.() -> Unit): R = TODO() @UseExperimental(ExperimentalTypeInference::class) -fun build2(@BuilderInference block: TestInterface.() -> Unit): R = TODO() +fun build2(@BuilderInference block: TestInterface.() -> Unit): R = TODO() class Inv diff --git a/compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.kt b/compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.kt new file mode 100644 index 00000000000..4cd04290d36 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.kt @@ -0,0 +1,16 @@ +// FIR_IDENTICAL +// WITH_STDLIB +// ISSUE: KT-48110 + +fun test_1(s: String?, flag: Boolean): Int? { + return run { + when (flag) { + true -> s?.let { + return@run 42 + } + false -> s?.let { + return@run 24 + } + } + } +} diff --git a/compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.txt b/compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.txt new file mode 100644 index 00000000000..cce69b6b5bc --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.txt @@ -0,0 +1,3 @@ +package + +public fun test_1(/*0*/ s: kotlin.String?, /*1*/ flag: kotlin.Boolean): kotlin.Int? diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 4b8c5e971f4..132f4b19a8d 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -13275,6 +13275,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/inference/starApproximationFromDifferentTypeParameter.kt"); } + @Test + @TestMetadata("stubTypeForSubtyping.kt") + public void testStubTypeForSubtyping() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.kt"); + } + @Test @TestMetadata("tooEagerSmartcast.kt") public void testTooEagerSmartcast() throws Exception { diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index 87a4e76dea2..abb1f168353 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -13269,6 +13269,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag runTest("compiler/testData/diagnostics/tests/inference/starApproximationFromDifferentTypeParameter.kt"); } + @Test + @TestMetadata("stubTypeForSubtyping.kt") + public void testStubTypeForSubtyping() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/stubTypeForSubtyping.kt"); + } + @Test @TestMetadata("tooEagerSmartcast.kt") public void testTooEagerSmartcast() throws Exception {