diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java index d133484b580..c0d6f968906 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosisCompilerTestFE10TestdataTestGenerated.java @@ -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 diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java index 76151d92cdc..385b8520885 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsTestGenerated.java @@ -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 diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java index 223d6821c5f..777e4cdf34e 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirOldFrontendDiagnosticsWithLightTreeTestGenerated.java @@ -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 diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt index 6a2aa6c26f0..d2c61dc8bbb 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt @@ -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) } diff --git a/compiler/testData/diagnostics/tests/delegation/kt49477.fir.fail b/compiler/testData/diagnostics/tests/delegation/kt49477.fir.fail deleted file mode 100644 index e7b302aa460..00000000000 --- a/compiler/testData/diagnostics/tests/delegation/kt49477.fir.fail +++ /dev/null @@ -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 diff --git a/compiler/testData/diagnostics/tests/delegation/kt49477.fir.kt b/compiler/testData/diagnostics/tests/delegation/kt49477.fir.kt index ed6fbf2bcb9..1e4e2b93591 100644 --- a/compiler/testData/diagnostics/tests/delegation/kt49477.fir.kt +++ b/compiler/testData/diagnostics/tests/delegation/kt49477.fir.kt @@ -8,7 +8,7 @@ inline fun Self property: KProperty1>): Delegate = TODO() class GitLabBuildProcessor: DatabaseEntity { - var processor by parent(GitLabChangesProcessor::buildProcessors) + var processor by parent(GitLabChangesProcessor::buildProcessors) } interface DatabaseEntity: Entity @@ -32,4 +32,4 @@ class GitLabChangesProcessor: DatabaseEntity { fun Self.child_many( clazz: Class, property: KProperty1, name: String = property.name -): Delegate> = TODO() // Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly \ No newline at end of file +): Delegate> = TODO() // Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly diff --git a/compiler/testData/diagnostics/tests/delegation/kt49477Error.fir.fail b/compiler/testData/diagnostics/tests/delegation/kt49477Error.fir.fail deleted file mode 100644 index 6fc265e9fd9..00000000000 --- a/compiler/testData/diagnostics/tests/delegation/kt49477Error.fir.fail +++ /dev/null @@ -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 diff --git a/compiler/testData/diagnostics/tests/delegation/kt49477Error.fir.kt b/compiler/testData/diagnostics/tests/delegation/kt49477Error.fir.kt index 403866e6034..22ee3be0439 100644 --- a/compiler/testData/diagnostics/tests/delegation/kt49477Error.fir.kt +++ b/compiler/testData/diagnostics/tests/delegation/kt49477Error.fir.kt @@ -9,7 +9,7 @@ inline fun Self property: KProperty1>): Delegate = TODO() class GitLabBuildProcessor: DatabaseEntity { - var processor by parent(GitLabChangesProcessor::buildProcessors) + var processor by parent(GitLabChangesProcessor::buildProcessors) } interface DatabaseEntity: Entity @@ -33,4 +33,4 @@ class GitLabChangesProcessor: DatabaseEntity { fun Self.child_many( clazz: Class, property: KProperty1, name: String = property.name -): Delegate> = TODO() // Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly \ No newline at end of file +): Delegate> = TODO() // Type checking has run into a recursive problem. Easiest workaround: specify types of your declarations explicitly diff --git a/compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.fir.kt b/compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.fir.kt new file mode 100644 index 00000000000..3bbcab8e72f --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.fir.kt @@ -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 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 by children(Processor3WithParent::class.java, Processor3WithParent::processor) +} + +inline fun SP.parent( + property: KProperty1> +): Delegate = null!! + +fun SC.children( + clazz: Class, property: KProperty1, name: String = property.name +): Delegate> = null!! + +interface Delegate : ReadWriteProperty + +interface Entity diff --git a/compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.kt b/compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.kt new file mode 100644 index 00000000000..15832df530a --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.kt @@ -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 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 by children(Processor3WithParent::class.java, Processor3WithParent::processor) +} + +inline fun SP.parent( + property: KProperty1> +): Delegate = null!! + +fun SC.children( + clazz: Class, property: KProperty1, name: String = property.name +): Delegate> = null!! + +interface Delegate : ReadWriteProperty + +interface Entity diff --git a/compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.txt b/compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.txt new file mode 100644 index 00000000000..44e5230e3aa --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/inference/delegates/kt50994.txt @@ -0,0 +1,66 @@ +package + +public fun SC.children(/*0*/ clazz: java.lang.Class, /*1*/ property: kotlin.reflect.KProperty1, /*2*/ name: kotlin.String = ...): Delegate> +public inline fun SP.parent(/*0*/ property: kotlin.reflect.KProperty1>): Delegate + +public interface Delegate : kotlin.properties.ReadWriteProperty { + 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 + 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 + 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 + 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 +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 72e6d3d6b2f..16de95b35f1 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -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