[FIR] Distinguish stub types for builder inference and for subtyping
^KT-48110 Fixed
This commit is contained in:
Vendored
+1
-1
@@ -20,7 +20,7 @@ FILE: KtFirCompositeScope.kt
|
||||
public final fun getAllNames(): R|kotlin/collections/Set<kotlin/String>| {
|
||||
^getAllNames R|/withValidityAssertion|<R|kotlin/collections/Set<kotlin/String>|>(<L> = withValidityAssertion@fun <anonymous>(): R|kotlin/collections/Set<kotlin/String>| <inline=Inline, kind=UNKNOWN> {
|
||||
^ R|/buildSet|<R|kotlin/String|>(<L> = buildSet@fun R|kotlin/collections/MutableSet<kotlin/String>|.<anonymous>(): R|kotlin/Unit| <inline=Inline, kind=UNKNOWN> {
|
||||
this@R|/KtFirCompositeScope|.R|/KtFirCompositeScope.subScopes|.R|kotlin/collections/flatMapTo|<R|KtScope|, R|kotlin/String|, R|kotlin/collections/MutableSet<Stub: TypeVariable(E)>|>(this@R|special/anonymous|, <L> = flatMapTo@fun <anonymous>(it: R|KtScope|): R|kotlin/collections/Iterable<kotlin/String>| <inline=Inline, kind=UNKNOWN> {
|
||||
this@R|/KtFirCompositeScope|.R|/KtFirCompositeScope.subScopes|.R|kotlin/collections/flatMapTo|<R|KtScope|, R|kotlin/String|, R|kotlin/collections/MutableSet<Stub (builder inference): TypeVariable(E)>|>(this@R|special/anonymous|, <L> = flatMapTo@fun <anonymous>(it: R|KtScope|): R|kotlin/collections/Iterable<kotlin/String>| <inline=Inline, kind=UNKNOWN> {
|
||||
^ R|<local>/it|.R|/KtScope.getAllNames|()
|
||||
}
|
||||
)
|
||||
|
||||
+6
@@ -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 {
|
||||
|
||||
+6
@@ -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 {
|
||||
|
||||
+1
-1
@@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<out ConeTypeProjection>
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ class FirBuilderInferenceSession(
|
||||
|
||||
private fun ConeKotlinType.containsStubType(): Boolean {
|
||||
return this.contains {
|
||||
it is ConeStubType
|
||||
it is ConeStubTypeForBuilderInference
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>): SimpleTypeMarker {
|
||||
|
||||
@@ -156,7 +156,8 @@ fun <T : ConeKotlinType> 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)
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
-1
@@ -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
|
||||
|
||||
-1
@@ -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
|
||||
|
||||
Vendored
-267
@@ -1,267 +0,0 @@
|
||||
While resolving call R?C|/build|(<L> = build@fun R|TestInterface<Stub: TypeVariable(R)>|.<anonymous>(): R|kotlin/Unit| <inline=Unknown> {
|
||||
this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.emit: R|kotlin/Unit|>|(String(1))
|
||||
Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
Q|Test|.R|/Test.foo|<R|ft<Inv<Stub: TypeVariable(R)>, Inv<Stub: TypeVariable(R)>?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.getInv: R|Inv<Stub: TypeVariable(R)>|>|())
|
||||
R|/id|<R|Stub: TypeVariable(R)|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
R|/select|<R|Stub: TypeVariable(R)|>(vararg(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|(), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()))
|
||||
R|/select|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(vararg(Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()), Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())))
|
||||
R?C|/select|(Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
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#(<L> = build2@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
||||
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|(<L> = build@fun R|TestInterface<Stub: TypeVariable(R)>|.<anonymous>(): R|kotlin/Unit| <inline=Unknown> {
|
||||
this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.emit: R|kotlin/Unit|>|(String(1))
|
||||
Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
Q|Test|.R|/Test.foo|<R|ft<Inv<Stub: TypeVariable(R)>, Inv<Stub: TypeVariable(R)>?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.getInv: R|Inv<Stub: TypeVariable(R)>|>|())
|
||||
R|/id|<R|Stub: TypeVariable(R)|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
R|/select|<R|Stub: TypeVariable(R)|>(vararg(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|(), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()))
|
||||
R|/select|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(vararg(Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()), Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())))
|
||||
R?C|/select|(Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
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#(<L> = build2@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
||||
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|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
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
|
||||
|
||||
Vendored
+2
-2
@@ -12,10 +12,10 @@ class Test {
|
||||
import kotlin.experimental.ExperimentalTypeInference
|
||||
|
||||
@UseExperimental(ExperimentalTypeInference::class)
|
||||
fun <R> build(@BuilderInference block: TestInterface<R>.() -> Unit): R = TODO()
|
||||
fun <R> build(@<!EXPERIMENTAL_API_USAGE_ERROR!>BuilderInference<!> block: TestInterface<R>.() -> Unit): R = TODO()
|
||||
|
||||
@UseExperimental(ExperimentalTypeInference::class)
|
||||
fun <R> build2(@BuilderInference block: TestInterface<R>.() -> Unit): R = TODO()
|
||||
fun <R> build2(@<!EXPERIMENTAL_API_USAGE_ERROR!>BuilderInference<!> block: TestInterface<R>.() -> Unit): R = TODO()
|
||||
|
||||
class Inv<K>
|
||||
|
||||
|
||||
+17
-17
@@ -34,16 +34,16 @@ fun <E> select4(x: E?, y: In<E>): 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())
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select1(get(), getIn())<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select1(get(), Test.foo(getIn()))<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select1(Test.foo(get()), Test.foo(getIn()))<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select1(Test.foo(get()), getIn())<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>select4(get(), getIn())<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>select4(get(), Test.foo(getIn()))<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>select4(Test.foo(get()), Test.foo(getIn()))<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>select4(Test.foo(get()), getIn())<!>
|
||||
|
||||
select4(id(Test.foo(get())), getIn())
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>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())
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select2(get(), getIn())<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select2(get(), Test.foo(getIn()))<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select2(Test.foo(get()), Test.foo(getIn()))<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select2(Test.foo(get()), getIn())<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select3(get(), getIn())<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select3(get(), Test.foo(getIn()))<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select3(Test.foo(get()), Test.foo(getIn()))<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String?")!>select3(Test.foo(get()), getIn())<!>
|
||||
""
|
||||
}
|
||||
}
|
||||
|
||||
-287
@@ -1,287 +0,0 @@
|
||||
|
||||
While resolving call R?C|/build|(<L> = build@fun R|TestInterface<Stub: TypeVariable(R1)>|.<anonymous>(): R|kotlin/Unit| <inline=Unknown> {
|
||||
this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.emit: R|kotlin/Unit|>|(String(1))
|
||||
R|/select1|<R|Stub: TypeVariable(R1)|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R1)|>|(), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.getOut: R|Out<Stub: TypeVariable(R1)>|>|())
|
||||
R|/select1|<R|Stub: TypeVariable(R1)|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R1)|>|(), Q|Test|.R|/Test.foo|<R|ft<Out<Stub: TypeVariable(R1)>, Out<Stub: TypeVariable(R1)>?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.getOut: R|Out<Stub: TypeVariable(R1)>|>|()))
|
||||
R?C|/select1|(Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R1), Stub: TypeVariable(R1)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R1)|>|()), Q|Test|.R|/Test.foo|<R|ft<Out<Stub: TypeVariable(R1)>, Out<Stub: TypeVariable(R1)>?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.getOut: R|Out<Stub: TypeVariable(R1)>|>|()))
|
||||
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#(<L> = build2@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
||||
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|(<L> = build@fun R|TestInterface<Stub: TypeVariable(R1)>|.<anonymous>(): R|kotlin/Unit| <inline=Unknown> {
|
||||
this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.emit: R|kotlin/Unit|>|(String(1))
|
||||
R|/select1|<R|Stub: TypeVariable(R1)|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R1)|>|(), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.getOut: R|Out<Stub: TypeVariable(R1)>|>|())
|
||||
R|/select1|<R|Stub: TypeVariable(R1)|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R1)|>|(), Q|Test|.R|/Test.foo|<R|ft<Out<Stub: TypeVariable(R1)>, Out<Stub: TypeVariable(R1)>?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.getOut: R|Out<Stub: TypeVariable(R1)>|>|()))
|
||||
R?C|/select1|(Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R1), Stub: TypeVariable(R1)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R1)|>|()), Q|Test|.R|/Test.foo|<R|ft<Out<Stub: TypeVariable(R1)>, Out<Stub: TypeVariable(R1)>?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.getOut: R|Out<Stub: TypeVariable(R1)>|>|()))
|
||||
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#(<L> = build2@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
||||
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|<R|ft<Stub: TypeVariable(R1), Stub: TypeVariable(R1)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R1)|>|()), Q|Test|.R|/Test.foo|<R|ft<Out<Stub: TypeVariable(R1)>, Out<Stub: TypeVariable(R1)>?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.getOut: R|Out<Stub: TypeVariable(R1)>|>|()))
|
||||
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
|
||||
|
||||
+2
-3
@@ -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 <R1> build(@BuilderInference block: TestInterface<R1>.() -> Unit): R1 = TODO()
|
||||
fun <R1> build(@<!EXPERIMENTAL_API_USAGE_ERROR!>BuilderInference<!> block: TestInterface<R1>.() -> Unit): R1 = TODO()
|
||||
|
||||
@UseExperimental(ExperimentalTypeInference::class)
|
||||
fun <R2> build2(@BuilderInference block: TestInterface<R2>.() -> Unit): R2 = TODO()
|
||||
fun <R2> build2(@<!EXPERIMENTAL_API_USAGE_ERROR!>BuilderInference<!> block: TestInterface<R2>.() -> Unit): R2 = TODO()
|
||||
|
||||
class Out<out K>
|
||||
|
||||
|
||||
compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/commonSuperTypeCovariant.kt
Vendored
-1
@@ -1,7 +1,6 @@
|
||||
// !LANGUAGE: +UnrestrictedBuilderInference
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER -DEPRECATION -EXPERIMENTAL_IS_NOT_ENABLED -UNUSED_VARIABLE
|
||||
// WITH_RUNTIME
|
||||
// FIR_IDE_IGNORE
|
||||
|
||||
// FILE: Test.java
|
||||
|
||||
|
||||
-253
@@ -1,253 +0,0 @@
|
||||
|
||||
While resolving call R?C|/build|(<L> = build@fun R|TestInterface<Stub: TypeVariable(R)>|.<anonymous>(): R|kotlin/Unit| <inline=Unknown> {
|
||||
this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.emit: R|kotlin/Unit|>|(String(1))
|
||||
Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
Q|Test|.R|/Test.foo|<R|ft<Inv<Stub: TypeVariable(R)>, Inv<Stub: TypeVariable(R)>?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.getInv: R|Inv<Stub: TypeVariable(R)>|>|())
|
||||
R|/id|<R|Stub: TypeVariable(R)|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
R|/select|<R|Stub: TypeVariable(R)|>(vararg(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|(), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()))
|
||||
R|/select|<R|Stub: TypeVariable(R)?|>(vararg(Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()), Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())))
|
||||
R?C|/select|(Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
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#(<L> = build2@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
||||
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|(<L> = build@fun R|TestInterface<Stub: TypeVariable(R)>|.<anonymous>(): R|kotlin/Unit| <inline=Unknown> {
|
||||
this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.emit: R|kotlin/Unit|>|(String(1))
|
||||
Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
Q|Test|.R|/Test.foo|<R|ft<Inv<Stub: TypeVariable(R)>, Inv<Stub: TypeVariable(R)>?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.getInv: R|Inv<Stub: TypeVariable(R)>|>|())
|
||||
R|/id|<R|Stub: TypeVariable(R)|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
R|/select|<R|Stub: TypeVariable(R)|>(vararg(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|(), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()))
|
||||
R|/select|<R|Stub: TypeVariable(R)?|>(vararg(Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()), Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())))
|
||||
R?C|/select|(Q|Test|.R|/Test.foo|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
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#(<L> = build2@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
||||
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|<R|ft<Stub: TypeVariable(R), Stub: TypeVariable(R)?>|>(this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|()), this@R|special/anonymous|.R|SubstitutionOverride</TestInterface.get: R|Stub: TypeVariable(R)|>|())
|
||||
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
|
||||
|
||||
+2
-2
@@ -15,10 +15,10 @@ class Test {
|
||||
import kotlin.experimental.ExperimentalTypeInference
|
||||
|
||||
@UseExperimental(ExperimentalTypeInference::class)
|
||||
fun <R> build(@BuilderInference block: TestInterface<R>.() -> Unit): R = TODO()
|
||||
fun <R> build(@<!EXPERIMENTAL_API_USAGE_ERROR!>BuilderInference<!> block: TestInterface<R>.() -> Unit): R = TODO()
|
||||
|
||||
@UseExperimental(ExperimentalTypeInference::class)
|
||||
fun <R> build2(@BuilderInference block: TestInterface<R>.() -> Unit): R = TODO()
|
||||
fun <R> build2(@<!EXPERIMENTAL_API_USAGE_ERROR!>BuilderInference<!> block: TestInterface<R>.() -> Unit): R = TODO()
|
||||
|
||||
class Inv<K>
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
public fun test_1(/*0*/ s: kotlin.String?, /*1*/ flag: kotlin.Boolean): kotlin.Int?
|
||||
Generated
+6
@@ -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 {
|
||||
|
||||
+6
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user