FIR: don't create incorrect constraints in CallableReferenceResolution

#KT-50994 Fixed
Related to KT-49477
This commit is contained in:
Mikhail Glukhikh
2022-04-18 14:07:08 +03:00
committed by Space
parent bdf229bc5c
commit 0ecba0ad0b
12 changed files with 178 additions and 388 deletions
@@ -37368,6 +37368,12 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag
public void testKt32249() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt32249.kt");
}
@Test
@TestMetadata("kt50994.kt")
public void testKt50994() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.kt");
}
}
@Nested
@@ -37368,6 +37368,12 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti
public void testKt32249() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt32249.kt");
}
@Test
@TestMetadata("kt50994.kt")
public void testKt50994() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.kt");
}
}
@Nested
@@ -37368,6 +37368,12 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac
public void testKt32249() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt32249.kt");
}
@Test
@TestMetadata("kt50994.kt")
public void testKt50994() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.kt");
}
}
@Nested
@@ -63,7 +63,10 @@ internal object CheckCallableReferenceExpectedType : CheckerStage() {
val position = SimpleConstraintSystemConstraintPosition //TODO
if (expectedType != null) {
if (expectedType != null && !resultingType.contains {
it is ConeTypeVariableType && it.lookupTag !in outerCsBuilder.currentStorage().allTypeVariables
}
) {
addSubtypeConstraint(resultingType, expectedType, position)
}
@@ -1,232 +0,0 @@
java.lang.RuntimeException: While resolving call parent#(Q|GitLabChangesProcessor|::buildProcessors#)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:375)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:123)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:27)
at org.jetbrains.kotlin.fir.expressions.FirFunctionCall.transform(FirFunctionCall.kt:38)
at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformSingle(FirTransformerUtil.kt:12)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformWrappedDelegateExpression(FirDeclarationsResolveTransformer.kt:307)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformWrappedDelegateExpression(FirBodyResolveTransformer.kt:205)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformWrappedDelegateExpression(FirBodyResolveTransformer.kt:27)
at org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression.transform(FirWrappedDelegateExpression.kt:29)
at org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl.transformDelegate(FirPropertyImpl.kt:121)
at org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl.transformDelegate(FirPropertyImpl.kt:37)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformPropertyAccessorsWithDelegate(FirDeclarationsResolveTransformer.kt:273)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.access$transformPropertyAccessorsWithDelegate(FirDeclarationsResolveTransformer.kt:53)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformProperty(FirDeclarationsResolveTransformer.kt:158)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformProperty(FirBodyResolveTransformer.kt:279)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer.access$transformProperty$s-1523881058(FirImplicitBodyResolve.kt:130)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer$transformProperty$1.invoke(FirImplicitBodyResolve.kt:159)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer$transformProperty$1.invoke(FirImplicitBodyResolve.kt:158)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer.computeCachedTransformationResult(FirImplicitBodyResolve.kt:187)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer.transformProperty(FirImplicitBodyResolve.kt:158)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer.transformProperty(FirImplicitBodyResolve.kt:130)
at org.jetbrains.kotlin.fir.declarations.FirProperty.transform(FirProperty.kt:59)
at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformInplace(FirTransformerUtil.kt:19)
at org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl.transformDeclarations(FirRegularClassImpl.kt:88)
at org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl.transformChildren(FirRegularClassImpl.kt:70)
at org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl.transformChildren(FirRegularClassImpl.kt:32)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:61)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:264)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformDeclarationContent(FirDeclarationsResolveTransformer.kt:72)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.access$transformDeclarationContent(FirDeclarationsResolveTransformer.kt:53)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$doTransformRegularClass$result$1.invoke(FirDeclarationsResolveTransformer.kt:511)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$doTransformRegularClass$result$1.invoke(FirDeclarationsResolveTransformer.kt:510)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext$withRegularClass$2$1.invoke(BodyResolveContext.kt:783)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.withScopesForClass(BodyResolveContext.kt:481)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.withRegularClass(BodyResolveContext.kt:395)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.withRegularClass$default(BodyResolveContext.kt:374)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.doTransformRegularClass(FirDeclarationsResolveTransformer.kt:510)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformRegularClass(FirDeclarationsResolveTransformer.kt:483)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformRegularClass(FirBodyResolveTransformer.kt:294)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformRegularClass(FirBodyResolveTransformer.kt:27)
at org.jetbrains.kotlin.fir.declarations.FirRegularClass.transform(FirRegularClass.kt:49)
at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformInplace(FirTransformerUtil.kt:19)
at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformDeclarations(FirFileImpl.kt:72)
at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:57)
at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:26)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:61)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:264)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFile(FirBodyResolveTransformer.kt:55)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFile(FirBodyResolveTransformer.kt:27)
at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:39)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitTypeBodyResolveTransformerAdapter.transformFile(FirImplicitBodyResolve.kt:57)
at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:39)
at org.jetbrains.kotlin.fir.resolve.transformers.FirTransformerBasedResolveProcessor.processFile(FirResolveProcessor.kt:33)
at org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveProcessor.process(FirTotalResolveProcessor.kt:34)
at org.jetbrains.kotlin.fir.analysis.FirAnalyzerFacade.runResolution(FirAnalyzerFacade.kt:84)
at org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade.analyze(FirFrontendFacade.kt:125)
at org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade.analyze(FirFrontendFacade.kt:42)
at org.jetbrains.kotlin.test.model.FrontendFacade.transform(Facades.kt:43)
at org.jetbrains.kotlin.test.model.FrontendFacade.transform(Facades.kt:28)
at org.jetbrains.kotlin.test.TestStep$FacadeStep.processModule(TestStep.kt:33)
at org.jetbrains.kotlin.test.TestRunner.processModule(TestRunner.kt:200)
at org.jetbrains.kotlin.test.TestRunner.hackyProcessModule(TestRunner.kt:191)
at org.jetbrains.kotlin.test.TestRunner.processModule(TestRunner.kt:133)
at org.jetbrains.kotlin.test.TestRunner.runTestPipeline(TestRunner.kt:85)
at org.jetbrains.kotlin.test.TestRunner.runTestImpl(TestRunner.kt:69)
at org.jetbrains.kotlin.test.TestRunner.runTest(TestRunner.kt:29)
at org.jetbrains.kotlin.test.TestRunner.runTest$default(TestRunner.kt:27)
at org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest.runTest(AbstractKotlinCompilerTest.kt:82)
at org.jetbrains.kotlin.test.runners.FirOldFrontendDiagnosticsTestGenerated$Tests$Delegation.testKt49477(FirOldFrontendDiagnosticsTestGenerated.java:8463)
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:725)
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$7(TestMethodTestDescriptor.java:214)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
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$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
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$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
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$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
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$6(NodeTestTask.java:155)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
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.AssertionError: Not singleClassifierType and not intersection subType: TypeVariable(Target)
at org.jetbrains.kotlin.resolve.calls.inference.components.TypeCheckerStateForConstraintSystem.assertInputTypes(TypeCheckerStateForConstraintSystem.kt:360)
at org.jetbrains.kotlin.resolve.calls.inference.components.TypeCheckerStateForConstraintSystem.internalAddSubtypeConstraint(TypeCheckerStateForConstraintSystem.kt:124)
at org.jetbrains.kotlin.resolve.calls.inference.components.TypeCheckerStateForConstraintSystem.addSubtypeConstraint(TypeCheckerStateForConstraintSystem.kt:79)
at org.jetbrains.kotlin.types.AbstractTypeChecker.completeIsSubTypeOf(AbstractTypeChecker.kt:254)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf(AbstractTypeChecker.kt:216)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf$default(AbstractTypeChecker.kt:206)
at org.jetbrains.kotlin.types.AbstractTypeChecker.equalTypes(AbstractTypeChecker.kt:235)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeForSameConstructor(AbstractTypeChecker.kt:438)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOfForSingleClassifierType(AbstractTypeChecker.kt:345)
at org.jetbrains.kotlin.types.AbstractTypeChecker.completeIsSubTypeOf(AbstractTypeChecker.kt:256)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf(AbstractTypeChecker.kt:216)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf$default(AbstractTypeChecker.kt:206)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeForSameConstructor(AbstractTypeChecker.kt:439)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOfForSingleClassifierType(AbstractTypeChecker.kt:345)
at org.jetbrains.kotlin.types.AbstractTypeChecker.completeIsSubTypeOf(AbstractTypeChecker.kt:256)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf(AbstractTypeChecker.kt:216)
at org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintInjector$TypeCheckerStateForConstraintInjector.runIsSubtypeOf$isSubtypeOf(ConstraintInjector.kt:268)
at org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintInjector$TypeCheckerStateForConstraintInjector.runIsSubtypeOf(ConstraintInjector.kt:275)
at org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintInjector$TypeCheckerStateForConstraintInjector.runIsSubtypeOf$default(ConstraintInjector.kt:261)
at org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintInjector.addSubTypeConstraintAndIncorporateIt(ConstraintInjector.kt:91)
at org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintInjector.addInitialSubtypeConstraint(ConstraintInjector.kt:51)
at org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImpl.addSubtypeConstraint(NewConstraintSystemImpl.kt:162)
at org.jetbrains.kotlin.fir.resolve.calls.CheckCallableReferenceExpectedType$check$2.invoke(CallableReferenceResolution.kt:67)
at org.jetbrains.kotlin.fir.resolve.calls.CheckCallableReferenceExpectedType$check$2.invoke(CallableReferenceResolution.kt:61)
at org.jetbrains.kotlin.fir.resolve.calls.CheckCallableReferenceExpectedType$check$3.invoke(CallableReferenceResolution.kt:83)
at org.jetbrains.kotlin.fir.resolve.calls.CheckCallableReferenceExpectedType$check$3.invoke(CallableReferenceResolution.kt:82)
at org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImpl.runTransaction(NewConstraintSystemImpl.kt:211)
at org.jetbrains.kotlin.fir.resolve.calls.CheckCallableReferenceExpectedType.check(CallableReferenceResolution.kt:82)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner$processCandidate$1.invokeSuspend(ResolutionStageRunner.kt:24)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner.processCandidate(ResolutionStageRunner.kt:37)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner.processCandidate$default(ResolutionStageRunner.kt:17)
at org.jetbrains.kotlin.fir.resolve.calls.CandidateCollector.consumeCandidate(CandidateCollector.kt:34)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerScopeLevelProcessor.consumeCandidate(TowerLevelHandler.kt:82)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerScopeLevel$TowerScopeLevelProcessor$DefaultImpls.consumeCandidate$default(TowerLevels.kt:54)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processMembers$1.invoke(TowerLevels.kt:103)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processMembers$1.invoke(TowerLevels.kt:93)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processPropertiesByName$1$1$1.invoke(TowerLevels.kt:169)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processPropertiesByName$1$1$1.invoke(TowerLevels.kt:165)
at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.processPropertiesByName(AbstractFirUseSiteMemberScope.kt:67)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processPropertiesByName$1.invoke(TowerLevels.kt:165)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processPropertiesByName$1.invoke(TowerLevels.kt:162)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel.processMembers(TowerLevels.kt:93)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel.processPropertiesByName(TowerLevels.kt:162)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerLevelHandler.handleLevel(TowerLevelHandler.kt:57)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask.processLevel(FirTowerResolveTask.kt:132)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask.access$processLevel(FirTowerResolveTask.kt:53)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolveTask.runResolverForExpressionReceiver(FirTowerResolveTask.kt:436)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolveTask.runResolverForQualifierReceiver(FirTowerResolveTask.kt:180)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver$enqueueResolutionTasks$1.invokeSuspend(FirTowerResolver.kt:58)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerResolveManager.resumeTask(TowerResolveManager.kt:77)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerResolveManager.runTasks(TowerResolveManager.kt:83)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver.runResolver(FirTowerResolver.kt:37)
at org.jetbrains.kotlin.fir.FirCallResolver.resolveCallableReference(FirCallResolver.kt:365)
at org.jetbrains.kotlin.fir.resolve.calls.EagerResolveOfCallableReferences.check(ResolutionStages.kt:396)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner$processCandidate$1.invokeSuspend(ResolutionStageRunner.kt:24)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner.processCandidate(ResolutionStageRunner.kt:37)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner.processCandidate$default(ResolutionStageRunner.kt:17)
at org.jetbrains.kotlin.fir.resolve.calls.CandidateCollector.consumeCandidate(CandidateCollector.kt:34)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerScopeLevelProcessor.consumeCandidate(TowerLevelHandler.kt:82)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerScopeLevel$TowerScopeLevelProcessor$DefaultImpls.consumeCandidate$default(TowerLevels.kt:54)
at org.jetbrains.kotlin.fir.resolve.calls.tower.ScopeTowerLevel.consumeCallableCandidate(TowerLevels.kt:297)
at org.jetbrains.kotlin.fir.resolve.calls.tower.ScopeTowerLevel.access$consumeCallableCandidate(TowerLevels.kt:218)
at org.jetbrains.kotlin.fir.resolve.calls.tower.ScopeTowerLevel$processFunctionsByName$1.invoke(TowerLevels.kt:317)
at org.jetbrains.kotlin.fir.resolve.calls.tower.ScopeTowerLevel$processFunctionsByName$1.invoke(TowerLevels.kt:310)
at org.jetbrains.kotlin.fir.scopes.impl.FirPackageMemberScope.processFunctionsByName(FirPackageMemberScope.kt:53)
at org.jetbrains.kotlin.fir.resolve.calls.ConstructorProcessingKt.processFunctionsAndConstructorsByName(ConstructorProcessing.kt:73)
at org.jetbrains.kotlin.fir.resolve.calls.tower.ScopeTowerLevel.processFunctionsByName(TowerLevels.kt:310)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerLevelHandler.handleLevel(TowerLevelHandler.kt:53)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask.processLevel(FirTowerResolveTask.kt:132)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask.access$processLevel(FirTowerResolveTask.kt:53)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask$processLevel$3.invokeSuspend(FirTowerResolveTask.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerResolveManager.resumeTask(TowerResolveManager.kt:77)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerResolveManager.runTasks(TowerResolveManager.kt:83)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver.runResolver(FirTowerResolver.kt:37)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver.runResolver$default(FirTowerResolver.kt:27)
at org.jetbrains.kotlin.fir.FirCallResolver.collectCandidates(FirCallResolver.kt:184)
at org.jetbrains.kotlin.fir.FirCallResolver.collectCandidates$default(FirCallResolver.kt:160)
at org.jetbrains.kotlin.fir.FirCallResolver.resolveCallAndSelectCandidate(FirCallResolver.kt:86)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:367)
... 145 more
@@ -8,7 +8,7 @@ inline fun <reified Self : DatabaseEntity, reified Target : DatabaseEntity> Self
property: KProperty1<Target, MutableCollection<Self>>): Delegate<Self, Target?> = TODO()
class GitLabBuildProcessor: DatabaseEntity {
var processor by parent(GitLabChangesProcessor::buildProcessors)
var processor by <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>parent<!>(GitLabChangesProcessor::buildProcessors)
}
interface DatabaseEntity: Entity
@@ -32,4 +32,4 @@ class GitLabChangesProcessor: DatabaseEntity {
fun <Self : DatabaseEntity, Target : DatabaseEntity> Self.child_many(
clazz: Class<Target>, property: KProperty1<Target, Self?>, name: String = property.name
): Delegate<Self, MutableCollection<Target>> = TODO() // Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly
): Delegate<Self, MutableCollection<Target>> = TODO() // Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly
@@ -1,151 +0,0 @@
java.lang.RuntimeException: While resolving call parent#(Q|GitLabChangesProcessor|::buildProcessors#)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:375)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:123)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFunctionCall(FirBodyResolveTransformer.kt:27)
at org.jetbrains.kotlin.fir.expressions.FirFunctionCall.transform(FirFunctionCall.kt:38)
at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformSingle(FirTransformerUtil.kt:12)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformWrappedDelegateExpression(FirDeclarationsResolveTransformer.kt:307)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformWrappedDelegateExpression(FirBodyResolveTransformer.kt:205)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformWrappedDelegateExpression(FirBodyResolveTransformer.kt:27)
at org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression.transform(FirWrappedDelegateExpression.kt:29)
at org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl.transformDelegate(FirPropertyImpl.kt:121)
at org.jetbrains.kotlin.fir.declarations.impl.FirPropertyImpl.transformDelegate(FirPropertyImpl.kt:37)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformPropertyAccessorsWithDelegate(FirDeclarationsResolveTransformer.kt:273)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.access$transformPropertyAccessorsWithDelegate(FirDeclarationsResolveTransformer.kt:53)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformProperty(FirDeclarationsResolveTransformer.kt:158)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformProperty(FirBodyResolveTransformer.kt:279)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer.access$transformProperty$s-1523881058(FirImplicitBodyResolve.kt:130)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer$transformProperty$1.invoke(FirImplicitBodyResolve.kt:159)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer$transformProperty$1.invoke(FirImplicitBodyResolve.kt:158)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer.computeCachedTransformationResult(FirImplicitBodyResolve.kt:187)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer.transformProperty(FirImplicitBodyResolve.kt:158)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwareBodyResolveTransformer.transformProperty(FirImplicitBodyResolve.kt:130)
at org.jetbrains.kotlin.fir.declarations.FirProperty.transform(FirProperty.kt:59)
at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformInplace(FirTransformerUtil.kt:19)
at org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl.transformDeclarations(FirRegularClassImpl.kt:88)
at org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl.transformChildren(FirRegularClassImpl.kt:70)
at org.jetbrains.kotlin.fir.declarations.impl.FirRegularClassImpl.transformChildren(FirRegularClassImpl.kt:32)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:61)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:264)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformDeclarationContent(FirDeclarationsResolveTransformer.kt:72)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.access$transformDeclarationContent(FirDeclarationsResolveTransformer.kt:53)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$doTransformRegularClass$result$1.invoke(FirDeclarationsResolveTransformer.kt:511)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer$doTransformRegularClass$result$1.invoke(FirDeclarationsResolveTransformer.kt:510)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext$withRegularClass$2$1.invoke(BodyResolveContext.kt:791)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.withScopesForClass(BodyResolveContext.kt:489)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.withRegularClass(BodyResolveContext.kt:403)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.BodyResolveContext.withRegularClass$default(BodyResolveContext.kt:382)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.doTransformRegularClass(FirDeclarationsResolveTransformer.kt:510)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirDeclarationsResolveTransformer.transformRegularClass(FirDeclarationsResolveTransformer.kt:483)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformRegularClass(FirBodyResolveTransformer.kt:294)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformRegularClass(FirBodyResolveTransformer.kt:27)
at org.jetbrains.kotlin.fir.declarations.FirRegularClass.transform(FirRegularClass.kt:49)
at org.jetbrains.kotlin.fir.visitors.FirTransformerUtilKt.transformInplace(FirTransformerUtil.kt:19)
at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformDeclarations(FirFileImpl.kt:72)
at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:57)
at org.jetbrains.kotlin.fir.declarations.impl.FirFileImpl.transformChildren(FirFileImpl.kt:26)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformElement(FirBodyResolveTransformer.kt:61)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformDeclarationContent(FirBodyResolveTransformer.kt:264)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFile(FirBodyResolveTransformer.kt:55)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirBodyResolveTransformer.transformFile(FirBodyResolveTransformer.kt:27)
at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:39)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitTypeBodyResolveTransformerAdapter.transformFile(FirImplicitBodyResolve.kt:57)
at org.jetbrains.kotlin.fir.declarations.FirFile.transform(FirFile.kt:39)
at org.jetbrains.kotlin.fir.resolve.transformers.FirTransformerBasedResolveProcessor.processFile(FirResolveProcessor.kt:33)
at org.jetbrains.kotlin.fir.resolve.transformers.FirTotalResolveProcessor.process(FirTotalResolveProcessor.kt:34)
at org.jetbrains.kotlin.fir.analysis.FirAnalyzerFacade.runResolution(FirAnalyzerFacade.kt:84)
at org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade.analyze(FirFrontendFacade.kt:125)
at org.jetbrains.kotlin.test.frontend.fir.FirFrontendFacade.analyze(FirFrontendFacade.kt:42)
at org.jetbrains.kotlin.test.model.FrontendFacade.transform(Facades.kt:43)
at org.jetbrains.kotlin.test.model.FrontendFacade.transform(Facades.kt:28)
at org.jetbrains.kotlin.test.TestStep$FacadeStep.processModule(TestStep.kt:33)
at org.jetbrains.kotlin.test.TestRunner.processModule(TestRunner.kt:200)
at org.jetbrains.kotlin.test.TestRunner.hackyProcessModule(TestRunner.kt:191)
at org.jetbrains.kotlin.test.TestRunner.processModule(TestRunner.kt:133)
at org.jetbrains.kotlin.test.TestRunner.runTestPipeline(TestRunner.kt:85)
... 87 more
Caused by: java.lang.AssertionError: Not singleClassifierType and not intersection subType: TypeVariable(Target)
at org.jetbrains.kotlin.resolve.calls.inference.components.TypeCheckerStateForConstraintSystem.assertInputTypes(TypeCheckerStateForConstraintSystem.kt:360)
at org.jetbrains.kotlin.resolve.calls.inference.components.TypeCheckerStateForConstraintSystem.internalAddSubtypeConstraint(TypeCheckerStateForConstraintSystem.kt:124)
at org.jetbrains.kotlin.resolve.calls.inference.components.TypeCheckerStateForConstraintSystem.addSubtypeConstraint(TypeCheckerStateForConstraintSystem.kt:79)
at org.jetbrains.kotlin.types.AbstractTypeChecker.completeIsSubTypeOf(AbstractTypeChecker.kt:282)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf(AbstractTypeChecker.kt:244)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf$default(AbstractTypeChecker.kt:234)
at org.jetbrains.kotlin.types.AbstractTypeChecker.equalTypes(AbstractTypeChecker.kt:263)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeForSameConstructor(AbstractTypeChecker.kt:469)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOfForSingleClassifierType(AbstractTypeChecker.kt:373)
at org.jetbrains.kotlin.types.AbstractTypeChecker.completeIsSubTypeOf(AbstractTypeChecker.kt:284)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf(AbstractTypeChecker.kt:244)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf$default(AbstractTypeChecker.kt:234)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeForSameConstructor(AbstractTypeChecker.kt:470)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOfForSingleClassifierType(AbstractTypeChecker.kt:373)
at org.jetbrains.kotlin.types.AbstractTypeChecker.completeIsSubTypeOf(AbstractTypeChecker.kt:284)
at org.jetbrains.kotlin.types.AbstractTypeChecker.isSubtypeOf(AbstractTypeChecker.kt:244)
at org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintInjector$TypeCheckerStateForConstraintInjector.runIsSubtypeOf$isSubtypeOf(ConstraintInjector.kt:379)
at org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintInjector$TypeCheckerStateForConstraintInjector.runIsSubtypeOf(ConstraintInjector.kt:386)
at org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintInjector$TypeCheckerStateForConstraintInjector.runIsSubtypeOf$default(ConstraintInjector.kt:372)
at org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintInjector.addSubTypeConstraintAndIncorporateIt(ConstraintInjector.kt:99)
at org.jetbrains.kotlin.resolve.calls.inference.components.ConstraintInjector.addInitialSubtypeConstraint(ConstraintInjector.kt:59)
at org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImpl.addSubtypeConstraint(NewConstraintSystemImpl.kt:166)
at org.jetbrains.kotlin.fir.resolve.calls.CheckCallableReferenceExpectedType$check$2.invoke(CallableReferenceResolution.kt:67)
at org.jetbrains.kotlin.fir.resolve.calls.CheckCallableReferenceExpectedType$check$2.invoke(CallableReferenceResolution.kt:61)
at org.jetbrains.kotlin.fir.resolve.calls.CheckCallableReferenceExpectedType$check$3.invoke(CallableReferenceResolution.kt:83)
at org.jetbrains.kotlin.fir.resolve.calls.CheckCallableReferenceExpectedType$check$3.invoke(CallableReferenceResolution.kt:82)
at org.jetbrains.kotlin.resolve.calls.inference.model.NewConstraintSystemImpl.runTransaction(NewConstraintSystemImpl.kt:216)
at org.jetbrains.kotlin.fir.resolve.calls.CheckCallableReferenceExpectedType.check(CallableReferenceResolution.kt:82)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner$processCandidate$1.invokeSuspend(ResolutionStageRunner.kt:24)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner.processCandidate(ResolutionStageRunner.kt:37)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner.processCandidate$default(ResolutionStageRunner.kt:17)
at org.jetbrains.kotlin.fir.resolve.calls.CandidateCollector.consumeCandidate(CandidateCollector.kt:34)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerScopeLevelProcessor.consumeCandidate(TowerLevelHandler.kt:82)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerScopeLevel$TowerScopeLevelProcessor$DefaultImpls.consumeCandidate$default(TowerLevels.kt:54)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processMembers$1.invoke(TowerLevels.kt:103)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processMembers$1.invoke(TowerLevels.kt:93)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processPropertiesByName$1$1$1.invoke(TowerLevels.kt:169)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processPropertiesByName$1$1$1.invoke(TowerLevels.kt:165)
at org.jetbrains.kotlin.fir.scopes.impl.AbstractFirUseSiteMemberScope.processPropertiesByName(AbstractFirUseSiteMemberScope.kt:67)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processPropertiesByName$1.invoke(TowerLevels.kt:165)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel$processPropertiesByName$1.invoke(TowerLevels.kt:162)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel.processMembers(TowerLevels.kt:93)
at org.jetbrains.kotlin.fir.resolve.calls.tower.MemberScopeTowerLevel.processPropertiesByName(TowerLevels.kt:162)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerLevelHandler.handleLevel(TowerLevelHandler.kt:57)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask.processLevel(FirTowerResolveTask.kt:132)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask.access$processLevel(FirTowerResolveTask.kt:53)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolveTask.runResolverForExpressionReceiver(FirTowerResolveTask.kt:436)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolveTask.runResolverForQualifierReceiver(FirTowerResolveTask.kt:180)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver$enqueueResolutionTasks$1.invokeSuspend(FirTowerResolver.kt:58)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerResolveManager.resumeTask(TowerResolveManager.kt:77)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerResolveManager.runTasks(TowerResolveManager.kt:83)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver.runResolver(FirTowerResolver.kt:37)
at org.jetbrains.kotlin.fir.FirCallResolver.resolveCallableReference(FirCallResolver.kt:365)
at org.jetbrains.kotlin.fir.resolve.calls.EagerResolveOfCallableReferences.check(ResolutionStages.kt:402)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner$processCandidate$1.invokeSuspend(ResolutionStageRunner.kt:24)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner.processCandidate(ResolutionStageRunner.kt:37)
at org.jetbrains.kotlin.fir.resolve.calls.ResolutionStageRunner.processCandidate$default(ResolutionStageRunner.kt:17)
at org.jetbrains.kotlin.fir.resolve.calls.CandidateCollector.consumeCandidate(CandidateCollector.kt:34)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerScopeLevelProcessor.consumeCandidate(TowerLevelHandler.kt:82)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerScopeLevel$TowerScopeLevelProcessor$DefaultImpls.consumeCandidate$default(TowerLevels.kt:54)
at org.jetbrains.kotlin.fir.resolve.calls.tower.ScopeTowerLevel.consumeCallableCandidate(TowerLevels.kt:297)
at org.jetbrains.kotlin.fir.resolve.calls.tower.ScopeTowerLevel.access$consumeCallableCandidate(TowerLevels.kt:218)
at org.jetbrains.kotlin.fir.resolve.calls.tower.ScopeTowerLevel$processFunctionsByName$1.invoke(TowerLevels.kt:317)
at org.jetbrains.kotlin.fir.resolve.calls.tower.ScopeTowerLevel$processFunctionsByName$1.invoke(TowerLevels.kt:310)
at org.jetbrains.kotlin.fir.scopes.impl.FirPackageMemberScope.processFunctionsByName(FirPackageMemberScope.kt:53)
at org.jetbrains.kotlin.fir.resolve.calls.ConstructorProcessingKt.processFunctionsAndConstructorsByName(ConstructorProcessing.kt:73)
at org.jetbrains.kotlin.fir.resolve.calls.tower.ScopeTowerLevel.processFunctionsByName(TowerLevels.kt:310)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerLevelHandler.handleLevel(TowerLevelHandler.kt:53)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask.processLevel(FirTowerResolveTask.kt:132)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask.access$processLevel(FirTowerResolveTask.kt:53)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirBaseTowerResolveTask$processLevel$3.invokeSuspend(FirTowerResolveTask.kt)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerResolveManager.resumeTask(TowerResolveManager.kt:77)
at org.jetbrains.kotlin.fir.resolve.calls.tower.TowerResolveManager.runTasks(TowerResolveManager.kt:83)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver.runResolver(FirTowerResolver.kt:37)
at org.jetbrains.kotlin.fir.resolve.calls.tower.FirTowerResolver.runResolver$default(FirTowerResolver.kt:27)
at org.jetbrains.kotlin.fir.FirCallResolver.collectCandidates(FirCallResolver.kt:184)
at org.jetbrains.kotlin.fir.FirCallResolver.collectCandidates$default(FirCallResolver.kt:160)
at org.jetbrains.kotlin.fir.FirCallResolver.resolveCallAndSelectCandidate(FirCallResolver.kt:86)
at org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirExpressionsResolveTransformer.transformFunctionCall(FirExpressionsResolveTransformer.kt:367)
... 150 more
@@ -9,7 +9,7 @@ inline fun <reified Self : DatabaseEntity, reified Target : DatabaseEntity> Self
property: KProperty1<Target, MutableCollection<Self>>): Delegate<Self, Target?> = TODO()
class GitLabBuildProcessor: DatabaseEntity {
var processor by parent(GitLabChangesProcessor::buildProcessors)
var processor by <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>parent<!>(GitLabChangesProcessor::buildProcessors)
}
interface DatabaseEntity: Entity
@@ -33,4 +33,4 @@ class GitLabChangesProcessor: DatabaseEntity {
fun <Self : DatabaseEntity, Target : DatabaseEntity> Self.child_many(
clazz: Class<Target>, property: KProperty1<Target, Self?>, name: String = property.name
): Delegate<Self, MutableCollection<Target>> = TODO() // Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly
): Delegate<Self, MutableCollection<Target>> = TODO() // Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly
@@ -0,0 +1,40 @@
// WITH_REFLECT
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty1
class ProcessorWithParent : Entity {
var processor by <!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>parent<!>(ProcessorWithChildren::processors)
}
class ProcessorWithChildren : Entity {
var processors by <!INAPPLICABLE_CANDIDATE!>children<!>(ProcessorWithParent::class.java, ProcessorWithParent::<!UNRESOLVED_REFERENCE!>processor<!>)
}
class Processor2WithParent : Entity {
var processor: Processor2WithChildren? by parent(Processor2WithChildren::processors)
}
class Processor2WithChildren : Entity {
var processors by children(Processor2WithParent::class.java, Processor2WithParent::processor)
}
class Processor3WithParent : Entity {
var processor by parent(Processor3WithChildren::processors)
}
class Processor3WithChildren : Entity {
var processors: MutableCollection<Processor3WithParent> by children(Processor3WithParent::class.java, Processor3WithParent::processor)
}
inline fun <reified SP : Entity, reified TP : Entity> SP.parent(
property: KProperty1<TP, MutableCollection<SP>>
): Delegate<SP, TP?> = null!!
fun <SC : Entity, TC : Entity> SC.children(
clazz: Class<TC>, property: KProperty1<TC, SC?>, name: String = property.name
): Delegate<SC, MutableCollection<TC>> = null!!
interface Delegate<R : Entity, T> : ReadWriteProperty<R, T>
interface Entity
@@ -0,0 +1,40 @@
// WITH_REFLECT
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty1
class ProcessorWithParent : Entity {
var processor by parent(ProcessorWithChildren::processors)
}
class ProcessorWithChildren : Entity {
var processors by <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>children(ProcessorWithParent::class.java, ProcessorWithParent::processor)<!>
}
class Processor2WithParent : Entity {
var processor: Processor2WithChildren? by parent(Processor2WithChildren::processors)
}
class Processor2WithChildren : Entity {
var processors by children(Processor2WithParent::class.java, Processor2WithParent::processor)
}
class Processor3WithParent : Entity {
var processor by parent(Processor3WithChildren::processors)
}
class Processor3WithChildren : Entity {
var processors: MutableCollection<Processor3WithParent> by children(Processor3WithParent::class.java, Processor3WithParent::processor)
}
inline fun <reified SP : Entity, reified TP : Entity> SP.parent(
property: KProperty1<TP, MutableCollection<SP>>
): Delegate<SP, TP?> = null!!
fun <SC : Entity, TC : Entity> SC.children(
clazz: Class<TC>, property: KProperty1<TC, SC?>, name: String = property.name
): Delegate<SC, MutableCollection<TC>> = null!!
interface Delegate<R : Entity, T> : ReadWriteProperty<R, T>
interface Entity
@@ -0,0 +1,66 @@
package
public fun </*0*/ SC : Entity, /*1*/ TC : Entity> SC.children(/*0*/ clazz: java.lang.Class<TC>, /*1*/ property: kotlin.reflect.KProperty1<TC, SC?>, /*2*/ name: kotlin.String = ...): Delegate<SC, kotlin.collections.MutableCollection<TC>>
public inline fun </*0*/ reified SP : Entity, /*1*/ reified TP : Entity> SP.parent(/*0*/ property: kotlin.reflect.KProperty1<TP, kotlin.collections.MutableCollection<SP>>): Delegate<SP, TP?>
public interface Delegate</*0*/ R : Entity, /*1*/ T> : kotlin.properties.ReadWriteProperty<R, T> {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract override /*1*/ /*fake_override*/ fun getValue(/*0*/ thisRef: R, /*1*/ property: kotlin.reflect.KProperty<*>): T
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract override /*1*/ /*fake_override*/ fun setValue(/*0*/ thisRef: R, /*1*/ property: kotlin.reflect.KProperty<*>, /*2*/ value: T): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface Entity {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Processor2WithChildren : Entity {
public constructor Processor2WithChildren()
public final var processors: kotlin.collections.MutableCollection<Processor2WithParent>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Processor2WithParent : Entity {
public constructor Processor2WithParent()
public final var processor: Processor2WithChildren?
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Processor3WithChildren : Entity {
public constructor Processor3WithChildren()
public final var processors: kotlin.collections.MutableCollection<Processor3WithParent>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class Processor3WithParent : Entity {
public constructor Processor3WithParent()
public final var processor: Processor3WithChildren?
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class ProcessorWithChildren : Entity {
public constructor ProcessorWithChildren()
public final var processors: kotlin.collections.MutableCollection<ProcessorWithParent>
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class ProcessorWithParent : Entity {
public constructor ProcessorWithParent()
public final var processor: ProcessorWithChildren?
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -37458,6 +37458,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
public void testKt32249() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt32249.kt");
}
@Test
@TestMetadata("kt50994.kt")
public void testKt50994() throws Exception {
runTest("compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.kt");
}
}
@Nested