Replace errors with warnings for type checker recursion on delegates

^KT-49477 Fixed
This commit is contained in:
Victor Petukhov
2021-10-29 17:26:03 +03:00
committed by teamcity
parent a4a2f71fca
commit 72a78eb423
36 changed files with 749 additions and 48 deletions
@@ -8488,6 +8488,18 @@ public class DiagnosisCompilerTestFE10TestdataTestGenerated extends AbstractDiag
runTest("compiler/testData/diagnostics/tests/delegation/kt44843.kt");
}
@Test
@TestMetadata("kt49477.kt")
public void testKt49477() throws Exception {
runTest("compiler/testData/diagnostics/tests/delegation/kt49477.kt");
}
@Test
@TestMetadata("kt49477Error.kt")
public void testKt49477Error() throws Exception {
runTest("compiler/testData/diagnostics/tests/delegation/kt49477Error.kt");
}
@Test
@TestMetadata("kt8154.kt")
public void testKt8154() throws Exception {
@@ -8488,6 +8488,18 @@ public class FirOldFrontendDiagnosticsTestGenerated extends AbstractFirDiagnosti
runTest("compiler/testData/diagnostics/tests/delegation/kt44843.kt");
}
@Test
@TestMetadata("kt49477.kt")
public void testKt49477() throws Exception {
runTest("compiler/testData/diagnostics/tests/delegation/kt49477.kt");
}
@Test
@TestMetadata("kt49477Error.kt")
public void testKt49477Error() throws Exception {
runTest("compiler/testData/diagnostics/tests/delegation/kt49477Error.kt");
}
@Test
@TestMetadata("kt8154.kt")
public void testKt8154() throws Exception {
@@ -8488,6 +8488,18 @@ public class FirOldFrontendDiagnosticsWithLightTreeTestGenerated extends Abstrac
runTest("compiler/testData/diagnostics/tests/delegation/kt44843.kt");
}
@Test
@TestMetadata("kt49477.kt")
public void testKt49477() throws Exception {
runTest("compiler/testData/diagnostics/tests/delegation/kt49477.kt");
}
@Test
@TestMetadata("kt49477Error.kt")
public void testKt49477Error() throws Exception {
runTest("compiler/testData/diagnostics/tests/delegation/kt49477Error.kt");
}
@Test
@TestMetadata("kt8154.kt")
public void testKt8154() throws Exception {
@@ -791,7 +791,7 @@ public interface Errors {
DiagnosticFactory1<PsiElement, String> NAME_SHADOWING = DiagnosticFactory1.create(WARNING, PositioningStrategies.FOR_REDECLARATION);
DiagnosticFactory0<PsiElement> ACCESSOR_PARAMETER_NAME_SHADOWING = DiagnosticFactory0.create(WARNING);
DiagnosticFactory0<KtExpression> TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM = DiagnosticFactory0.create(ERROR);
DiagnosticFactoryForDeprecation0<KtExpression> TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM = DiagnosticFactoryForDeprecation0.create(LanguageFeature.ForbidRecursiveDelegateExpressions);
// Checking call arguments
@@ -541,6 +541,21 @@ class DelegatedPropertyResolver(
return delegateType
}
private fun completeNotComputedDelegateType(trace: BindingTrace, traceToResolveDelegatedProperty: TemporaryBindingTrace) {
val ranIntoRecursionDiagnostic = traceToResolveDelegatedProperty.bindingContext.diagnostics.find {
it.factory == TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM.errorFactory
|| it.factory == TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM.warningFactory
}
if (ranIntoRecursionDiagnostic != null) {
trace.report(
TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM.on(
languageVersionSettings,
ranIntoRecursionDiagnostic.psiElement as KtExpression
)
)
}
}
private fun resolveWithNewInference(
delegateExpression: KtExpression,
variableDescriptor: VariableDescriptorWithAccessors,
@@ -561,7 +576,7 @@ class DelegatedPropertyResolver(
)
var delegateType = delegateTypeInfo.type ?: run {
traceToResolveDelegatedProperty.commit()
completeNotComputedDelegateType(trace, traceToResolveDelegatedProperty)
return null
}
@@ -196,7 +196,7 @@ public abstract class ExpressionTypingVisitorDispatcher extends KtVisitor<Kotlin
context.trace.record(BindingContext.EXPRESSION_TYPE_INFO, expression, result);
}
catch (ReenteringLazyValueComputationException e) {
context.trace.report(TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM.on(expression));
context.trace.report(TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM.onError(expression));
result = TypeInfoFactoryKt.noTypeInfo(context);
}
@@ -211,7 +211,7 @@ public abstract class ExpressionTypingVisitorDispatcher extends KtVisitor<Kotlin
recordTypeInfo(expression, result);
}
catch (ReenteringLazyValueComputationException e) {
context.trace.report(TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM.on(expression));
context.trace.report(TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM.onError(expression));
return TypeInfoFactoryKt.noTypeInfo(context);
}
return result;
@@ -14,5 +14,5 @@ class B {
class C {
val bar = <!DEBUG_INFO_MISSING_UNRESOLVED!>test<!>()
val test = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()<!>
val test = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()<!>
}
+4 -4
View File
@@ -32,7 +32,7 @@ class Test2<A, B, C>(foo: Any?, bar: Any?) {
class Test3<in A, B, C>(foo: Any?, bar: Any?) {
val foo = foo ?: <!DEBUG_INFO_LEAKING_THIS!>this<!>
private val bar = bar ?: <!DEBUG_INFO_LEAKING_THIS!>this<!>
private val bas = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bas<!>()<!>
private val bas = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bas<!>()<!>
val bas2 = bas2()
private fun bas(): Int = null!!
@@ -40,14 +40,14 @@ class Test3<in A, B, C>(foo: Any?, bar: Any?) {
fun bar() = bar(1)
fun bar(i: Int) = 2
private fun bar2() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>(1)<!>
private fun bar2() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>(1)<!>
private fun bar2(i: Int) = 2
}
class Test4<A, out B, C>(foo: Any?, bar: Any?) {
val foo = foo ?: <!DEBUG_INFO_LEAKING_THIS!>this<!>
private val bar = bar ?: <!DEBUG_INFO_LEAKING_THIS!>this<!>
private val bas = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bas<!>()<!>
private val bas = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bas<!>()<!>
val bas2 = bas2()
private fun bas(): Int = null!!
@@ -55,7 +55,7 @@ class Test4<A, out B, C>(foo: Any?, bar: Any?) {
fun bar() = bar(1)
fun bar(i: Int) = 2
private fun bar2() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>(1)<!>
private fun bar2() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>(1)<!>
private fun bar2(i: Int) = 2
}
@@ -4,19 +4,19 @@
package a
val foo = bar()
fun bar() = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>foo<!>
fun bar() = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>foo<!>
// FILE: b.kt
package b
fun foo() = bar()
fun bar() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>()<!>
fun bar() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>()<!>
// FILE: c.kt
package c
fun bazz() = bar()
fun foo() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bazz<!>()<!>
fun foo() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bazz<!>()<!>
fun bar() = foo()
@@ -240,7 +240,7 @@ class Outer() {
}
class ForwardAccessToBackingField() { //kt-147
val a = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>a<!> // error
val a = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>a<!> // error
val b = <!UNINITIALIZED_VARIABLE!>c<!> // error
val c = 1
}
@@ -3,12 +3,12 @@
import kotlin.reflect.KProperty
val a by <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>a<!>
val a by <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_WARNING, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_WARNING!>a<!>
val b by Delegate(<!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>b<!>)
val b by Delegate(<!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>b<!>)
val c by <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE, UNINITIALIZED_VARIABLE!>d<!>
val d by <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>c<!>
val d by <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>c<!>
class Delegate(i: Int) {
operator fun getValue(t: Any?, p: KProperty<*>): Int {
+2 -2
View File
@@ -1,13 +1,13 @@
// WITH_STDLIB
// FILE: test.kt
val bar2 by <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>()<!>
val bar2 by <!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>()
// FILE: lt/neworld/compiler/Foo.kt
package lt.neworld.compiler
class Foo {
val bar by <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()<!>
val bar by <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_WARNING, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_WARNING!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()<!>
}
// FILE: lt/neworld/compiler/bar/Bar.kt
@@ -0,0 +1,232 @@
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
@@ -0,0 +1,35 @@
// WITH_STDLIB
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
import kotlin.reflect.KProperty1
inline fun <reified Self : DatabaseEntity, reified Target : DatabaseEntity> Self.parent(
property: KProperty1<Target, MutableCollection<Self>>): Delegate<Self, Target?> = TODO()
class GitLabBuildProcessor: DatabaseEntity {
var processor by parent(GitLabChangesProcessor::buildProcessors)
}
interface DatabaseEntity: Entity
interface Entity
interface ResourceFactory<T, R>
interface ValueFilter<K>
interface Delegate<R : Entity, T> : ReadWriteProperty<R, T>, ValueFilter<R> {
infix fun name(desc: KProperty<*>): String
infix fun by(name: String): Delegate<R, T>
infix fun resource(factory: ResourceFactory<R, T>): Delegate<R, T>
infix fun filter(filter: (R, Any?) -> Boolean): Delegate<R, T>
}
class GitLabChangesProcessor: DatabaseEntity {
var buildProcessors by <!INAPPLICABLE_CANDIDATE!>child_many<!>(
GitLabBuildProcessor::class.java,
GitLabBuildProcessor::<!UNRESOLVED_REFERENCE!>processor<!>
)
}
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
@@ -0,0 +1,35 @@
// WITH_STDLIB
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
import kotlin.reflect.KProperty1
inline fun <reified Self : DatabaseEntity, reified Target : DatabaseEntity> Self.parent(
property: KProperty1<Target, MutableCollection<Self>>): Delegate<Self, Target?> = TODO()
class GitLabBuildProcessor: DatabaseEntity {
var processor by <!DEBUG_INFO_EXPRESSION_TYPE("Delegate<GitLabBuildProcessor, GitLabChangesProcessor?>")!>parent(GitLabChangesProcessor::buildProcessors)<!>
}
interface DatabaseEntity: Entity
interface Entity
interface ResourceFactory<T, R>
interface ValueFilter<K>
interface Delegate<R : Entity, T> : ReadWriteProperty<R, T>, ValueFilter<R> {
infix fun name(desc: KProperty<*>): String
infix fun by(name: String): Delegate<R, T>
infix fun resource(factory: ResourceFactory<R, T>): Delegate<R, T>
infix fun filter(filter: (R, Any?) -> Boolean): Delegate<R, T>
}
class GitLabChangesProcessor: DatabaseEntity {
var buildProcessors by <!DEBUG_INFO_EXPRESSION_TYPE("Delegate<GitLabChangesProcessor, kotlin.collections.MutableCollection<GitLabBuildProcessor>>"), TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_WARNING!>child_many(
GitLabBuildProcessor::class.java,
GitLabBuildProcessor::processor
)<!>
}
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
@@ -0,0 +1,56 @@
package
public fun </*0*/ Self : DatabaseEntity, /*1*/ Target : DatabaseEntity> Self.child_many(/*0*/ clazz: java.lang.Class<Target>, /*1*/ property: kotlin.reflect.KProperty1<Target, Self?>, /*2*/ name: kotlin.String = ...): Delegate<Self, kotlin.collections.MutableCollection<Target>>
public inline fun </*0*/ reified Self : DatabaseEntity, /*1*/ reified Target : DatabaseEntity> Self.parent(/*0*/ property: kotlin.reflect.KProperty1<Target, kotlin.collections.MutableCollection<Self>>): Delegate<Self, Target?>
public interface DatabaseEntity : 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 interface Delegate</*0*/ R : Entity, /*1*/ T> : kotlin.properties.ReadWriteProperty<R, T>, ValueFilter<R> {
public abstract infix fun by(/*0*/ name: kotlin.String): Delegate<R, T>
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract infix fun filter(/*0*/ filter: (R, kotlin.Any?) -> kotlin.Boolean): Delegate<R, T>
public abstract override /*1*/ /*fake_override*/ fun getValue(/*0*/ thisRef: R, /*1*/ property: kotlin.reflect.KProperty<*>): T
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract infix fun name(/*0*/ desc: kotlin.reflect.KProperty<*>): kotlin.String
public abstract infix fun resource(/*0*/ factory: ResourceFactory<R, T>): Delegate<R, T>
public abstract override /*1*/ /*fake_override*/ fun setValue(/*0*/ thisRef: R, /*1*/ property: kotlin.reflect.KProperty<*>, /*2*/ value: T): kotlin.Unit
public open override /*2*/ /*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 GitLabBuildProcessor : DatabaseEntity {
public constructor GitLabBuildProcessor()
public final var processor: GitLabChangesProcessor?
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 GitLabChangesProcessor : DatabaseEntity {
public constructor GitLabChangesProcessor()
public final var buildProcessors: kotlin.collections.MutableCollection<GitLabBuildProcessor>
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 interface ResourceFactory</*0*/ T, /*1*/ R> {
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 interface ValueFilter</*0*/ K> {
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
}
@@ -0,0 +1,151 @@
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
@@ -0,0 +1,36 @@
// !LANGUAGE: +ForbidRecursiveDelegateExpressions
// WITH_STDLIB
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
import kotlin.reflect.KProperty1
inline fun <reified Self : DatabaseEntity, reified Target : DatabaseEntity> Self.parent(
property: KProperty1<Target, MutableCollection<Self>>): Delegate<Self, Target?> = TODO()
class GitLabBuildProcessor: DatabaseEntity {
var processor by parent(GitLabChangesProcessor::buildProcessors)
}
interface DatabaseEntity: Entity
interface Entity
interface ResourceFactory<T, R>
interface ValueFilter<K>
interface Delegate<R : Entity, T> : ReadWriteProperty<R, T>, ValueFilter<R> {
infix fun name(desc: KProperty<*>): String
infix fun by(name: String): Delegate<R, T>
infix fun resource(factory: ResourceFactory<R, T>): Delegate<R, T>
infix fun filter(filter: (R, Any?) -> Boolean): Delegate<R, T>
}
class GitLabChangesProcessor: DatabaseEntity {
var buildProcessors by <!INAPPLICABLE_CANDIDATE!>child_many<!>(
GitLabBuildProcessor::class.java,
GitLabBuildProcessor::<!UNRESOLVED_REFERENCE!>processor<!>
)
}
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
@@ -0,0 +1,36 @@
// !LANGUAGE: +ForbidRecursiveDelegateExpressions
// WITH_STDLIB
import kotlin.properties.ReadWriteProperty
import kotlin.reflect.KProperty
import kotlin.reflect.KProperty1
inline fun <reified Self : DatabaseEntity, reified Target : DatabaseEntity> Self.parent(
property: KProperty1<Target, MutableCollection<Self>>): Delegate<Self, Target?> = TODO()
class GitLabBuildProcessor: DatabaseEntity {
var processor by <!DEBUG_INFO_EXPRESSION_TYPE("Delegate<GitLabBuildProcessor, GitLabChangesProcessor?>")!>parent(GitLabChangesProcessor::buildProcessors)<!>
}
interface DatabaseEntity: Entity
interface Entity
interface ResourceFactory<T, R>
interface ValueFilter<K>
interface Delegate<R : Entity, T> : ReadWriteProperty<R, T>, ValueFilter<R> {
infix fun name(desc: KProperty<*>): String
infix fun by(name: String): Delegate<R, T>
infix fun resource(factory: ResourceFactory<R, T>): Delegate<R, T>
infix fun filter(filter: (R, Any?) -> Boolean): Delegate<R, T>
}
class GitLabChangesProcessor: DatabaseEntity {
var buildProcessors by <!DEBUG_INFO_EXPRESSION_TYPE("Delegate<GitLabChangesProcessor, kotlin.collections.MutableCollection<GitLabBuildProcessor>>"), TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>child_many(
GitLabBuildProcessor::class.java,
GitLabBuildProcessor::processor
)<!>
}
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
@@ -0,0 +1,56 @@
package
public fun </*0*/ Self : DatabaseEntity, /*1*/ Target : DatabaseEntity> Self.child_many(/*0*/ clazz: java.lang.Class<Target>, /*1*/ property: kotlin.reflect.KProperty1<Target, Self?>, /*2*/ name: kotlin.String = ...): Delegate<Self, kotlin.collections.MutableCollection<Target>>
public inline fun </*0*/ reified Self : DatabaseEntity, /*1*/ reified Target : DatabaseEntity> Self.parent(/*0*/ property: kotlin.reflect.KProperty1<Target, kotlin.collections.MutableCollection<Self>>): Delegate<Self, Target?>
public interface DatabaseEntity : 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 interface Delegate</*0*/ R : Entity, /*1*/ T> : kotlin.properties.ReadWriteProperty<R, T>, ValueFilter<R> {
public abstract infix fun by(/*0*/ name: kotlin.String): Delegate<R, T>
public open override /*2*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public abstract infix fun filter(/*0*/ filter: (R, kotlin.Any?) -> kotlin.Boolean): Delegate<R, T>
public abstract override /*1*/ /*fake_override*/ fun getValue(/*0*/ thisRef: R, /*1*/ property: kotlin.reflect.KProperty<*>): T
public open override /*2*/ /*fake_override*/ fun hashCode(): kotlin.Int
public abstract infix fun name(/*0*/ desc: kotlin.reflect.KProperty<*>): kotlin.String
public abstract infix fun resource(/*0*/ factory: ResourceFactory<R, T>): Delegate<R, T>
public abstract override /*1*/ /*fake_override*/ fun setValue(/*0*/ thisRef: R, /*1*/ property: kotlin.reflect.KProperty<*>, /*2*/ value: T): kotlin.Unit
public open override /*2*/ /*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 GitLabBuildProcessor : DatabaseEntity {
public constructor GitLabBuildProcessor()
public final var processor: GitLabChangesProcessor?
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 GitLabChangesProcessor : DatabaseEntity {
public constructor GitLabChangesProcessor()
public final var buildProcessors: kotlin.collections.MutableCollection<GitLabBuildProcessor>
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 interface ResourceFactory</*0*/ T, /*1*/ R> {
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 interface ValueFilter</*0*/ K> {
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
}
@@ -12,7 +12,7 @@ fun insideJob1() = doTheJob1()
suspend fun insideJob2() = doTheJob2()
suspend fun insideJob3() = doTheJob3()
fun doTheJob0() = simpleAsync0 { <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>insideJob0<!>()<!> }
fun doTheJob1() = simpleAsync1 { <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>insideJob1<!>()<!> }
suspend fun doTheJob2() = simpleAsync2 { <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>insideJob2<!>()<!> }
suspend fun doTheJob3() = simpleAsync3 { <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>insideJob3<!>()<!> }
fun doTheJob0() = simpleAsync0 { <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>insideJob0<!>()<!> }
fun doTheJob1() = simpleAsync1 { <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>insideJob1<!>()<!> }
suspend fun doTheJob2() = simpleAsync2 { <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>insideJob2<!>()<!> }
suspend fun doTheJob3() = simpleAsync3 { <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>insideJob3<!>()<!> }
@@ -3,7 +3,7 @@
fun foo() {
fun fact(n: Int) = {
if (n > 0) {
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>fact<!>(<!DEBUG_INFO_MISSING_UNRESOLVED!>n<!> <!DEBUG_INFO_MISSING_UNRESOLVED!>-<!> 1)<!> <!DEBUG_INFO_MISSING_UNRESOLVED!>*<!> n
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>fact<!>(<!DEBUG_INFO_MISSING_UNRESOLVED!>n<!> <!DEBUG_INFO_MISSING_UNRESOLVED!>-<!> 1)<!> <!DEBUG_INFO_MISSING_UNRESOLVED!>*<!> n
}
else {
1
@@ -1,4 +1,4 @@
// FIR_IDE_IGNORE
fun foo() {
fun bar() = (fun() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()<!>)
fun bar() = (fun() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()<!>)
}
@@ -1,6 +1,6 @@
// FIR_IDE_IGNORE
fun foo() {
fun bar() = {
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()<!>
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar<!>()<!>
}
}
@@ -1,9 +1,9 @@
// FIR_IDE_IGNORE
fun foo() {
fun bar1() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar1<!>()<!>
fun bar1() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar1<!>()<!>
fun bar2() = 1 + <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>()<!>
fun bar3() = id(<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar3<!>()<!>)
fun bar2() = 1 + <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>()<!>
fun bar3() = id(<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar3<!>()<!>)
}
fun <T> id(x: T) = x
@@ -8,5 +8,5 @@ public class X {
class A : X() {
// TODO: DEBUG_INFO_MISSING_UNRESOLVED indicates a bug here
override fun getFoo() = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>foo<!>
override fun getFoo() = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>foo<!>
}
@@ -6,7 +6,7 @@ object Outer {
get() = 0
override fun get(index: Int): Char {
checkSubtype<CharSequence>(<!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>x<!>)
checkSubtype<CharSequence>(<!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>x<!>)
return ' '
}
@@ -1,16 +1,16 @@
// !CHECK_TYPE
// NI_EXPECTED_FILE
val x get() = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>x<!>
val x get() = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>x<!>
class A {
val y get() = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>y<!>
val y get() = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>y<!>
val a get() = <!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>b<!>
val b get() = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>a<!>
val b get() = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>a<!>
val z1 get() = id(<!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>z1<!>)
val z2 get() = l(<!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>z2<!>)
val z1 get() = id(<!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>z1<!>)
val z2 get() = l(<!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>z2<!>)
val u get() = <!UNRESOLVED_REFERENCE!>field<!>
}
+2 -2
View File
@@ -3,7 +3,7 @@
class Test {
private val y = object {
val a = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>y<!>;
val a = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>y<!>;
}
val z = y.<!DEBUG_INFO_ELEMENT_WITH_ERROR_TYPE!>a<!>;
@@ -23,6 +23,6 @@ class Test2 {
val y = 1
}
val b = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>a<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>x<!><!>
val b = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>a<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>x<!><!>
val c = a.y
}
+2 -2
View File
@@ -1,4 +1,4 @@
// StackOverflow
val p = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>p<!><!>
val p = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>p<!><!>
fun foo() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!><!>
fun foo() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>::<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!><!>
+6 -6
View File
@@ -2,27 +2,27 @@
//KT-328 Local function in function literals cause exceptions
fun bar1() = {
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar1<!>()<!>
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar1<!>()<!>
}
fun bar2() = {
fun foo2() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>()<!>
fun foo2() = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar2<!>()<!>
}
//properties
//in a class
class A() {
val x = { <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>x<!> }
val x = { <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>x<!> }
}
//in a package
val x = { <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>x<!> }
val x = { <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>x<!> }
//KT-787 AssertionError on code 'val x = x'
val z = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>z<!>
val z = <!DEBUG_INFO_MISSING_UNRESOLVED, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>z<!>
//KT-329 Assertion failure on local function
fun block(f : () -> Unit) = f()
fun bar3() = block{ <!UNRESOLVED_REFERENCE!>foo3<!>() // <-- missing closing curly bracket
fun foo3() = block{ <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar3<!>()<!> }<!SYNTAX!><!>
fun foo3() = block{ <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>bar3<!>()<!> }<!SYNTAX!><!>
+1 -1
View File
@@ -4,7 +4,7 @@ fun main(args: Array<String>) {
fun f() = run {
<!WRONG_MODIFIER_TARGET!>private<!> class C {
private fun foo() {
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>f<!>()<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>();
<!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>f<!>()<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>foo<!>();
}
}
@@ -13,6 +13,6 @@ suspend fun fib(n: Long) =
async {
when {
n < 2 -> n
else -> <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!><!DEBUG_INFO_MISSING_UNRESOLVED!>fib<!>(<!DEBUG_INFO_MISSING_UNRESOLVED!>n<!> <!DEBUG_INFO_MISSING_UNRESOLVED!>-<!> 1)<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>await<!>() <!DEBUG_INFO_MISSING_UNRESOLVED!>+<!> fib(n - 2).<!DEBUG_INFO_MISSING_UNRESOLVED!>await<!>()
else -> <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!><!DEBUG_INFO_MISSING_UNRESOLVED!>fib<!>(<!DEBUG_INFO_MISSING_UNRESOLVED!>n<!> <!DEBUG_INFO_MISSING_UNRESOLVED!>-<!> 1)<!>.<!DEBUG_INFO_MISSING_UNRESOLVED!>await<!>() <!DEBUG_INFO_MISSING_UNRESOLVED!>+<!> fib(n - 2).<!DEBUG_INFO_MISSING_UNRESOLVED!>await<!>()
}
}
@@ -8494,6 +8494,18 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest {
runTest("compiler/testData/diagnostics/tests/delegation/kt44843.kt");
}
@Test
@TestMetadata("kt49477.kt")
public void testKt49477() throws Exception {
runTest("compiler/testData/diagnostics/tests/delegation/kt49477.kt");
}
@Test
@TestMetadata("kt49477Error.kt")
public void testKt49477Error() throws Exception {
runTest("compiler/testData/diagnostics/tests/delegation/kt49477Error.kt");
}
@Test
@TestMetadata("kt8154.kt")
public void testKt8154() throws Exception {
@@ -18,5 +18,5 @@ fun <!IMPLICIT_NOTHING_RETURN_TYPE!>case1<!>(a: Boolean) = run { println("d"); r
// TESTCASE NUMBER: 2
val <!IMPLICIT_NOTHING_PROPERTY_TYPE!>case2<!>
get() = run { println("d"); return <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>true<!> }
get() = run { println("d"); return <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR!>true<!> }
@@ -245,6 +245,7 @@ enum class LanguageFeature(
YieldIsNoMoreReserved(KOTLIN_1_7),
NoDeprecationOnDeprecatedEnumEntries(KOTLIN_1_7), // KT-37975
ProhibitQualifiedAccessToUninitializedEnumEntry(KOTLIN_1_7, kind = BUG_FIX), // KT-41124
ForbidRecursiveDelegateExpressions(KOTLIN_1_7, kind = BUG_FIX),
// 1.8