From 7e4d9d9f64d07ac83799691578a2b9085ae23208 Mon Sep 17 00:00:00 2001 From: "Denis.Zharkov" Date: Tue, 19 Dec 2023 17:13:35 +0100 Subject: [PATCH] K2: Add new tests for PCLA implementation Many of them have been found & minimized at FP tests/user projects ^KT-59791 Fixed --- ...CompilerTestFE10TestdataTestGenerated.java | 198 ++++++++++++++++++ ...LFirBlackBoxCodegenBasedTestGenerated.java | 6 + ...sticCompilerFE10TestDataTestGenerated.java | 198 ++++++++++++++++++ ...rsedBlackBoxCodegenBasedTestGenerated.java | 6 + ...eeOldFrontendDiagnosticsTestGenerated.java | 198 ++++++++++++++++++ ...siOldFrontendDiagnosticsTestGenerated.java | 198 ++++++++++++++++++ ...LightTreeBlackBoxCodegenTestGenerated.java | 6 + ...hIrFakeOverrideGeneratorTestGenerated.java | 6 + .../FirPsiBlackBoxCodegenTestGenerated.java | 6 + .../FirLightTreeJvmIrTextTestGenerated.java | 12 ++ .../ir/FirPsiJvmIrTextTestGenerated.java | 12 ++ ...eceiverUsesOuterTVButReturnTypeIsProper.kt | 30 +++ .../assignmentUsingIncompletePCLACall.kt | 20 ++ .../bothOuterAndProperConstraints.kt | 15 ++ .../builderPassedAsNamedArgument.kt | 21 ++ ...llableReferenceAsArgumentForTransaction.kt | 38 ++++ .../callableReferenceInsideInvokeCall.kt | 15 ++ .../considerContractsOfIncompleteCalls.fir.kt | 24 +++ .../considerContractsOfIncompleteCalls.kt | 24 +++ ...isWithReturnInLastStatementOfLastLambda.kt | 29 +++ ...ixingDependentVariablesForReceivers.fir.kt | 35 ++++ .../fixingDependentVariablesForReceivers.kt | 35 ++++ ...ngDependentVariablesForReceiversInitial.kt | 30 +++ ...LambadaWithShallowDependencyToOuter.fir.kt | 37 ++++ ...VForLambadaWithShallowDependencyToOuter.kt | 37 ++++ ...ambadaWithShallowDependencyToOuter2.fir.kt | 24 +++ ...ForLambadaWithShallowDependencyToOuter2.kt | 24 +++ ...ambadaWithShallowDependencyToOuter3.fir.kt | 32 +++ ...ForLambadaWithShallowDependencyToOuter3.kt | 32 +++ ...innerTvFixationFromLowerConstraints.fir.kt | 32 +++ .../innerTvFixationFromLowerConstraints.kt | 32 +++ ...eExtensionReceiverWithNotFixedVariables.kt | 15 ++ ...ionReceiverWithNotFixedVariablesInitial.kt | 22 ++ .../lambdaParameterForBareType.fir.kt | 20 ++ .../lambdaParameterForBareType.kt | 20 ++ .../lambdaParameterTypeFixation.kt | 17 ++ .../lastLambdaStatementWithFixedVariables.kt | 24 +++ .../manyArgsDifferentYields.kt | 23 ++ ...mberScopeOfCapturedTypeForPostponedCall.kt | 31 +++ ...estedLambdaWithLastLambdaContainingCall.kt | 19 ++ .../nestedLambdaWithNonLastYieldStatement.kt | 20 ++ ...mbdasWithOverloadResolutionByReturnType.kt | 27 +++ .../newTvFromLamdaAreNotCountedAsProper.kt | 24 +++ ...oadResolutionByLambdaReturnTypeInsideBI.kt | 39 ++++ ...gleBranchConditionLastStatementInLambda.kt | 19 ++ .../smartCastOnBuilderController.fir.kt | 18 ++ .../smartCastOnBuilderController.kt | 18 ++ .../stubTypes/simpleIntersection.fir.kt | 58 +++++ .../stubTypes/simpleIntersection.kt | 58 +++++ .../substitutedSyntheticPropertyUsage.fir.kt | 20 ++ .../substitutedSyntheticPropertyUsage.kt | 20 ++ .../builderInference/theSimplestBuilder.kt | 13 ++ ...rtyHavingSomePCLACallsWithinInitializer.kt | 27 +++ .../notFixedTopLevelLambdaParameter.kt | 18 ++ .../coroutines/inference/kt38667Simplified.kt | 22 ++ ...oErrorTypeAfterCaptureApproximation.ir.txt | 67 ++++++ .../noErrorTypeAfterCaptureApproximation.kt | 18 ++ ...oErrorTypeAfterCaptureApproximation.kt.txt | 32 +++ ...orTypeAfterCaptureApproximation.sig.kt.txt | 51 +++++ ...SyntheticTypeParameterLeftAfterPCLA.ir.txt | 94 +++++++++ .../noSyntheticTypeParameterLeftAfterPCLA.kt | 34 +++ ...SyntheticTypeParameterLeftAfterPCLA.kt.txt | 48 +++++ ...heticTypeParameterLeftAfterPCLA.sig.kt.txt | 47 +++++ .../test/runners/DiagnosticTestGenerated.java | 198 ++++++++++++++++++ .../JvmAbiConsistencyTestBoxGenerated.java | 6 + .../codegen/BlackBoxCodegenTestGenerated.java | 6 + .../IrBlackBoxCodegenTestGenerated.java | 6 + ...kBoxCodegenWithIrInlinerTestGenerated.java | 6 + .../ir/ClassicJvmIrTextTestGenerated.java | 12 ++ .../LightAnalysisModeTestGenerated.java | 5 + .../klib/KlibIrTextTestCaseGenerated.java | 10 + .../fir/FirJsCodegenBoxTestGenerated.java | 12 +- .../fir/FirJsES6CodegenBoxTestGenerated.java | 12 +- .../FirLightTreeJsIrTextTestGenerated.java | 12 ++ .../test/fir/FirPsiJsIrTextTestGenerated.java | 12 ++ .../test/ir/ClassicJsIrTextTestGenerated.java | 12 ++ .../test/ir/IrJsCodegenBoxTestGenerated.java | 12 +- .../ir/IrJsES6CodegenBoxTestGenerated.java | 12 +- .../FirNativeCodegenBoxTestGenerated.java | 12 +- .../FirNativeCodegenBoxTestNoPLGenerated.java | 12 +- .../NativeCodegenBoxTestGenerated.java | 12 +- .../NativeCodegenBoxTestNoPLGenerated.java | 12 +- .../ClassicNativeIrTextTestGenerated.java | 12 ++ ...FirLightTreeNativeIrTextTestGenerated.java | 12 ++ .../FirPsiNativeIrTextTestGenerated.java | 12 ++ .../test/FirWasmCodegenBoxTestGenerated.java | 12 +- .../test/K1WasmCodegenBoxTestGenerated.java | 12 +- 87 files changed, 2776 insertions(+), 60 deletions(-) create mode 100644 compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/assignmentUsingIncompletePCLACall.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/bothOuterAndProperConstraints.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/builderPassedAsNamedArgument.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceAsArgumentForTransaction.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceInsideInvokeCall.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/elvisWithReturnInLastStatementOfLastLambda.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceiversInitial.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariables.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariablesInitial.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterTypeFixation.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/lastLambdaStatementWithFixedVariables.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/manyArgsDifferentYields.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/memberScopeOfCapturedTypeForPostponedCall.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithLastLambdaContainingCall.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithNonLastYieldStatement.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdasWithOverloadResolutionByReturnType.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/newTvFromLamdaAreNotCountedAsProper.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/overloadResolutionByLambdaReturnTypeInsideBI.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/singleBranchConditionLastStatementInLambda.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.fir.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/theSimplestBuilder.kt create mode 100644 compiler/testData/diagnostics/tests/inference/builderInference/whenWithPropertyHavingSomePCLACallsWithinInitializer.kt create mode 100644 compiler/testData/diagnostics/tests/inference/notFixedTopLevelLambdaParameter.kt create mode 100644 compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667Simplified.kt create mode 100644 compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.ir.txt create mode 100644 compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt create mode 100644 compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt.txt create mode 100644 compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.sig.kt.txt create mode 100644 compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.ir.txt create mode 100644 compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt create mode 100644 compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt.txt create mode 100644 compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.sig.kt.txt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java index 21543155713..75855a9dd68 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java @@ -16926,6 +16926,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/inference/nonFunctionalExpectedTypeForLambdaArgument.kt"); } + @Test + @TestMetadata("notFixedTopLevelLambdaParameter.kt") + public void testNotFixedTopLevelLambdaParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/notFixedTopLevelLambdaParameter.kt"); + } + @Test @TestMetadata("nothingVsParameterBound.kt") public void testNothingVsParameterBound() throws Exception { @@ -17181,18 +17187,60 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/builderInference"), Pattern.compile("^(.+)\\.(kt|kts)$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); } + @Test + @TestMetadata("assignmentUsingIncompletePCLACall.kt") + public void testAssignmentUsingIncompletePCLACall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/assignmentUsingIncompletePCLACall.kt"); + } + + @Test + @TestMetadata("bothOuterAndProperConstraints.kt") + public void testBothOuterAndProperConstraints() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/bothOuterAndProperConstraints.kt"); + } + @Test @TestMetadata("builderInferenceAnnotationInLambdaWithTVExpectedType.kt") public void testBuilderInferenceAnnotationInLambdaWithTVExpectedType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/builderInferenceAnnotationInLambdaWithTVExpectedType.kt"); } + @Test + @TestMetadata("builderPassedAsNamedArgument.kt") + public void testBuilderPassedAsNamedArgument() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/builderPassedAsNamedArgument.kt"); + } + + @Test + @TestMetadata("callableReferenceAsArgumentForTransaction.kt") + public void testCallableReferenceAsArgumentForTransaction() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceAsArgumentForTransaction.kt"); + } + + @Test + @TestMetadata("callableReferenceInsideInvokeCall.kt") + public void testCallableReferenceInsideInvokeCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceInsideInvokeCall.kt"); + } + @Test @TestMetadata("changingResolveIfDontUseBuilderInference.kt") public void testChangingResolveIfDontUseBuilderInference() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/changingResolveIfDontUseBuilderInference.kt"); } + @Test + @TestMetadata("considerContractsOfIncompleteCalls.kt") + public void testConsiderContractsOfIncompleteCalls() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.kt"); + } + + @Test + @TestMetadata("elvisWithReturnInLastStatementOfLastLambda.kt") + public void testElvisWithReturnInLastStatementOfLastLambda() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/elvisWithReturnInLastStatementOfLastLambda.kt"); + } + @Test @TestMetadata("equalityChecksOnIntegerTypes.kt") public void testEqualityChecksOnIntegerTypes() throws Exception { @@ -17211,18 +17259,66 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/errorOnStubReceiver.kt"); } + @Test + @TestMetadata("fixingDependentVariablesForReceivers.kt") + public void testFixingDependentVariablesForReceivers() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.kt"); + } + + @Test + @TestMetadata("fixingDependentVariablesForReceiversInitial.kt") + public void testFixingDependentVariablesForReceiversInitial() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceiversInitial.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter2.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter2() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter3.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter3() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.kt"); + } + @Test @TestMetadata("incompleteCallInReturnArgumentsWithProperExpectType.kt") public void testIncompleteCallInReturnArgumentsWithProperExpectType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/incompleteCallInReturnArgumentsWithProperExpectType.kt"); } + @Test + @TestMetadata("innerTvFixationFromLowerConstraints.kt") + public void testInnerTvFixationFromLowerConstraints() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.kt"); + } + @Test @TestMetadata("invalidateKeys.kt") public void testInvalidateKeys() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/invalidateKeys.kt"); } + @Test + @TestMetadata("invokeExtensionReceiverWithNotFixedVariables.kt") + public void testInvokeExtensionReceiverWithNotFixedVariables() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariables.kt"); + } + + @Test + @TestMetadata("invokeExtensionReceiverWithNotFixedVariablesInitial.kt") + public void testInvokeExtensionReceiverWithNotFixedVariablesInitial() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariablesInitial.kt"); + } + @Test @TestMetadata("kt47744.kt") public void testKt47744() throws Exception { @@ -17331,6 +17427,36 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/labaledCall.kt"); } + @Test + @TestMetadata("lambdaParameterForBareType.kt") + public void testLambdaParameterForBareType() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.kt"); + } + + @Test + @TestMetadata("lambdaParameterTypeFixation.kt") + public void testLambdaParameterTypeFixation() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterTypeFixation.kt"); + } + + @Test + @TestMetadata("lastLambdaStatementWithFixedVariables.kt") + public void testLastLambdaStatementWithFixedVariables() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lastLambdaStatementWithFixedVariables.kt"); + } + + @Test + @TestMetadata("manyArgsDifferentYields.kt") + public void testManyArgsDifferentYields() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/manyArgsDifferentYields.kt"); + } + + @Test + @TestMetadata("memberScopeOfCapturedTypeForPostponedCall.kt") + public void testMemberScopeOfCapturedTypeForPostponedCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/memberScopeOfCapturedTypeForPostponedCall.kt"); + } + @Test @TestMetadata("multiLambdaRestriction.kt") public void testMultiLambdaRestriction() throws Exception { @@ -17343,12 +17469,42 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/multiLambdaRestrictionDisabled.kt"); } + @Test + @TestMetadata("nestedLambdaWithLastLambdaContainingCall.kt") + public void testNestedLambdaWithLastLambdaContainingCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithLastLambdaContainingCall.kt"); + } + + @Test + @TestMetadata("nestedLambdaWithNonLastYieldStatement.kt") + public void testNestedLambdaWithNonLastYieldStatement() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithNonLastYieldStatement.kt"); + } + + @Test + @TestMetadata("nestedLambdasWithOverloadResolutionByReturnType.kt") + public void testNestedLambdasWithOverloadResolutionByReturnType() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdasWithOverloadResolutionByReturnType.kt"); + } + + @Test + @TestMetadata("newTvFromLamdaAreNotCountedAsProper.kt") + public void testNewTvFromLamdaAreNotCountedAsProper() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/newTvFromLamdaAreNotCountedAsProper.kt"); + } + @Test @TestMetadata("noBuilderInferenceRestrictionReceiverInconsistency.kt") public void testNoBuilderInferenceRestrictionReceiverInconsistency() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/noBuilderInferenceRestrictionReceiverInconsistency.kt"); } + @Test + @TestMetadata("overloadResolutionByLambdaReturnTypeInsideBI.kt") + public void testOverloadResolutionByLambdaReturnTypeInsideBI() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/overloadResolutionByLambdaReturnTypeInsideBI.kt"); + } + @Test @TestMetadata("propertySubstitution.kt") public void testPropertySubstitution() throws Exception { @@ -17361,12 +17517,24 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/simpleLambdaInCallWithAnotherLambdaWithBuilderInference.kt"); } + @Test + @TestMetadata("singleBranchConditionLastStatementInLambda.kt") + public void testSingleBranchConditionLastStatementInLambda() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/singleBranchConditionLastStatementInLambda.kt"); + } + @Test @TestMetadata("skipedUnresolvedInBuilderInferenceWithStubReceiverType.kt") public void testSkipedUnresolvedInBuilderInferenceWithStubReceiverType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/skipedUnresolvedInBuilderInferenceWithStubReceiverType.kt"); } + @Test + @TestMetadata("smartCastOnBuilderController.kt") + public void testSmartCastOnBuilderController() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.kt"); + } + @Test @TestMetadata("specialCallsWithCallableReferences.kt") public void testSpecialCallsWithCallableReferences() throws Exception { @@ -17415,6 +17583,24 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/specialCallsWithLambdas.kt"); } + @Test + @TestMetadata("substitutedSyntheticPropertyUsage.kt") + public void testSubstitutedSyntheticPropertyUsage() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.kt"); + } + + @Test + @TestMetadata("theSimplestBuilder.kt") + public void testTheSimplestBuilder() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/theSimplestBuilder.kt"); + } + + @Test + @TestMetadata("whenWithPropertyHavingSomePCLACallsWithinInitializer.kt") + public void testWhenWithPropertyHavingSomePCLACallsWithinInitializer() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/whenWithPropertyHavingSomePCLACallsWithinInitializer.kt"); + } + @Test @TestMetadata("withoutAnnotationDisabledFeature.kt") public void testWithoutAnnotationDisabledFeature() throws Exception { @@ -17512,6 +17698,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/renderingStubTypes.kt"); } + @Test + @TestMetadata("simpleIntersection.kt") + public void testSimpleIntersection() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.kt"); + } + @Test @TestMetadata("stubTypeReceiverRestriction.kt") public void testStubTypeReceiverRestriction() throws Exception { @@ -43589,6 +43781,12 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667.kt"); } + @Test + @TestMetadata("kt38667Simplified.kt") + public void testKt38667Simplified() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667Simplified.kt"); + } + @Test @TestMetadata("kt38766.kt") public void testKt38766() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java index f468384f4f2..4e1fcf9ec33 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirBlackBoxCodegenBasedTestGenerated.java @@ -2772,6 +2772,12 @@ public class LLFirBlackBoxCodegenBasedTestGenerated extends AbstractLLFirBlackBo KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java index 0401375242a..ed72e22fd81 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java @@ -16926,6 +16926,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/inference/nonFunctionalExpectedTypeForLambdaArgument.kt"); } + @Test + @TestMetadata("notFixedTopLevelLambdaParameter.kt") + public void testNotFixedTopLevelLambdaParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/notFixedTopLevelLambdaParameter.kt"); + } + @Test @TestMetadata("nothingVsParameterBound.kt") public void testNothingVsParameterBound() throws Exception { @@ -17181,18 +17187,60 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/builderInference"), Pattern.compile("^(.+)\\.(kt|kts)$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); } + @Test + @TestMetadata("assignmentUsingIncompletePCLACall.kt") + public void testAssignmentUsingIncompletePCLACall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/assignmentUsingIncompletePCLACall.kt"); + } + + @Test + @TestMetadata("bothOuterAndProperConstraints.kt") + public void testBothOuterAndProperConstraints() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/bothOuterAndProperConstraints.kt"); + } + @Test @TestMetadata("builderInferenceAnnotationInLambdaWithTVExpectedType.kt") public void testBuilderInferenceAnnotationInLambdaWithTVExpectedType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/builderInferenceAnnotationInLambdaWithTVExpectedType.kt"); } + @Test + @TestMetadata("builderPassedAsNamedArgument.kt") + public void testBuilderPassedAsNamedArgument() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/builderPassedAsNamedArgument.kt"); + } + + @Test + @TestMetadata("callableReferenceAsArgumentForTransaction.kt") + public void testCallableReferenceAsArgumentForTransaction() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceAsArgumentForTransaction.kt"); + } + + @Test + @TestMetadata("callableReferenceInsideInvokeCall.kt") + public void testCallableReferenceInsideInvokeCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceInsideInvokeCall.kt"); + } + @Test @TestMetadata("changingResolveIfDontUseBuilderInference.kt") public void testChangingResolveIfDontUseBuilderInference() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/changingResolveIfDontUseBuilderInference.kt"); } + @Test + @TestMetadata("considerContractsOfIncompleteCalls.kt") + public void testConsiderContractsOfIncompleteCalls() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.kt"); + } + + @Test + @TestMetadata("elvisWithReturnInLastStatementOfLastLambda.kt") + public void testElvisWithReturnInLastStatementOfLastLambda() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/elvisWithReturnInLastStatementOfLastLambda.kt"); + } + @Test @TestMetadata("equalityChecksOnIntegerTypes.kt") public void testEqualityChecksOnIntegerTypes() throws Exception { @@ -17211,18 +17259,66 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/inference/builderInference/errorOnStubReceiver.kt"); } + @Test + @TestMetadata("fixingDependentVariablesForReceivers.kt") + public void testFixingDependentVariablesForReceivers() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.kt"); + } + + @Test + @TestMetadata("fixingDependentVariablesForReceiversInitial.kt") + public void testFixingDependentVariablesForReceiversInitial() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceiversInitial.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter2.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter2() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter3.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter3() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.kt"); + } + @Test @TestMetadata("incompleteCallInReturnArgumentsWithProperExpectType.kt") public void testIncompleteCallInReturnArgumentsWithProperExpectType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/incompleteCallInReturnArgumentsWithProperExpectType.kt"); } + @Test + @TestMetadata("innerTvFixationFromLowerConstraints.kt") + public void testInnerTvFixationFromLowerConstraints() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.kt"); + } + @Test @TestMetadata("invalidateKeys.kt") public void testInvalidateKeys() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/invalidateKeys.kt"); } + @Test + @TestMetadata("invokeExtensionReceiverWithNotFixedVariables.kt") + public void testInvokeExtensionReceiverWithNotFixedVariables() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariables.kt"); + } + + @Test + @TestMetadata("invokeExtensionReceiverWithNotFixedVariablesInitial.kt") + public void testInvokeExtensionReceiverWithNotFixedVariablesInitial() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariablesInitial.kt"); + } + @Test @TestMetadata("kt47744.kt") public void testKt47744() throws Exception { @@ -17331,6 +17427,36 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/inference/builderInference/labaledCall.kt"); } + @Test + @TestMetadata("lambdaParameterForBareType.kt") + public void testLambdaParameterForBareType() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.kt"); + } + + @Test + @TestMetadata("lambdaParameterTypeFixation.kt") + public void testLambdaParameterTypeFixation() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterTypeFixation.kt"); + } + + @Test + @TestMetadata("lastLambdaStatementWithFixedVariables.kt") + public void testLastLambdaStatementWithFixedVariables() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lastLambdaStatementWithFixedVariables.kt"); + } + + @Test + @TestMetadata("manyArgsDifferentYields.kt") + public void testManyArgsDifferentYields() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/manyArgsDifferentYields.kt"); + } + + @Test + @TestMetadata("memberScopeOfCapturedTypeForPostponedCall.kt") + public void testMemberScopeOfCapturedTypeForPostponedCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/memberScopeOfCapturedTypeForPostponedCall.kt"); + } + @Test @TestMetadata("multiLambdaRestriction.kt") public void testMultiLambdaRestriction() throws Exception { @@ -17343,12 +17469,42 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/inference/builderInference/multiLambdaRestrictionDisabled.kt"); } + @Test + @TestMetadata("nestedLambdaWithLastLambdaContainingCall.kt") + public void testNestedLambdaWithLastLambdaContainingCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithLastLambdaContainingCall.kt"); + } + + @Test + @TestMetadata("nestedLambdaWithNonLastYieldStatement.kt") + public void testNestedLambdaWithNonLastYieldStatement() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithNonLastYieldStatement.kt"); + } + + @Test + @TestMetadata("nestedLambdasWithOverloadResolutionByReturnType.kt") + public void testNestedLambdasWithOverloadResolutionByReturnType() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdasWithOverloadResolutionByReturnType.kt"); + } + + @Test + @TestMetadata("newTvFromLamdaAreNotCountedAsProper.kt") + public void testNewTvFromLamdaAreNotCountedAsProper() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/newTvFromLamdaAreNotCountedAsProper.kt"); + } + @Test @TestMetadata("noBuilderInferenceRestrictionReceiverInconsistency.kt") public void testNoBuilderInferenceRestrictionReceiverInconsistency() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/noBuilderInferenceRestrictionReceiverInconsistency.kt"); } + @Test + @TestMetadata("overloadResolutionByLambdaReturnTypeInsideBI.kt") + public void testOverloadResolutionByLambdaReturnTypeInsideBI() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/overloadResolutionByLambdaReturnTypeInsideBI.kt"); + } + @Test @TestMetadata("propertySubstitution.kt") public void testPropertySubstitution() throws Exception { @@ -17361,12 +17517,24 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/inference/builderInference/simpleLambdaInCallWithAnotherLambdaWithBuilderInference.kt"); } + @Test + @TestMetadata("singleBranchConditionLastStatementInLambda.kt") + public void testSingleBranchConditionLastStatementInLambda() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/singleBranchConditionLastStatementInLambda.kt"); + } + @Test @TestMetadata("skipedUnresolvedInBuilderInferenceWithStubReceiverType.kt") public void testSkipedUnresolvedInBuilderInferenceWithStubReceiverType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/skipedUnresolvedInBuilderInferenceWithStubReceiverType.kt"); } + @Test + @TestMetadata("smartCastOnBuilderController.kt") + public void testSmartCastOnBuilderController() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.kt"); + } + @Test @TestMetadata("specialCallsWithCallableReferences.kt") public void testSpecialCallsWithCallableReferences() throws Exception { @@ -17415,6 +17583,24 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/inference/builderInference/specialCallsWithLambdas.kt"); } + @Test + @TestMetadata("substitutedSyntheticPropertyUsage.kt") + public void testSubstitutedSyntheticPropertyUsage() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.kt"); + } + + @Test + @TestMetadata("theSimplestBuilder.kt") + public void testTheSimplestBuilder() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/theSimplestBuilder.kt"); + } + + @Test + @TestMetadata("whenWithPropertyHavingSomePCLACallsWithinInitializer.kt") + public void testWhenWithPropertyHavingSomePCLACallsWithinInitializer() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/whenWithPropertyHavingSomePCLACallsWithinInitializer.kt"); + } + @Test @TestMetadata("withoutAnnotationDisabledFeature.kt") public void testWithoutAnnotationDisabledFeature() throws Exception { @@ -17512,6 +17698,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/renderingStubTypes.kt"); } + @Test + @TestMetadata("simpleIntersection.kt") + public void testSimpleIntersection() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.kt"); + } + @Test @TestMetadata("stubTypeReceiverRestriction.kt") public void testStubTypeReceiverRestriction() throws Exception { @@ -43589,6 +43781,12 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667.kt"); } + @Test + @TestMetadata("kt38667Simplified.kt") + public void testKt38667Simplified() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667Simplified.kt"); + } + @Test @TestMetadata("kt38766.kt") public void testKt38766() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java index 60318d179a5..c21775fb366 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirReversedBlackBoxCodegenBasedTestGenerated.java @@ -2772,6 +2772,12 @@ public class LLFirReversedBlackBoxCodegenBasedTestGenerated extends AbstractLLFi KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index 4b5a8d9bc7a..4acbcb58f19 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -16920,6 +16920,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/inference/nonFunctionalExpectedTypeForLambdaArgument.kt"); } + @Test + @TestMetadata("notFixedTopLevelLambdaParameter.kt") + public void testNotFixedTopLevelLambdaParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/notFixedTopLevelLambdaParameter.kt"); + } + @Test @TestMetadata("nothingVsParameterBound.kt") public void testNothingVsParameterBound() throws Exception { @@ -17175,18 +17181,60 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/builderInference"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true, "multiplatform"); } + @Test + @TestMetadata("assignmentUsingIncompletePCLACall.kt") + public void testAssignmentUsingIncompletePCLACall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/assignmentUsingIncompletePCLACall.kt"); + } + + @Test + @TestMetadata("bothOuterAndProperConstraints.kt") + public void testBothOuterAndProperConstraints() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/bothOuterAndProperConstraints.kt"); + } + @Test @TestMetadata("builderInferenceAnnotationInLambdaWithTVExpectedType.kt") public void testBuilderInferenceAnnotationInLambdaWithTVExpectedType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/builderInferenceAnnotationInLambdaWithTVExpectedType.kt"); } + @Test + @TestMetadata("builderPassedAsNamedArgument.kt") + public void testBuilderPassedAsNamedArgument() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/builderPassedAsNamedArgument.kt"); + } + + @Test + @TestMetadata("callableReferenceAsArgumentForTransaction.kt") + public void testCallableReferenceAsArgumentForTransaction() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceAsArgumentForTransaction.kt"); + } + + @Test + @TestMetadata("callableReferenceInsideInvokeCall.kt") + public void testCallableReferenceInsideInvokeCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceInsideInvokeCall.kt"); + } + @Test @TestMetadata("changingResolveIfDontUseBuilderInference.kt") public void testChangingResolveIfDontUseBuilderInference() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/changingResolveIfDontUseBuilderInference.kt"); } + @Test + @TestMetadata("considerContractsOfIncompleteCalls.kt") + public void testConsiderContractsOfIncompleteCalls() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.kt"); + } + + @Test + @TestMetadata("elvisWithReturnInLastStatementOfLastLambda.kt") + public void testElvisWithReturnInLastStatementOfLastLambda() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/elvisWithReturnInLastStatementOfLastLambda.kt"); + } + @Test @TestMetadata("equalityChecksOnIntegerTypes.kt") public void testEqualityChecksOnIntegerTypes() throws Exception { @@ -17205,18 +17253,66 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/inference/builderInference/errorOnStubReceiver.kt"); } + @Test + @TestMetadata("fixingDependentVariablesForReceivers.kt") + public void testFixingDependentVariablesForReceivers() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.kt"); + } + + @Test + @TestMetadata("fixingDependentVariablesForReceiversInitial.kt") + public void testFixingDependentVariablesForReceiversInitial() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceiversInitial.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter2.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter2() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter3.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter3() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.kt"); + } + @Test @TestMetadata("incompleteCallInReturnArgumentsWithProperExpectType.kt") public void testIncompleteCallInReturnArgumentsWithProperExpectType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/incompleteCallInReturnArgumentsWithProperExpectType.kt"); } + @Test + @TestMetadata("innerTvFixationFromLowerConstraints.kt") + public void testInnerTvFixationFromLowerConstraints() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.kt"); + } + @Test @TestMetadata("invalidateKeys.kt") public void testInvalidateKeys() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/invalidateKeys.kt"); } + @Test + @TestMetadata("invokeExtensionReceiverWithNotFixedVariables.kt") + public void testInvokeExtensionReceiverWithNotFixedVariables() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariables.kt"); + } + + @Test + @TestMetadata("invokeExtensionReceiverWithNotFixedVariablesInitial.kt") + public void testInvokeExtensionReceiverWithNotFixedVariablesInitial() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariablesInitial.kt"); + } + @Test @TestMetadata("kt47744.kt") public void testKt47744() throws Exception { @@ -17325,6 +17421,36 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/inference/builderInference/labaledCall.kt"); } + @Test + @TestMetadata("lambdaParameterForBareType.kt") + public void testLambdaParameterForBareType() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.kt"); + } + + @Test + @TestMetadata("lambdaParameterTypeFixation.kt") + public void testLambdaParameterTypeFixation() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterTypeFixation.kt"); + } + + @Test + @TestMetadata("lastLambdaStatementWithFixedVariables.kt") + public void testLastLambdaStatementWithFixedVariables() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lastLambdaStatementWithFixedVariables.kt"); + } + + @Test + @TestMetadata("manyArgsDifferentYields.kt") + public void testManyArgsDifferentYields() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/manyArgsDifferentYields.kt"); + } + + @Test + @TestMetadata("memberScopeOfCapturedTypeForPostponedCall.kt") + public void testMemberScopeOfCapturedTypeForPostponedCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/memberScopeOfCapturedTypeForPostponedCall.kt"); + } + @Test @TestMetadata("multiLambdaRestriction.kt") public void testMultiLambdaRestriction() throws Exception { @@ -17337,12 +17463,42 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/inference/builderInference/multiLambdaRestrictionDisabled.kt"); } + @Test + @TestMetadata("nestedLambdaWithLastLambdaContainingCall.kt") + public void testNestedLambdaWithLastLambdaContainingCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithLastLambdaContainingCall.kt"); + } + + @Test + @TestMetadata("nestedLambdaWithNonLastYieldStatement.kt") + public void testNestedLambdaWithNonLastYieldStatement() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithNonLastYieldStatement.kt"); + } + + @Test + @TestMetadata("nestedLambdasWithOverloadResolutionByReturnType.kt") + public void testNestedLambdasWithOverloadResolutionByReturnType() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdasWithOverloadResolutionByReturnType.kt"); + } + + @Test + @TestMetadata("newTvFromLamdaAreNotCountedAsProper.kt") + public void testNewTvFromLamdaAreNotCountedAsProper() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/newTvFromLamdaAreNotCountedAsProper.kt"); + } + @Test @TestMetadata("noBuilderInferenceRestrictionReceiverInconsistency.kt") public void testNoBuilderInferenceRestrictionReceiverInconsistency() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/noBuilderInferenceRestrictionReceiverInconsistency.kt"); } + @Test + @TestMetadata("overloadResolutionByLambdaReturnTypeInsideBI.kt") + public void testOverloadResolutionByLambdaReturnTypeInsideBI() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/overloadResolutionByLambdaReturnTypeInsideBI.kt"); + } + @Test @TestMetadata("propertySubstitution.kt") public void testPropertySubstitution() throws Exception { @@ -17355,12 +17511,24 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/inference/builderInference/simpleLambdaInCallWithAnotherLambdaWithBuilderInference.kt"); } + @Test + @TestMetadata("singleBranchConditionLastStatementInLambda.kt") + public void testSingleBranchConditionLastStatementInLambda() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/singleBranchConditionLastStatementInLambda.kt"); + } + @Test @TestMetadata("skipedUnresolvedInBuilderInferenceWithStubReceiverType.kt") public void testSkipedUnresolvedInBuilderInferenceWithStubReceiverType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/skipedUnresolvedInBuilderInferenceWithStubReceiverType.kt"); } + @Test + @TestMetadata("smartCastOnBuilderController.kt") + public void testSmartCastOnBuilderController() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.kt"); + } + @Test @TestMetadata("specialCallsWithCallableReferences.kt") public void testSpecialCallsWithCallableReferences() throws Exception { @@ -17409,6 +17577,24 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/inference/builderInference/specialCallsWithLambdas.kt"); } + @Test + @TestMetadata("substitutedSyntheticPropertyUsage.kt") + public void testSubstitutedSyntheticPropertyUsage() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.kt"); + } + + @Test + @TestMetadata("theSimplestBuilder.kt") + public void testTheSimplestBuilder() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/theSimplestBuilder.kt"); + } + + @Test + @TestMetadata("whenWithPropertyHavingSomePCLACallsWithinInitializer.kt") + public void testWhenWithPropertyHavingSomePCLACallsWithinInitializer() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/whenWithPropertyHavingSomePCLACallsWithinInitializer.kt"); + } + @Test @TestMetadata("withoutAnnotationDisabledFeature.kt") public void testWithoutAnnotationDisabledFeature() throws Exception { @@ -17506,6 +17692,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/renderingStubTypes.kt"); } + @Test + @TestMetadata("simpleIntersection.kt") + public void testSimpleIntersection() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.kt"); + } + @Test @TestMetadata("stubTypeReceiverRestriction.kt") public void testStubTypeReceiverRestriction() throws Exception { @@ -41303,6 +41495,12 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667.kt"); } + @Test + @TestMetadata("kt38667Simplified.kt") + public void testKt38667Simplified() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667Simplified.kt"); + } + @Test @TestMetadata("kt38766.kt") public void testKt38766() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index 1324786548f..7d86c974b5c 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -16926,6 +16926,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/inference/nonFunctionalExpectedTypeForLambdaArgument.kt"); } + @Test + @TestMetadata("notFixedTopLevelLambdaParameter.kt") + public void testNotFixedTopLevelLambdaParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/notFixedTopLevelLambdaParameter.kt"); + } + @Test @TestMetadata("nothingVsParameterBound.kt") public void testNothingVsParameterBound() throws Exception { @@ -17181,18 +17187,60 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/builderInference"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true, "multiplatform"); } + @Test + @TestMetadata("assignmentUsingIncompletePCLACall.kt") + public void testAssignmentUsingIncompletePCLACall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/assignmentUsingIncompletePCLACall.kt"); + } + + @Test + @TestMetadata("bothOuterAndProperConstraints.kt") + public void testBothOuterAndProperConstraints() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/bothOuterAndProperConstraints.kt"); + } + @Test @TestMetadata("builderInferenceAnnotationInLambdaWithTVExpectedType.kt") public void testBuilderInferenceAnnotationInLambdaWithTVExpectedType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/builderInferenceAnnotationInLambdaWithTVExpectedType.kt"); } + @Test + @TestMetadata("builderPassedAsNamedArgument.kt") + public void testBuilderPassedAsNamedArgument() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/builderPassedAsNamedArgument.kt"); + } + + @Test + @TestMetadata("callableReferenceAsArgumentForTransaction.kt") + public void testCallableReferenceAsArgumentForTransaction() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceAsArgumentForTransaction.kt"); + } + + @Test + @TestMetadata("callableReferenceInsideInvokeCall.kt") + public void testCallableReferenceInsideInvokeCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceInsideInvokeCall.kt"); + } + @Test @TestMetadata("changingResolveIfDontUseBuilderInference.kt") public void testChangingResolveIfDontUseBuilderInference() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/changingResolveIfDontUseBuilderInference.kt"); } + @Test + @TestMetadata("considerContractsOfIncompleteCalls.kt") + public void testConsiderContractsOfIncompleteCalls() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.kt"); + } + + @Test + @TestMetadata("elvisWithReturnInLastStatementOfLastLambda.kt") + public void testElvisWithReturnInLastStatementOfLastLambda() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/elvisWithReturnInLastStatementOfLastLambda.kt"); + } + @Test @TestMetadata("equalityChecksOnIntegerTypes.kt") public void testEqualityChecksOnIntegerTypes() throws Exception { @@ -17211,18 +17259,66 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/errorOnStubReceiver.kt"); } + @Test + @TestMetadata("fixingDependentVariablesForReceivers.kt") + public void testFixingDependentVariablesForReceivers() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.kt"); + } + + @Test + @TestMetadata("fixingDependentVariablesForReceiversInitial.kt") + public void testFixingDependentVariablesForReceiversInitial() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceiversInitial.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter2.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter2() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter3.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter3() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.kt"); + } + @Test @TestMetadata("incompleteCallInReturnArgumentsWithProperExpectType.kt") public void testIncompleteCallInReturnArgumentsWithProperExpectType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/incompleteCallInReturnArgumentsWithProperExpectType.kt"); } + @Test + @TestMetadata("innerTvFixationFromLowerConstraints.kt") + public void testInnerTvFixationFromLowerConstraints() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.kt"); + } + @Test @TestMetadata("invalidateKeys.kt") public void testInvalidateKeys() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/invalidateKeys.kt"); } + @Test + @TestMetadata("invokeExtensionReceiverWithNotFixedVariables.kt") + public void testInvokeExtensionReceiverWithNotFixedVariables() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariables.kt"); + } + + @Test + @TestMetadata("invokeExtensionReceiverWithNotFixedVariablesInitial.kt") + public void testInvokeExtensionReceiverWithNotFixedVariablesInitial() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariablesInitial.kt"); + } + @Test @TestMetadata("kt47744.kt") public void testKt47744() throws Exception { @@ -17331,6 +17427,36 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/labaledCall.kt"); } + @Test + @TestMetadata("lambdaParameterForBareType.kt") + public void testLambdaParameterForBareType() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.kt"); + } + + @Test + @TestMetadata("lambdaParameterTypeFixation.kt") + public void testLambdaParameterTypeFixation() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterTypeFixation.kt"); + } + + @Test + @TestMetadata("lastLambdaStatementWithFixedVariables.kt") + public void testLastLambdaStatementWithFixedVariables() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lastLambdaStatementWithFixedVariables.kt"); + } + + @Test + @TestMetadata("manyArgsDifferentYields.kt") + public void testManyArgsDifferentYields() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/manyArgsDifferentYields.kt"); + } + + @Test + @TestMetadata("memberScopeOfCapturedTypeForPostponedCall.kt") + public void testMemberScopeOfCapturedTypeForPostponedCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/memberScopeOfCapturedTypeForPostponedCall.kt"); + } + @Test @TestMetadata("multiLambdaRestriction.kt") public void testMultiLambdaRestriction() throws Exception { @@ -17343,12 +17469,42 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/multiLambdaRestrictionDisabled.kt"); } + @Test + @TestMetadata("nestedLambdaWithLastLambdaContainingCall.kt") + public void testNestedLambdaWithLastLambdaContainingCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithLastLambdaContainingCall.kt"); + } + + @Test + @TestMetadata("nestedLambdaWithNonLastYieldStatement.kt") + public void testNestedLambdaWithNonLastYieldStatement() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithNonLastYieldStatement.kt"); + } + + @Test + @TestMetadata("nestedLambdasWithOverloadResolutionByReturnType.kt") + public void testNestedLambdasWithOverloadResolutionByReturnType() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdasWithOverloadResolutionByReturnType.kt"); + } + + @Test + @TestMetadata("newTvFromLamdaAreNotCountedAsProper.kt") + public void testNewTvFromLamdaAreNotCountedAsProper() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/newTvFromLamdaAreNotCountedAsProper.kt"); + } + @Test @TestMetadata("noBuilderInferenceRestrictionReceiverInconsistency.kt") public void testNoBuilderInferenceRestrictionReceiverInconsistency() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/noBuilderInferenceRestrictionReceiverInconsistency.kt"); } + @Test + @TestMetadata("overloadResolutionByLambdaReturnTypeInsideBI.kt") + public void testOverloadResolutionByLambdaReturnTypeInsideBI() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/overloadResolutionByLambdaReturnTypeInsideBI.kt"); + } + @Test @TestMetadata("propertySubstitution.kt") public void testPropertySubstitution() throws Exception { @@ -17361,12 +17517,24 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/simpleLambdaInCallWithAnotherLambdaWithBuilderInference.kt"); } + @Test + @TestMetadata("singleBranchConditionLastStatementInLambda.kt") + public void testSingleBranchConditionLastStatementInLambda() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/singleBranchConditionLastStatementInLambda.kt"); + } + @Test @TestMetadata("skipedUnresolvedInBuilderInferenceWithStubReceiverType.kt") public void testSkipedUnresolvedInBuilderInferenceWithStubReceiverType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/skipedUnresolvedInBuilderInferenceWithStubReceiverType.kt"); } + @Test + @TestMetadata("smartCastOnBuilderController.kt") + public void testSmartCastOnBuilderController() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.kt"); + } + @Test @TestMetadata("specialCallsWithCallableReferences.kt") public void testSpecialCallsWithCallableReferences() throws Exception { @@ -17415,6 +17583,24 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/specialCallsWithLambdas.kt"); } + @Test + @TestMetadata("substitutedSyntheticPropertyUsage.kt") + public void testSubstitutedSyntheticPropertyUsage() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.kt"); + } + + @Test + @TestMetadata("theSimplestBuilder.kt") + public void testTheSimplestBuilder() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/theSimplestBuilder.kt"); + } + + @Test + @TestMetadata("whenWithPropertyHavingSomePCLACallsWithinInitializer.kt") + public void testWhenWithPropertyHavingSomePCLACallsWithinInitializer() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/whenWithPropertyHavingSomePCLACallsWithinInitializer.kt"); + } + @Test @TestMetadata("withoutAnnotationDisabledFeature.kt") public void testWithoutAnnotationDisabledFeature() throws Exception { @@ -17512,6 +17698,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/renderingStubTypes.kt"); } + @Test + @TestMetadata("simpleIntersection.kt") + public void testSimpleIntersection() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.kt"); + } + @Test @TestMetadata("stubTypeReceiverRestriction.kt") public void testStubTypeReceiverRestriction() throws Exception { @@ -41423,6 +41615,12 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667.kt"); } + @Test + @TestMetadata("kt38667Simplified.kt") + public void testKt38667Simplified() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667Simplified.kt"); + } + @Test @TestMetadata("kt38766.kt") public void testKt38766() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java index bb2b315d69e..2c722dd2e49 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java @@ -2755,6 +2755,12 @@ public class FirLightTreeBlackBoxCodegenTestGenerated extends AbstractFirLightTr KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java index efa02bf4a8e..66c69bce859 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated.java @@ -2755,6 +2755,12 @@ public class FirLightTreeBlackBoxCodegenWithIrFakeOverrideGeneratorTestGenerated KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java index 6cad58c380d..8575a50450e 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java @@ -2755,6 +2755,12 @@ public class FirPsiBlackBoxCodegenTestGenerated extends AbstractFirPsiBlackBoxCo KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java index 3716d33c645..27818467620 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirLightTreeJvmIrTextTestGenerated.java @@ -2890,6 +2890,12 @@ public class FirLightTreeJvmIrTextTestGenerated extends AbstractFirLightTreeJvmI runTest("compiler/testData/ir/irText/firProblems/MultiList.kt"); } + @Test + @TestMetadata("noErrorTypeAfterCaptureApproximation.kt") + public void testNoErrorTypeAfterCaptureApproximation() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt"); + } + @Test @TestMetadata("OutBox.kt") public void testOutBox() throws Exception { @@ -3240,6 +3246,12 @@ public class FirLightTreeJvmIrTextTestGenerated extends AbstractFirLightTreeJvmI runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt"); } + @Test + @TestMetadata("noSyntheticTypeParameterLeftAfterPCLA.kt") + public void testNoSyntheticTypeParameterLeftAfterPCLA() throws Exception { + runTest("compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt"); + } + @Test @TestMetadata("typeAliasCtorForGenericClass.kt") public void testTypeAliasCtorForGenericClass() throws Exception { diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java index a4567ab3465..ab8270655a1 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/ir/FirPsiJvmIrTextTestGenerated.java @@ -2890,6 +2890,12 @@ public class FirPsiJvmIrTextTestGenerated extends AbstractFirPsiJvmIrTextTest { runTest("compiler/testData/ir/irText/firProblems/MultiList.kt"); } + @Test + @TestMetadata("noErrorTypeAfterCaptureApproximation.kt") + public void testNoErrorTypeAfterCaptureApproximation() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt"); + } + @Test @TestMetadata("OutBox.kt") public void testOutBox() throws Exception { @@ -3240,6 +3246,12 @@ public class FirPsiJvmIrTextTestGenerated extends AbstractFirPsiJvmIrTextTest { runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt"); } + @Test + @TestMetadata("noSyntheticTypeParameterLeftAfterPCLA.kt") + public void testNoSyntheticTypeParameterLeftAfterPCLA() throws Exception { + runTest("compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt"); + } + @Test @TestMetadata("typeAliasCtorForGenericClass.kt") public void testTypeAliasCtorForGenericClass() throws Exception { diff --git a/compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt b/compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt new file mode 100644 index 00000000000..5e13bd24253 --- /dev/null +++ b/compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt @@ -0,0 +1,30 @@ +class Buildee { + var r: CT? = null + fun yield(arg: CT) { + r = arg + } +} + +fun build(instructions: Buildee.() -> Unit): Buildee { + return Buildee().apply(instructions) +} + + +class Logger { + fun error() { + throw RuntimeException("") + } +} + +fun logger(arg: T): Logger = Logger() + +fun box(): String { + val b = build { + if ("".hashCode() == 0) { + yield("OK") + } else { + logger(this).error() + } + } + return b.r ?: "fail" +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/assignmentUsingIncompletePCLACall.kt b/compiler/testData/diagnostics/tests/inference/builderInference/assignmentUsingIncompletePCLACall.kt new file mode 100644 index 00000000000..0cfc52244d3 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/assignmentUsingIncompletePCLACall.kt @@ -0,0 +1,20 @@ +// FIR_IDENTICAL + +class Controller { + fun yield(t: T): Boolean = true +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() +fun T.bar(x: (T) -> R): R = TODO() + +var children: String = TODO() + +fun main(key: String?, v: Number) { + generate { + yield("") + // Here, elvis-synthetic call is not completed yet, but it's variable K is already fixed + // Assignment is used, because for that (outside of PCLA) we would use FULL completion + children = key ?: v.bar { it.toString() } + }.length +} + diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/bothOuterAndProperConstraints.kt b/compiler/testData/diagnostics/tests/inference/builderInference/bothOuterAndProperConstraints.kt new file mode 100644 index 00000000000..7296066667c --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/bothOuterAndProperConstraints.kt @@ -0,0 +1,15 @@ +// FIR_IDENTICAL +class Controller { + fun yield(t: T): Boolean = true +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun foo(w: R, x: (R) -> R): R = TODO() + +fun main() { + generate { + yield(1) + yield(foo(2) { 3 }) + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/builderPassedAsNamedArgument.kt b/compiler/testData/diagnostics/tests/inference/builderInference/builderPassedAsNamedArgument.kt new file mode 100644 index 00000000000..d09229de365 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/builderPassedAsNamedArgument.kt @@ -0,0 +1,21 @@ +// FIR_IDENTICAL +class Controller + +fun generate1(g: suspend (Controller) -> Unit): S = TODO() +fun generate2(g: suspend Controller.() -> Unit): S = TODO() + +fun foo(c: Controller) {} + +fun foo() { + val t1 = generate1 { + foo(c = it) + } + + t1 + + val t2 = generate2 { + foo(c = this) + } + + t2 +} diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceAsArgumentForTransaction.kt b/compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceAsArgumentForTransaction.kt new file mode 100644 index 00000000000..7f2313d414b --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceAsArgumentForTransaction.kt @@ -0,0 +1,38 @@ +// FIR_IDENTICAL +// WITH_STDLIB +import kotlin.reflect.KMutableProperty0 + +class Controller + +fun generate(g: suspend Controller.() -> Unit): S1 = TODO() + +interface ReadonlyPropertyKey + +fun Controller.implement( + propertyKey: ReadonlyPropertyKey, + getter: () -> V2, +) { +} + +fun Controller.implement( + propertyKey: ReadonlyPropertyKey, + prop: KMutableProperty0, +) { +} + +interface Screen { + val screen: Any? get() = "" +} + +val Name: ReadonlyPropertyKey = TODO() + +val Screen.name: String + get() = "" + +class A : Screen { + fun foo() { + generate { + implement(Name, ::name) + }.screen + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceInsideInvokeCall.kt b/compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceInsideInvokeCall.kt new file mode 100644 index 00000000000..70238f6d917 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceInsideInvokeCall.kt @@ -0,0 +1,15 @@ +// FIR_IDENTICAL +fun mySuspendable(block: (MyContinuation) -> Unit): X = TODO() + +interface MyContinuation { + fun cancel(): Unit +} + +fun MyContinuation.resume(value: Z) {} + +fun cancelOrProceed(handler: (cancel: () -> Unit, proceed: () -> Unit) -> Unit) { + mySuspendable { x -> + // Was exception: Expected expression 'FirCallableReferenceAccessImpl' to be resolved + handler(x::cancel) { x.resume("") } + }.length +} diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.fir.kt new file mode 100644 index 00000000000..654a4873d67 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.fir.kt @@ -0,0 +1,24 @@ +// WITH_STDLIB +import kotlin.contracts.ExperimentalContracts +import kotlin.contracts.contract + +class Controller { + fun yield(t: T): Boolean = true +} + +@OptIn(ExperimentalContracts::class) +fun Controller.ensureNotNull(value: B?, shift: () -> R): B { + contract { returns() implies (value != null) } + return value!! +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun bar(x: Int) {} + +fun foo(x: Int?) { + generate { + ensureNotNull(x) { "" } + bar(x) + } +} diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.kt b/compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.kt new file mode 100644 index 00000000000..15741b77662 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.kt @@ -0,0 +1,24 @@ +// WITH_STDLIB +import kotlin.contracts.ExperimentalContracts +import kotlin.contracts.contract + +class Controller { + fun yield(t: T): Boolean = true +} + +@OptIn(ExperimentalContracts::class) +fun Controller.ensureNotNull(value: B?, shift: () -> R): B { + contract { returns() implies (value != null) } + return value!! +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun bar(x: Int) {} + +fun foo(x: Int?) { + generate { + ensureNotNull(x) { "" } + bar(x) + } +} diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/elvisWithReturnInLastStatementOfLastLambda.kt b/compiler/testData/diagnostics/tests/inference/builderInference/elvisWithReturnInLastStatementOfLastLambda.kt new file mode 100644 index 00000000000..b7a00986f03 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/elvisWithReturnInLastStatementOfLastLambda.kt @@ -0,0 +1,29 @@ +// FIR_IDENTICAL + +class Controller { + fun yield(t: T1) {} +} + +fun generate( + block: Controller.() -> Unit +): T2 = TODO() + +class Res { + val e: E1 get() = TODO() +} + +fun foo(x: String): Res = TODO() + +fun emptyRes(): Res = TODO() + +fun myRun(r: () -> R): R = TODO() + +fun baz(x: String?) { + generate { + val y = myRun { + foo(x ?: return@myRun emptyRes()) + } + + yield(y) + }.e.length +} diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.fir.kt new file mode 100644 index 00000000000..6ca48743a98 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.fir.kt @@ -0,0 +1,35 @@ +fun generate(c: Controller.() -> Unit): E = TODO() + +interface In { + fun call(t: T1) {} +} + +interface Controller { + val prop: In + fun get(): F +} + +fun id(f: F): F = TODO() +fun select(e1: F2, e: F2): F2 = e + +fun main() { + generate { + prop.call("") + }.length + + generate { + id(prop).call("") + }.length + + generate { + prop.call("") + + get().length + + id(get()).length + }.length + + generate { + select("", get()).length + }.length +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.kt b/compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.kt new file mode 100644 index 00000000000..4f6bb4ceb65 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.kt @@ -0,0 +1,35 @@ +fun generate(c: Controller.() -> Unit): E = TODO() + +interface In { + fun call(t: T1) {} +} + +interface Controller { + val prop: In + fun get(): F +} + +fun id(f: F): F = TODO() +fun select(e1: F2, e: F2): F2 = e + +fun main() { + generate { + prop.call("") + }.length + + generate { + id(prop).call("") + }.length + + generate { + prop.call("") + + get().length + + id(get()).length + }.length + + generate { + select("", get()).length + }.length +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceiversInitial.kt b/compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceiversInitial.kt new file mode 100644 index 00000000000..6ef5c43a3a6 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceiversInitial.kt @@ -0,0 +1,30 @@ +// FIR_IDENTICAL + +interface Units + +class SimpleDoubleUnits : Units + +fun build(builderCode: RendererBuilder.() -> Unit) {} + +class RendererBuilder { + var leftScaleCurves: CurveSet? = null + + fun addDecorations(render: suspend RenderContext.() -> Unit) {} +} + +interface RenderContext { + val leftScaleValueToY: ((RCLeft) -> Double)? +} + +class State { + suspend fun render() { + build { + leftScaleCurves = CurveSet(SimpleDoubleUnits()) + addDecorations { + leftScaleValueToY!!(0.67) + } + } + } +} + +class CurveSet(units: Units) diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.fir.kt new file mode 100644 index 00000000000..39b4f520180 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.fir.kt @@ -0,0 +1,37 @@ +class Controller { + fun yield(t: T): Boolean = true + fun get(): T = TODO() +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +interface A { + val a: Any +} + +interface B : A { + val b: Any +} + +fun myWith(r: R, b: R.() -> Unit) {} + +fun main(aI: A, bI: B) { + val x = generate { + // B <: S + yield(bI) + + // S <: R + // B <: R + // R = B + // S = B + myWith(get()) { + this.a + this.b + } + + yield(aI) + } + + x.a + x.b +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.kt b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.kt new file mode 100644 index 00000000000..d11f3196bb2 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.kt @@ -0,0 +1,37 @@ +class Controller { + fun yield(t: T): Boolean = true + fun get(): T = TODO() +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +interface A { + val a: Any +} + +interface B : A { + val b: Any +} + +fun myWith(r: R, b: R.() -> Unit) {} + +fun main(aI: A, bI: B) { + val x = generate { + // B <: S + yield(bI) + + // S <: R + // B <: R + // R = B + // S = B + myWith(get()) { + this.a + this.b + } + + yield(aI) + } + + x.a + x.b +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.fir.kt new file mode 100644 index 00000000000..ae5c23b5ca9 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.fir.kt @@ -0,0 +1,24 @@ +class Controller { + fun yield(t: T): Boolean = true + fun get(): T = TODO() +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun bar(x: Any) {} +fun myWith(r: R, b: (R) -> Unit) {} + +fun main() { + generate { + // S <: Any + bar(get()) + + // S <: R + // Any <: R + myWith(get()) { + it.length + } + + yield("") + }.length +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.kt b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.kt new file mode 100644 index 00000000000..b9842bd2897 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.kt @@ -0,0 +1,24 @@ +class Controller { + fun yield(t: T): Boolean = true + fun get(): T = TODO() +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun bar(x: Any) {} +fun myWith(r: R, b: (R) -> Unit) {} + +fun main() { + generate { + // S <: Any + bar(get()) + + // S <: R + // Any <: R + myWith(get()) { + it.length + } + + yield("") + }.length +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.fir.kt new file mode 100644 index 00000000000..c0be1ce2f82 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.fir.kt @@ -0,0 +1,32 @@ +class Controller { + fun yield(t: T): Boolean = true + fun get(): T = TODO() +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun foo(w: R, x: (R) -> R): R = TODO() + +fun materialize(): Q = TODO() + +fun bar(x: String) {} + +fun main() { + generate { + // S <: String + bar(get()) + // R <: S + // R <: String + // R = String + yield(foo(materialize()) { it.length.toString() }) + } + + generate { + // String <: S + yield("") + // S <: R + // => String <: R + // R = CST(S, String) = String + foo(get()) { it.length.toString() } + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.kt b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.kt new file mode 100644 index 00000000000..d5d656f2663 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.kt @@ -0,0 +1,32 @@ +class Controller { + fun yield(t: T): Boolean = true + fun get(): T = TODO() +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun foo(w: R, x: (R) -> R): R = TODO() + +fun materialize(): Q = TODO() + +fun bar(x: String) {} + +fun main() { + generate { + // S <: String + bar(get()) + // R <: S + // R <: String + // R = String + yield(foo(materialize()) { it.length.toString() }) + } + + generate { + // String <: S + yield("") + // S <: R + // => String <: R + // R = CST(S, String) = String + foo(get()) { it.length.toString() } + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.fir.kt new file mode 100644 index 00000000000..616a4386e5d --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.fir.kt @@ -0,0 +1,32 @@ +class Controller { + fun yield(t: T): Boolean = true +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun select(x: E4, y: E4) {} +fun selectL(x: E5, y: E5, l: (E5) -> Unit) {} + +fun main(x: Controller) { + generate { + // Just adding the constraints + // Controller <: E4 + // Controller <: E4 + // No fixation is required + select(x, this) + }.length + + generate { + // Adding the constraints + // Controller <: E5 + // Controller <: E5 + // But to analyze lambda we fix E5 to CST(Controller, Controller) = Controller + // The question is what is CST(String, S) + // And current answer in K2 is that it's String just the same way as when while fixating some TV, it has improper lower constraits + // See org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.prepareLowerConstraints + selectL(x, this) { x -> + x.yield(1) + x.yield("") + } + }.length +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.kt b/compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.kt new file mode 100644 index 00000000000..aaad0a0f352 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.kt @@ -0,0 +1,32 @@ +class Controller { + fun yield(t: T): Boolean = true +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun select(x: E4, y: E4) {} +fun selectL(x: E5, y: E5, l: (E5) -> Unit) {} + +fun main(x: Controller) { + generate { + // Just adding the constraints + // Controller <: E4 + // Controller <: E4 + // No fixation is required + select(x, this) + }.length + + generate { + // Adding the constraints + // Controller <: E5 + // Controller <: E5 + // But to analyze lambda we fix E5 to CST(Controller, Controller) = Controller + // The question is what is CST(String, S) + // And current answer in K2 is that it's String just the same way as when while fixating some TV, it has improper lower constraits + // See org.jetbrains.kotlin.resolve.calls.inference.components.ResultTypeResolver.prepareLowerConstraints + selectL(x, this) { x -> + x.yield(1) + x.yield("") + } + }.length +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariables.kt b/compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariables.kt new file mode 100644 index 00000000000..1f67399385e --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariables.kt @@ -0,0 +1,15 @@ +// FIR_IDENTICAL + +interface Controller { + fun yield(t: F) +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun foo( + prop: Controller.() -> Unit +) { + generate { + prop() + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariablesInitial.kt b/compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariablesInitial.kt new file mode 100644 index 00000000000..9ee905c5ba2 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariablesInitial.kt @@ -0,0 +1,22 @@ +// FIR_IDENTICAL + +interface Controller { + fun yield(t: F) +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +interface Topic + +fun subscribe(topic: Topic, handler: E) {} + +fun messageBusFlow( + topic: Topic, + initialValue: (suspend () -> K)? = null, + listener: suspend Controller.() -> L +) { + generate { + initialValue?.let { yield(it()) } + subscribe(topic, listener()) + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.fir.kt new file mode 100644 index 00000000000..a7bfbe72b77 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.fir.kt @@ -0,0 +1,20 @@ +// ISSUE: KT-64840 (K2/PCLA difference) +class Controller { + fun yield(t: T): Boolean = true +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +interface A { + val a: F? +} + +interface B : A + +fun predicate(x: X, c: Controller, p: (X) -> Boolean) {} + +fun main(a: A<*>) { + generate { + predicate(a, this) { it is B } + }.a +} diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.kt b/compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.kt new file mode 100644 index 00000000000..a2138610b90 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.kt @@ -0,0 +1,20 @@ +// ISSUE: KT-64840 (K2/PCLA difference) +class Controller { + fun yield(t: T): Boolean = true +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +interface A { + val a: F? +} + +interface B : A + +fun predicate(x: X, c: Controller, p: (X) -> Boolean) {} + +fun main(a: A<*>) { + generate { + predicate(a, this) { it is B } + }.a +} diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterTypeFixation.kt b/compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterTypeFixation.kt new file mode 100644 index 00000000000..580f6714e6e --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterTypeFixation.kt @@ -0,0 +1,17 @@ +// FIR_IDENTICAL +class Controller { + fun yield(t: T): Boolean = true +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun foo() { + val t = generate { + yield("") + bar(this, "") { it.length } + } + + t +} + +fun > bar(f: F, x: R, b: (R) -> Unit) {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/lastLambdaStatementWithFixedVariables.kt b/compiler/testData/diagnostics/tests/inference/builderInference/lastLambdaStatementWithFixedVariables.kt new file mode 100644 index 00000000000..c312c11e1ae --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/lastLambdaStatementWithFixedVariables.kt @@ -0,0 +1,24 @@ +// FIR_IDENTICAL +class Controller { + fun yield(t: T): Boolean = true +} +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun myMap(x: Controller, y: E, b: (E) -> F) {} + +fun myTake(t: G, predicate: (G) -> Unit): G = TODO() + +fun foo() { + generate { + myMap(this, "") { + // NB: The statement below was relevant some time ago, but just it doesn't seem so, but left it for history + // Here, to start analysis of the lambda, we need to fix the G variable and after that, + // when we add a subtyping constraint from the whole `myTake` call to the last statement of the `myMap` lambda, + // the return type of the former call contains fixed variable G. + // That is quite irregular for non-PCLA cases, because ther we don't fix TVs that belong to return types. + myTake("") { x -> + x.length + } + } + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/manyArgsDifferentYields.kt b/compiler/testData/diagnostics/tests/inference/builderInference/manyArgsDifferentYields.kt new file mode 100644 index 00000000000..fae7fc73c8c --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/manyArgsDifferentYields.kt @@ -0,0 +1,23 @@ +// FIR_IDENTICAL +class Controller { + fun yield(t: T): Boolean = true +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +interface Base +interface Derived : Base + +fun foo( + base: Base, + derived: Derived, +) { + val t = generate { + twoBooleans(yield(base), yield(derived)) + } + + // Should be Base, not just Derived + t +} + +fun twoBooleans(x: Boolean, y: Boolean) {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/memberScopeOfCapturedTypeForPostponedCall.kt b/compiler/testData/diagnostics/tests/inference/builderInference/memberScopeOfCapturedTypeForPostponedCall.kt new file mode 100644 index 00000000000..b53cb4a5d90 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/memberScopeOfCapturedTypeForPostponedCall.kt @@ -0,0 +1,31 @@ +// FIR_IDENTICAL +class Controller { + fun yield(t: T): String = "1" +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +class MyAsserter> { + fun self(): E = TODO() + fun member() {} +} + +fun assertThat(x: String): MyAsserter<*> = TODO() + +fun bar(): String? = null + +fun check(b: Boolean, l: List) { + generate { + assertThat("") + .self() + .member() + + assertThat(bar()!!) + .self() + .member() + + assertThat(yield("")) + .self() + .member() + }.length +} diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithLastLambdaContainingCall.kt b/compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithLastLambdaContainingCall.kt new file mode 100644 index 00000000000..150ffbece23 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithLastLambdaContainingCall.kt @@ -0,0 +1,19 @@ +// FIR_IDENTICAL + +class Controller { + fun yield(t: T) {} +} + +fun generate(g: suspend Controller.() -> Unit) {} + +fun main() { + generate { + myRun { + yield("") + myLet {} + } + } +} + +fun myLet(x: () -> Unit) {} +fun myRun(x: () -> E) {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithNonLastYieldStatement.kt b/compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithNonLastYieldStatement.kt new file mode 100644 index 00000000000..b5a7547a0e0 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithNonLastYieldStatement.kt @@ -0,0 +1,20 @@ +// FIR_IDENTICAL + +fun myRun(runnable: () -> T): T = TODO() + +interface Controller { + fun yield(t: F) +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun foo(x: List) { + val y = generate { + myRun { + yield("") + Unit + } + } + + y.length +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdasWithOverloadResolutionByReturnType.kt b/compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdasWithOverloadResolutionByReturnType.kt new file mode 100644 index 00000000000..22e090e8e12 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdasWithOverloadResolutionByReturnType.kt @@ -0,0 +1,27 @@ +// FIR_IDENTICAL +// WITH_STDLIB + +class Controller { + fun yield(t: T): Boolean = true +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun foo(x1: List, x2: List) { + generate { + yield( + x1.flatMap1 { + x2.map2 { "" } + } + ) + }.length +} + +fun Iterable.flatMap1(transform: (T1) -> String): String = TODO() + +@OptIn(kotlin.experimental.ExperimentalTypeInference::class) +@OverloadResolutionByLambdaReturnType +@kotlin.jvm.JvmName("flatMapSequence") +fun Iterable.flatMap1(transform: (T2) -> Int): Int = TODO() + +fun T3.map2(transform: (T3) -> R3): R3 = TODO() \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/newTvFromLamdaAreNotCountedAsProper.kt b/compiler/testData/diagnostics/tests/inference/builderInference/newTvFromLamdaAreNotCountedAsProper.kt new file mode 100644 index 00000000000..5ac925a0752 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/newTvFromLamdaAreNotCountedAsProper.kt @@ -0,0 +1,24 @@ +// FIR_IDENTICAL +class Controller { + fun yield(t: T): Boolean = true +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +class Out + +fun catching(body: suspend () -> T1): Out = TODO() +fun Out.getOrElse2(onFailure: () -> R2): R2 = TODO() + +fun myEmptyList(): List = TODO() + +fun main(x: List) { + + generate { + val languages = catching { x }.getOrElse2 { + myEmptyList() + } + + yield(languages[0].length) + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/overloadResolutionByLambdaReturnTypeInsideBI.kt b/compiler/testData/diagnostics/tests/inference/builderInference/overloadResolutionByLambdaReturnTypeInsideBI.kt new file mode 100644 index 00000000000..1e28a9c8bb4 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/overloadResolutionByLambdaReturnTypeInsideBI.kt @@ -0,0 +1,39 @@ +// FIR_IDENTICAL +// WITH_STDLIB +// WITH_RUNTIME + +interface A1 +interface A2 +interface A3 +interface Res1 +interface Res2 + +class Controller { + fun yield(t: T) {} +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun main(src: A1, res1: Res1) { + generate { + foo(src) { } + // At this stage we've got E type variable not fixed + // And two `bar` overloads one of which we should choose depending on the return type + // But we can't _simply_ start lambda analysis with ConstraintSystemCompletionMode.UNTIL_FIRST_LAMBDA + // because currently it only allows lambda analysis for completely ready + .bar { y -> + res1 + } + + yield("") + }.length +} + +fun foo(x: A1, block: () -> Unit): A2> = TODO() + +fun A2.bar(transform: (A2) -> Res1) {} + +@OptIn(kotlin.experimental.ExperimentalTypeInference::class) +@OverloadResolutionByLambdaReturnType +@kotlin.jvm.JvmName("bar1") +fun A2.bar(transform: (A2) -> Res2) {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/singleBranchConditionLastStatementInLambda.kt b/compiler/testData/diagnostics/tests/inference/builderInference/singleBranchConditionLastStatementInLambda.kt new file mode 100644 index 00000000000..226cbb5eaa8 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/singleBranchConditionLastStatementInLambda.kt @@ -0,0 +1,19 @@ +// FIR_IDENTICAL + +class Controller { + fun yield(t: T): Boolean = true +} + +fun myRun(b: () -> R) {} +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun foo(b: Boolean) { + generate { + myRun { + if (b) { + yield("") + } + } + Unit + } +} diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.fir.kt new file mode 100644 index 00000000000..b100493c899 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.fir.kt @@ -0,0 +1,18 @@ +class Controller + +fun generate( + block: (Controller) -> Unit +): T1 = TODO() + +fun foobar( + cont: Controller +) {} + +fun foo() { + generate { cont -> + foobar(cont as Controller) + baz(cont) + } +} + +fun baz(cont: Controller) {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.kt b/compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.kt new file mode 100644 index 00000000000..6a5dc5acf24 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.kt @@ -0,0 +1,18 @@ +class Controller + +fun generate( + block: (Controller) -> Unit +): T1 = TODO() + +fun foobar( + cont: Controller +) {} + +fun foo() { + generate { cont -> + foobar(cont as Controller) + baz(cont) + } +} + +fun baz(cont: Controller) {} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.fir.kt new file mode 100644 index 00000000000..c26a1ae2c81 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.fir.kt @@ -0,0 +1,58 @@ +fun build(block: TestInterface.() -> Unit): R1 = TODO() + +interface TestInterface { + fun emit(r: R) + fun get(): R +} + +fun select(x: X, y: X): X = x + +fun test() { + val ret0 = build l1@{ + emit("1") + + build l2@{ + emit(1) + select(this@l1.get(), get()) + } + } + + & java.io.Serializable")!>ret0 + + val ret1 = build l1@{ + emit("1") + + build l2@{ + emit(1) + select(this@l1.get(), get()) + } + } + + & java.io.Serializable")!>ret1 + + val ret2 = build l1@{ + emit("1") + + build l2@{ + emit(1) + select(this@l1.get(), get()) + "" + } + "" + } + + ret2 + + val ret3 = build l1@{ + emit("1") + + build l2@{ + emit(1) + & java.io.Serializable")!>select(this@l1.get(), get()) + "" + } + "" + } + + ret3 +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.kt b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.kt new file mode 100644 index 00000000000..ad22c0b99dd --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.kt @@ -0,0 +1,58 @@ +fun build(block: TestInterface.() -> Unit): R1 = TODO() + +interface TestInterface { + fun emit(r: R) + fun get(): R +} + +fun select(x: X, y: X): X = x + +fun test() { + val ret0 = build l1@{ + emit("1") + + build l2@{ + emit(1) + select(this@l1.get(), get()) + } + } + + & java.io.Serializable}")!>ret0 + + val ret1 = build l1@{ + emit("1") + + build l2@{ + emit(1) + select(this@l1.get(), get()) + } + } + + & java.io.Serializable}")!>ret1 + + val ret2 = build l1@{ + emit("1") + + build l2@{ + emit(1) + select(this@l1.get(), get()) + "" + } + "" + } + + ret2 + + val ret3 = build l1@{ + emit("1") + + build l2@{ + emit(1) + select(this@l1.get(), get()) + "" + } + "" + } + + ret3 +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.fir.kt b/compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.fir.kt new file mode 100644 index 00000000000..9058dc8936d --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.fir.kt @@ -0,0 +1,20 @@ +// FILE: GenericJava.java +public class GenericJava { + public java.util.List getFoo() {} +} + +// FILE: main.kt +class Controller { + fun yield(t: T) {} + + fun gg(): GenericJava = TODO() +} + +fun generate(g: suspend Controller.() -> Unit) {} + +fun main() { + generate { + yield("") + gg().foo + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.kt b/compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.kt new file mode 100644 index 00000000000..2862c27383f --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.kt @@ -0,0 +1,20 @@ +// FILE: GenericJava.java +public class GenericJava { + public java.util.List getFoo() {} +} + +// FILE: main.kt +class Controller { + fun yield(t: T) {} + + fun gg(): GenericJava = TODO() +} + +fun generate(g: suspend Controller.() -> Unit) {} + +fun main() { + generate { + yield("") + ..kotlin.collections.List<(TypeVariable(S)..TypeVariable(S)?)>?)")!>gg().foo + } +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/theSimplestBuilder.kt b/compiler/testData/diagnostics/tests/inference/builderInference/theSimplestBuilder.kt new file mode 100644 index 00000000000..c96696eb876 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/theSimplestBuilder.kt @@ -0,0 +1,13 @@ +// FIR_IDENTICAL +interface Box { + fun add(f: F) + fun get(): F +} + +fun myBuilder(x: Box.() -> Unit): Box = TODO() + +fun main() { + myBuilder { + add("") + }.get().length +} \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/builderInference/whenWithPropertyHavingSomePCLACallsWithinInitializer.kt b/compiler/testData/diagnostics/tests/inference/builderInference/whenWithPropertyHavingSomePCLACallsWithinInitializer.kt new file mode 100644 index 00000000000..2ebce5426d8 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/builderInference/whenWithPropertyHavingSomePCLACallsWithinInitializer.kt @@ -0,0 +1,27 @@ +// FIR_IDENTICAL + +interface Controller { + fun yield(t: F) +} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun foo(b: Boolean, buffer: Collection) { + generate { + if (b) { + val x: String = myLaunch { + myRun { + yield(buffer.toTypedArray2()) + } + } + } + }.get(0).length +} + +fun Collection.toTypedArray2(): Array = TODO() + +fun myLaunch( + block: () -> Unit +): String = TODO() + +fun myRun(action: () -> Unit): Unit = TODO() \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/notFixedTopLevelLambdaParameter.kt b/compiler/testData/diagnostics/tests/inference/notFixedTopLevelLambdaParameter.kt new file mode 100644 index 00000000000..5dab430bafa --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/notFixedTopLevelLambdaParameter.kt @@ -0,0 +1,18 @@ +// FIR_IDENTICAL +class Controller { + fun yield(t: T): Boolean = true +} + +fun Controller.forEach(x: (T1) -> Unit) {} + +fun generate(g: suspend Controller.() -> Unit): S = TODO() + +fun main() { + generate { + forEach { + foo(it) + } + }.length +} + +fun foo(x: String) {} diff --git a/compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667Simplified.kt b/compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667Simplified.kt new file mode 100644 index 00000000000..75e69bbac4c --- /dev/null +++ b/compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667Simplified.kt @@ -0,0 +1,22 @@ +// FIR_IDENTICAL +// ISSUE: KT-38667 + +interface PropKey +abstract class AnimationBuilder +class TransitionSpec { + fun tween(init: AnimationBuilder.() -> Unit): AnimationBuilder = TODO() + fun PropKey.using(builder: AnimationBuilder) {} +} +class TransitionDefinition { + fun transition(fromState: X, init: TransitionSpec.() -> Unit) {} +} + +fun transitionDefinition(init: TransitionDefinition.() -> Unit) {} + +fun main(intProp: PropKey, w: Int) { + transitionDefinition { + transition(w) { + intProp.using(tween {}) + } + } +} diff --git a/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.ir.txt b/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.ir.txt new file mode 100644 index 00000000000..da6af5090b7 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.ir.txt @@ -0,0 +1,67 @@ +FILE fqName: fileName:/noErrorTypeAfterCaptureApproximation.kt + CLASS CLASS name:Inv1 modality:FINAL visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Inv1.Inv1> + TYPE_PARAMETER name:X index:0 variance: superTypes:[kotlin.Any?] reified:false + CONSTRUCTOR visibility:public <> () returnType:.Inv1.Inv1> [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Inv1 modality:FINAL visibility:public superTypes:[kotlin.Any]' + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS CLASS name:Inv2 modality:FINAL visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Inv2.Inv2> + TYPE_PARAMETER name:Y index:0 variance: superTypes:[kotlin.Any?] reified:false + CONSTRUCTOR visibility:public <> () returnType:.Inv2.Inv2> [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Inv2 modality:FINAL visibility:public superTypes:[kotlin.Any]' + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN name:useSelectOptions visibility:internal modality:FINAL (options:.Inv1.useSelectOptions>) returnType:.Inv1.Inv2.useSelectOptions>> + TYPE_PARAMETER name:F index:0 variance: superTypes:[kotlin.Any?] reified:false + VALUE_PARAMETER name:options index:0 type:.Inv1.useSelectOptions> + BLOCK_BODY + RETURN type=kotlin.Nothing from='internal final fun useSelectOptions (options: .Inv1.useSelectOptions>): .Inv1.Inv2.useSelectOptions>> declared in ' + CALL 'public final fun myRun (callback: kotlin.Function0.myRun>): T of .myRun declared in ' type=.Inv1.Inv2.useSelectOptions>> origin=null + : .Inv1.Inv2.useSelectOptions>> + callback: FUN_EXPR type=kotlin.Function0<.Inv1.Inv2.useSelectOptions>>> origin=LAMBDA + FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> () returnType:.Inv1.Inv2.useSelectOptions>> + BLOCK_BODY + RETURN type=kotlin.Nothing from='local final fun (): .Inv1.Inv2.useSelectOptions>> declared in .useSelectOptions' + CALL 'private final fun getSelectOptions (options: .Inv1.getSelectOptions>): .Inv1.Inv2.getSelectOptions>> declared in ' type=.Inv1.Inv2.useSelectOptions>> origin=null + : F of .useSelectOptions + options: GET_VAR 'options: .Inv1.useSelectOptions> declared in .useSelectOptions' type=.Inv1.useSelectOptions> origin=null + FUN name:getSelectOptions visibility:private modality:FINAL (options:.Inv1.getSelectOptions>) returnType:.Inv1.Inv2.getSelectOptions>> + TYPE_PARAMETER name:G index:0 variance: superTypes:[kotlin.Any?] reified:false + VALUE_PARAMETER name:options index:0 type:.Inv1.getSelectOptions> + BLOCK_BODY + RETURN type=kotlin.Nothing from='private final fun getSelectOptions (options: .Inv1.getSelectOptions>): .Inv1.Inv2.getSelectOptions>> declared in ' + CALL 'public final fun TODO (): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null + FUN name:myRun visibility:public modality:FINAL (callback:kotlin.Function0.myRun>) returnType:T of .myRun + TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false + VALUE_PARAMETER name:callback index:0 type:kotlin.Function0.myRun> + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun myRun (callback: kotlin.Function0.myRun>): T of .myRun declared in ' + CALL 'public final fun TODO (): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null diff --git a/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt b/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt new file mode 100644 index 00000000000..63a07b83e65 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt @@ -0,0 +1,18 @@ +// FIR_IDENTICAL +class Inv1 +class Inv2 + +internal fun useSelectOptions( + options: Inv1, +): Inv1> = + myRun { + getSelectOptions(options) + } + +private fun getSelectOptions( + options: Inv1, +): Inv1> = TODO() + +fun myRun( + callback: () -> T, +): T = TODO() \ No newline at end of file diff --git a/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt.txt b/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt.txt new file mode 100644 index 00000000000..ee55ff01db7 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt.txt @@ -0,0 +1,32 @@ +class Inv1 { + constructor() /* primary */ { + super/*Any*/() + /* () */ + + } + +} + +class Inv2 { + constructor() /* primary */ { + super/*Any*/() + /* () */ + + } + +} + +internal fun useSelectOptions(options: Inv1): Inv1> { + return myRun>>(callback = local fun (): Inv1> { + return getSelectOptions(options = options) + } +) +} + +private fun getSelectOptions(options: Inv1): Inv1> { + return TODO() +} + +fun myRun(callback: Function0): T { + return TODO() +} diff --git a/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.sig.kt.txt b/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.sig.kt.txt new file mode 100644 index 00000000000..38f06f575e4 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.sig.kt.txt @@ -0,0 +1,51 @@ +// CHECK: +// Mangled name: Inv1 +// Public signature: /Inv1|null[0] +class Inv1 { + // CHECK: + // Mangled name: Inv1#(){} + // Public signature: /Inv1.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + +} + +// CHECK: +// Mangled name: Inv2 +// Public signature: /Inv2|null[0] +class Inv2 { + // CHECK: + // Mangled name: Inv2#(){} + // Public signature: /Inv2.|-5645683436151566731[0] + // Public signature debug description: (){} + constructor() /* primary */ + +} + +// CHECK JVM_IR: +// Mangled name: #getSelectOptions(Inv1){0§}Inv1> +// Public signature: [ File '/noErrorTypeAfterCaptureApproximation.kt' <- /getSelectOptions|-2121566878546647451[0] ] +// CHECK JS_IR NATIVE: +// Mangled name: #getSelectOptions(Inv1){0§} +// Public signature: [ File '/noErrorTypeAfterCaptureApproximation.kt' <- /getSelectOptions|-4741332616265873823[0] ] +private fun getSelectOptions(options: Inv1): Inv1> + +// CHECK JVM_IR: +// Mangled name: #myRun(kotlin.Function0<0:0>){0§}0:0 +// Public signature: /myRun|-4555774550754215835[0] +// Public signature debug description: myRun(kotlin.Function0<0:0>){0§}0:0 +// CHECK JS_IR NATIVE: +// Mangled name: #myRun(kotlin.Function0<0:0>){0§} +// Public signature: /myRun|1886570319999512118[0] +// Public signature debug description: myRun(kotlin.Function0<0:0>){0§} +fun myRun(callback: Function0): T + +// CHECK JVM_IR: +// Mangled name: #useSelectOptions(Inv1){0§}Inv1> +// Public signature: /useSelectOptions|-100409295329799165[0] +// Public signature debug description: useSelectOptions(Inv1){0§}Inv1> +// CHECK JS_IR NATIVE: +// Mangled name: #useSelectOptions(Inv1){0§} +// Public signature: /useSelectOptions|3229886791495085251[0] +// Public signature debug description: useSelectOptions(Inv1){0§} +internal fun useSelectOptions(options: Inv1): Inv1> diff --git a/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.ir.txt b/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.ir.txt new file mode 100644 index 00000000000..2523018edad --- /dev/null +++ b/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.ir.txt @@ -0,0 +1,94 @@ +FILE fqName: fileName:/noSyntheticTypeParameterLeftAfterPCLA.kt + FUN name:box visibility:public modality:FINAL <> (b:kotlin.Boolean) returnType:kotlin.Unit + VALUE_PARAMETER name:b index:0 type:kotlin.Boolean + BLOCK_BODY + CALL 'public final fun generate (g: @[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.Controller.generate>, kotlin.Unit>): kotlin.Unit declared in ' type=kotlin.Unit origin=null + : kotlin.Unit + g: FUN_EXPR type=@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.Controller, kotlin.Unit> origin=LAMBDA + FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> ($receiver:.Controller) returnType:kotlin.Unit [suspend] + $receiver: VALUE_PARAMETER name:$this$generate type:.Controller + BLOCK_BODY + CALL 'public final fun expectIntf (intf: .Intf): kotlin.Unit declared in ' type=kotlin.Unit origin=null + intf: BLOCK type=.box.. origin=OBJECT_LITERAL + CLASS CLASS name: modality:FINAL visibility:local superTypes:[.Intf] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.box.. + CONSTRUCTOR visibility:public <> () returnType:.box.. [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name: modality:FINAL visibility:local superTypes:[.Intf]' + FUN name:foo visibility:public modality:OPEN <> ($this:.box..) returnType:kotlin.Unit + overridden: + public abstract fun foo (): kotlin.Unit declared in .Intf + $this: VALUE_PARAMETER name: type:.box.. + BLOCK_BODY + WHEN type=kotlin.Unit origin=IF + BRANCH + if: GET_VAR 'b: kotlin.Boolean declared in .box' type=kotlin.Boolean origin=null + then: BLOCK type=kotlin.Unit origin=null + CALL 'public final fun someUnit (): kotlin.Unit declared in ' type=kotlin.Unit origin=null + BRANCH + if: CONST Boolean type=kotlin.Boolean value=true + then: BLOCK type=kotlin.Unit origin=null + CALL 'public abstract fun yield (t: F of .Controller): kotlin.Unit declared in .Controller' type=kotlin.Unit origin=null + $this: GET_VAR '$this$generate: .Controller declared in .box.' type=.Controller origin=null + t: GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in .Intf + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in .Intf + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in .Intf + $this: VALUE_PARAMETER name: type:kotlin.Any + CONSTRUCTOR_CALL 'public constructor () declared in .box..' type=.box.. origin=OBJECT_LITERAL + CALL 'public final fun someUnit (): kotlin.Unit declared in ' type=kotlin.Unit origin=null + FUN name:expectIntf visibility:public modality:FINAL <> (intf:.Intf) returnType:kotlin.Unit + VALUE_PARAMETER name:intf index:0 type:.Intf + BLOCK_BODY + FUN name:someUnit visibility:public modality:FINAL <> () returnType:kotlin.Unit + BLOCK_BODY + CLASS INTERFACE name:Intf modality:ABSTRACT visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Intf + FUN name:foo visibility:public modality:ABSTRACT <> ($this:.Intf) returnType:kotlin.Unit + $this: VALUE_PARAMETER name: type:.Intf + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS INTERFACE name:Controller modality:ABSTRACT visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Controller.Controller> + TYPE_PARAMETER name:F index:0 variance: superTypes:[kotlin.Any?] reified:false + FUN name:yield visibility:public modality:ABSTRACT <> ($this:.Controller.Controller>, t:F of .Controller) returnType:kotlin.Unit + $this: VALUE_PARAMETER name: type:.Controller.Controller> + VALUE_PARAMETER name:t index:0 type:F of .Controller + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN name:generate visibility:public modality:FINAL (g:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.Controller.generate>, kotlin.Unit>) returnType:kotlin.Unit + TYPE_PARAMETER name:S index:0 variance: superTypes:[kotlin.Any?] reified:false + VALUE_PARAMETER name:g index:0 type:@[ExtensionFunctionType] kotlin.coroutines.SuspendFunction1<.Controller.generate>, kotlin.Unit> + BLOCK_BODY diff --git a/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt b/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt new file mode 100644 index 00000000000..827cea4ba12 --- /dev/null +++ b/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt @@ -0,0 +1,34 @@ +// FIR_IDENTICAL + +fun box(b: Boolean) { + generate { + expectIntf(object : Intf { + override fun foo() { + if (b) { + // Do not debounce regex toggle event. + someUnit() + } + else { + yield(Unit) + } + } + }) + + someUnit() + } + +} + +fun expectIntf(intf: Intf) {} + +fun someUnit() {} + +interface Intf { + fun foo() +} + +interface Controller { + fun yield(t: F) +} + +fun generate(g: suspend Controller.() -> Unit) {} \ No newline at end of file diff --git a/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt.txt b/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt.txt new file mode 100644 index 00000000000..457ccad870b --- /dev/null +++ b/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt.txt @@ -0,0 +1,48 @@ +fun box(b: Boolean) { + generate(g = local suspend fun Controller.() { + expectIntf(intf = { // BLOCK + local class : Intf { + constructor() /* primary */ { + super/*Any*/() + /* () */ + + } + + override fun foo() { + when { + b -> { // BLOCK + someUnit() + } + else -> { // BLOCK + $this$generate.yield(t = Unit) + } + } + } + + } + + () + }) + someUnit() + } +) +} + +fun expectIntf(intf: Intf) { +} + +fun someUnit() { +} + +interface Intf { + abstract fun foo() + +} + +interface Controller { + abstract fun yield(t: F) + +} + +fun generate(g: @ExtensionFunctionType SuspendFunction1, Unit>) { +} diff --git a/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.sig.kt.txt b/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.sig.kt.txt new file mode 100644 index 00000000000..67c11713141 --- /dev/null +++ b/compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.sig.kt.txt @@ -0,0 +1,47 @@ +// CHECK: +// Mangled name: Controller +// Public signature: /Controller|null[0] +interface Controller { + // CHECK: + // Mangled name: Controller#yield(1:0){} + // Public signature: /Controller.yield|3567278141085588417[0] + // Public signature debug description: yield(1:0){} + abstract fun yield(t: F): Unit + +} + +// CHECK: +// Mangled name: Intf +// Public signature: /Intf|null[0] +interface Intf { + // CHECK: + // Mangled name: Intf#foo(){} + // Public signature: /Intf.foo|-1041209573719867811[0] + // Public signature debug description: foo(){} + abstract fun foo(): Unit + +} + +// CHECK: +// Mangled name: #box(kotlin.Boolean){} +// Public signature: /box|3724984511501944637[0] +// Public signature debug description: box(kotlin.Boolean){} +fun box(b: Boolean): Unit + +// CHECK: +// Mangled name: #expectIntf(Intf){} +// Public signature: /expectIntf|-7688726594904654744[0] +// Public signature debug description: expectIntf(Intf){} +fun expectIntf(intf: Intf): Unit + +// CHECK: +// Mangled name: #generate(kotlin.coroutines.SuspendFunction1,kotlin.Unit>){0§} +// Public signature: /generate|-3399873670227373031[0] +// Public signature debug description: generate(kotlin.coroutines.SuspendFunction1,kotlin.Unit>){0§} +fun generate(g: @ExtensionFunctionType SuspendFunction1, Unit>): Unit + +// CHECK: +// Mangled name: #someUnit(){} +// Public signature: /someUnit|-6636253765775113966[0] +// Public signature debug description: someUnit(){} +fun someUnit(): Unit 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 6880368a628..fc95579b56d 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 @@ -16926,6 +16926,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/inference/nonFunctionalExpectedTypeForLambdaArgument.kt"); } + @Test + @TestMetadata("notFixedTopLevelLambdaParameter.kt") + public void testNotFixedTopLevelLambdaParameter() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/notFixedTopLevelLambdaParameter.kt"); + } + @Test @TestMetadata("nothingVsParameterBound.kt") public void testNothingVsParameterBound() throws Exception { @@ -17181,18 +17187,60 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/diagnostics/tests/inference/builderInference"), Pattern.compile("^(.*)\\.kts?$"), Pattern.compile("^(.+)\\.(reversed|fir|ll)\\.kts?$"), true); } + @Test + @TestMetadata("assignmentUsingIncompletePCLACall.kt") + public void testAssignmentUsingIncompletePCLACall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/assignmentUsingIncompletePCLACall.kt"); + } + + @Test + @TestMetadata("bothOuterAndProperConstraints.kt") + public void testBothOuterAndProperConstraints() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/bothOuterAndProperConstraints.kt"); + } + @Test @TestMetadata("builderInferenceAnnotationInLambdaWithTVExpectedType.kt") public void testBuilderInferenceAnnotationInLambdaWithTVExpectedType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/builderInferenceAnnotationInLambdaWithTVExpectedType.kt"); } + @Test + @TestMetadata("builderPassedAsNamedArgument.kt") + public void testBuilderPassedAsNamedArgument() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/builderPassedAsNamedArgument.kt"); + } + + @Test + @TestMetadata("callableReferenceAsArgumentForTransaction.kt") + public void testCallableReferenceAsArgumentForTransaction() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceAsArgumentForTransaction.kt"); + } + + @Test + @TestMetadata("callableReferenceInsideInvokeCall.kt") + public void testCallableReferenceInsideInvokeCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/callableReferenceInsideInvokeCall.kt"); + } + @Test @TestMetadata("changingResolveIfDontUseBuilderInference.kt") public void testChangingResolveIfDontUseBuilderInference() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/changingResolveIfDontUseBuilderInference.kt"); } + @Test + @TestMetadata("considerContractsOfIncompleteCalls.kt") + public void testConsiderContractsOfIncompleteCalls() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/considerContractsOfIncompleteCalls.kt"); + } + + @Test + @TestMetadata("elvisWithReturnInLastStatementOfLastLambda.kt") + public void testElvisWithReturnInLastStatementOfLastLambda() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/elvisWithReturnInLastStatementOfLastLambda.kt"); + } + @Test @TestMetadata("equalityChecksOnIntegerTypes.kt") public void testEqualityChecksOnIntegerTypes() throws Exception { @@ -17211,18 +17259,66 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/inference/builderInference/errorOnStubReceiver.kt"); } + @Test + @TestMetadata("fixingDependentVariablesForReceivers.kt") + public void testFixingDependentVariablesForReceivers() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceivers.kt"); + } + + @Test + @TestMetadata("fixingDependentVariablesForReceiversInitial.kt") + public void testFixingDependentVariablesForReceiversInitial() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingDependentVariablesForReceiversInitial.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter2.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter2() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter2.kt"); + } + + @Test + @TestMetadata("fixingTVForLambadaWithShallowDependencyToOuter3.kt") + public void testFixingTVForLambadaWithShallowDependencyToOuter3() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/fixingTVForLambadaWithShallowDependencyToOuter3.kt"); + } + @Test @TestMetadata("incompleteCallInReturnArgumentsWithProperExpectType.kt") public void testIncompleteCallInReturnArgumentsWithProperExpectType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/incompleteCallInReturnArgumentsWithProperExpectType.kt"); } + @Test + @TestMetadata("innerTvFixationFromLowerConstraints.kt") + public void testInnerTvFixationFromLowerConstraints() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/innerTvFixationFromLowerConstraints.kt"); + } + @Test @TestMetadata("invalidateKeys.kt") public void testInvalidateKeys() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/invalidateKeys.kt"); } + @Test + @TestMetadata("invokeExtensionReceiverWithNotFixedVariables.kt") + public void testInvokeExtensionReceiverWithNotFixedVariables() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariables.kt"); + } + + @Test + @TestMetadata("invokeExtensionReceiverWithNotFixedVariablesInitial.kt") + public void testInvokeExtensionReceiverWithNotFixedVariablesInitial() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/invokeExtensionReceiverWithNotFixedVariablesInitial.kt"); + } + @Test @TestMetadata("kt47744.kt") public void testKt47744() throws Exception { @@ -17331,6 +17427,36 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/inference/builderInference/labaledCall.kt"); } + @Test + @TestMetadata("lambdaParameterForBareType.kt") + public void testLambdaParameterForBareType() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterForBareType.kt"); + } + + @Test + @TestMetadata("lambdaParameterTypeFixation.kt") + public void testLambdaParameterTypeFixation() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lambdaParameterTypeFixation.kt"); + } + + @Test + @TestMetadata("lastLambdaStatementWithFixedVariables.kt") + public void testLastLambdaStatementWithFixedVariables() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/lastLambdaStatementWithFixedVariables.kt"); + } + + @Test + @TestMetadata("manyArgsDifferentYields.kt") + public void testManyArgsDifferentYields() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/manyArgsDifferentYields.kt"); + } + + @Test + @TestMetadata("memberScopeOfCapturedTypeForPostponedCall.kt") + public void testMemberScopeOfCapturedTypeForPostponedCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/memberScopeOfCapturedTypeForPostponedCall.kt"); + } + @Test @TestMetadata("multiLambdaRestriction.kt") public void testMultiLambdaRestriction() throws Exception { @@ -17343,12 +17469,42 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/inference/builderInference/multiLambdaRestrictionDisabled.kt"); } + @Test + @TestMetadata("nestedLambdaWithLastLambdaContainingCall.kt") + public void testNestedLambdaWithLastLambdaContainingCall() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithLastLambdaContainingCall.kt"); + } + + @Test + @TestMetadata("nestedLambdaWithNonLastYieldStatement.kt") + public void testNestedLambdaWithNonLastYieldStatement() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdaWithNonLastYieldStatement.kt"); + } + + @Test + @TestMetadata("nestedLambdasWithOverloadResolutionByReturnType.kt") + public void testNestedLambdasWithOverloadResolutionByReturnType() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/nestedLambdasWithOverloadResolutionByReturnType.kt"); + } + + @Test + @TestMetadata("newTvFromLamdaAreNotCountedAsProper.kt") + public void testNewTvFromLamdaAreNotCountedAsProper() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/newTvFromLamdaAreNotCountedAsProper.kt"); + } + @Test @TestMetadata("noBuilderInferenceRestrictionReceiverInconsistency.kt") public void testNoBuilderInferenceRestrictionReceiverInconsistency() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/noBuilderInferenceRestrictionReceiverInconsistency.kt"); } + @Test + @TestMetadata("overloadResolutionByLambdaReturnTypeInsideBI.kt") + public void testOverloadResolutionByLambdaReturnTypeInsideBI() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/overloadResolutionByLambdaReturnTypeInsideBI.kt"); + } + @Test @TestMetadata("propertySubstitution.kt") public void testPropertySubstitution() throws Exception { @@ -17361,12 +17517,24 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/inference/builderInference/simpleLambdaInCallWithAnotherLambdaWithBuilderInference.kt"); } + @Test + @TestMetadata("singleBranchConditionLastStatementInLambda.kt") + public void testSingleBranchConditionLastStatementInLambda() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/singleBranchConditionLastStatementInLambda.kt"); + } + @Test @TestMetadata("skipedUnresolvedInBuilderInferenceWithStubReceiverType.kt") public void testSkipedUnresolvedInBuilderInferenceWithStubReceiverType() throws Exception { runTest("compiler/testData/diagnostics/tests/inference/builderInference/skipedUnresolvedInBuilderInferenceWithStubReceiverType.kt"); } + @Test + @TestMetadata("smartCastOnBuilderController.kt") + public void testSmartCastOnBuilderController() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/smartCastOnBuilderController.kt"); + } + @Test @TestMetadata("specialCallsWithCallableReferences.kt") public void testSpecialCallsWithCallableReferences() throws Exception { @@ -17415,6 +17583,24 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/inference/builderInference/specialCallsWithLambdas.kt"); } + @Test + @TestMetadata("substitutedSyntheticPropertyUsage.kt") + public void testSubstitutedSyntheticPropertyUsage() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/substitutedSyntheticPropertyUsage.kt"); + } + + @Test + @TestMetadata("theSimplestBuilder.kt") + public void testTheSimplestBuilder() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/theSimplestBuilder.kt"); + } + + @Test + @TestMetadata("whenWithPropertyHavingSomePCLACallsWithinInitializer.kt") + public void testWhenWithPropertyHavingSomePCLACallsWithinInitializer() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/whenWithPropertyHavingSomePCLACallsWithinInitializer.kt"); + } + @Test @TestMetadata("withoutAnnotationDisabledFeature.kt") public void testWithoutAnnotationDisabledFeature() throws Exception { @@ -17512,6 +17698,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/renderingStubTypes.kt"); } + @Test + @TestMetadata("simpleIntersection.kt") + public void testSimpleIntersection() throws Exception { + runTest("compiler/testData/diagnostics/tests/inference/builderInference/stubTypes/simpleIntersection.kt"); + } + @Test @TestMetadata("stubTypeReceiverRestriction.kt") public void testStubTypeReceiverRestriction() throws Exception { @@ -43589,6 +43781,12 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667.kt"); } + @Test + @TestMetadata("kt38667Simplified.kt") + public void testKt38667Simplified() throws Exception { + runTest("compiler/testData/diagnostics/testsWithStdLib/coroutines/inference/kt38667Simplified.kt"); + } + @Test @TestMetadata("kt38766.kt") public void testKt38766() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java index b38763d903f..cf21ac26495 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java @@ -2755,6 +2755,12 @@ public class JvmAbiConsistencyTestBoxGenerated extends AbstractJvmAbiConsistency KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index 9f1b68c61b2..e8cba943b65 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -2575,6 +2575,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index 86bb91d35a7..9c3df28401a 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -2755,6 +2755,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java index 267224f3236..c243ecfc28b 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java @@ -2755,6 +2755,12 @@ public class IrBlackBoxCodegenWithIrInlinerTestGenerated extends AbstractIrBlack KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java index 81c6623b5ed..4638da41fd9 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/ClassicJvmIrTextTestGenerated.java @@ -2890,6 +2890,12 @@ public class ClassicJvmIrTextTestGenerated extends AbstractClassicJvmIrTextTest runTest("compiler/testData/ir/irText/firProblems/MultiList.kt"); } + @Test + @TestMetadata("noErrorTypeAfterCaptureApproximation.kt") + public void testNoErrorTypeAfterCaptureApproximation() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt"); + } + @Test @TestMetadata("OutBox.kt") public void testOutBox() throws Exception { @@ -3240,6 +3246,12 @@ public class ClassicJvmIrTextTestGenerated extends AbstractClassicJvmIrTextTest runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt"); } + @Test + @TestMetadata("noSyntheticTypeParameterLeftAfterPCLA.kt") + public void testNoSyntheticTypeParameterLeftAfterPCLA() throws Exception { + runTest("compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt"); + } + @Test @TestMetadata("typeAliasCtorForGenericClass.kt") public void testTypeAliasCtorForGenericClass() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index b8e64210d91..1b68ccad2d1 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -2403,6 +2403,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JVM_IR, true); } + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") @RunWith(JUnit3RunnerWithInners.class) diff --git a/compiler/tests-gen/org/jetbrains/kotlin/klib/KlibIrTextTestCaseGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/klib/KlibIrTextTestCaseGenerated.java index a53103c709a..0d267aac329 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/klib/KlibIrTextTestCaseGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/klib/KlibIrTextTestCaseGenerated.java @@ -2194,6 +2194,11 @@ public class KlibIrTextTestCaseGenerated extends AbstractKlibIrTextTestCase { runTest("compiler/testData/ir/irText/firProblems/LocalSuspendFun.kt"); } + @TestMetadata("noErrorTypeAfterCaptureApproximation.kt") + public void testNoErrorTypeAfterCaptureApproximation() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt"); + } + @TestMetadata("readWriteProperty.kt") public void testReadWriteProperty() throws Exception { runTest("compiler/testData/ir/irText/firProblems/readWriteProperty.kt"); @@ -2568,6 +2573,11 @@ public class KlibIrTextTestCaseGenerated extends AbstractKlibIrTextTestCase { runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt"); } + @TestMetadata("noSyntheticTypeParameterLeftAfterPCLA.kt") + public void testNoSyntheticTypeParameterLeftAfterPCLA() throws Exception { + runTest("compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt"); + } + @TestMetadata("typeAliasCtorForGenericClass.kt") public void testTypeAliasCtorForGenericClass() throws Exception { runTest("compiler/testData/ir/irText/regressions/typeAliasCtorForGenericClass.kt"); diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java index 561608cb8fb..2752a3ff5a5 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsCodegenBoxTestGenerated.java @@ -1861,6 +1861,12 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") @@ -2074,12 +2080,6 @@ public class FirJsCodegenBoxTestGenerated extends AbstractFirJsCodegenBoxTest { runTest("compiler/testData/codegen/box/builderInference/issues/kt57707.kt"); } - @Test - @TestMetadata("kt57709.kt") - public void testKt57709() throws Exception { - runTest("compiler/testData/codegen/box/builderInference/issues/kt57709.kt"); - } - @Test @TestMetadata("kt57834.kt") public void testKt57834() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java index a43c48745e7..af9fbe9837a 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirJsES6CodegenBoxTestGenerated.java @@ -1861,6 +1861,12 @@ public class FirJsES6CodegenBoxTestGenerated extends AbstractFirJsES6CodegenBoxT KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR_ES6, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") @@ -2074,12 +2080,6 @@ public class FirJsES6CodegenBoxTestGenerated extends AbstractFirJsES6CodegenBoxT runTest("compiler/testData/codegen/box/builderInference/issues/kt57707.kt"); } - @Test - @TestMetadata("kt57709.kt") - public void testKt57709() throws Exception { - runTest("compiler/testData/codegen/box/builderInference/issues/kt57709.kt"); - } - @Test @TestMetadata("kt57834.kt") public void testKt57834() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirLightTreeJsIrTextTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirLightTreeJsIrTextTestGenerated.java index b3e0c843c5f..185efd64580 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirLightTreeJsIrTextTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirLightTreeJsIrTextTestGenerated.java @@ -2470,6 +2470,12 @@ public class FirLightTreeJsIrTextTestGenerated extends AbstractFirLightTreeJsIrT runTest("compiler/testData/ir/irText/firProblems/LocalSuspendFun.kt"); } + @Test + @TestMetadata("noErrorTypeAfterCaptureApproximation.kt") + public void testNoErrorTypeAfterCaptureApproximation() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt"); + } + @Test @TestMetadata("readWriteProperty.kt") public void testReadWriteProperty() throws Exception { @@ -2874,6 +2880,12 @@ public class FirLightTreeJsIrTextTestGenerated extends AbstractFirLightTreeJsIrT runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt"); } + @Test + @TestMetadata("noSyntheticTypeParameterLeftAfterPCLA.kt") + public void testNoSyntheticTypeParameterLeftAfterPCLA() throws Exception { + runTest("compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt"); + } + @Test @TestMetadata("typeAliasCtorForGenericClass.kt") public void testTypeAliasCtorForGenericClass() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsIrTextTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsIrTextTestGenerated.java index 0d869e9023e..c60f20ccd3c 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsIrTextTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/fir/FirPsiJsIrTextTestGenerated.java @@ -2470,6 +2470,12 @@ public class FirPsiJsIrTextTestGenerated extends AbstractFirPsiJsIrTextTest { runTest("compiler/testData/ir/irText/firProblems/LocalSuspendFun.kt"); } + @Test + @TestMetadata("noErrorTypeAfterCaptureApproximation.kt") + public void testNoErrorTypeAfterCaptureApproximation() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt"); + } + @Test @TestMetadata("readWriteProperty.kt") public void testReadWriteProperty() throws Exception { @@ -2874,6 +2880,12 @@ public class FirPsiJsIrTextTestGenerated extends AbstractFirPsiJsIrTextTest { runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt"); } + @Test + @TestMetadata("noSyntheticTypeParameterLeftAfterPCLA.kt") + public void testNoSyntheticTypeParameterLeftAfterPCLA() throws Exception { + runTest("compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt"); + } + @Test @TestMetadata("typeAliasCtorForGenericClass.kt") public void testTypeAliasCtorForGenericClass() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/ClassicJsIrTextTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/ClassicJsIrTextTestGenerated.java index 1c9bf8e74bb..c329aa78139 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/ClassicJsIrTextTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/ClassicJsIrTextTestGenerated.java @@ -2470,6 +2470,12 @@ public class ClassicJsIrTextTestGenerated extends AbstractClassicJsIrTextTest { runTest("compiler/testData/ir/irText/firProblems/LocalSuspendFun.kt"); } + @Test + @TestMetadata("noErrorTypeAfterCaptureApproximation.kt") + public void testNoErrorTypeAfterCaptureApproximation() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt"); + } + @Test @TestMetadata("readWriteProperty.kt") public void testReadWriteProperty() throws Exception { @@ -2874,6 +2880,12 @@ public class ClassicJsIrTextTestGenerated extends AbstractClassicJsIrTextTest { runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt"); } + @Test + @TestMetadata("noSyntheticTypeParameterLeftAfterPCLA.kt") + public void testNoSyntheticTypeParameterLeftAfterPCLA() throws Exception { + runTest("compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt"); + } + @Test @TestMetadata("typeAliasCtorForGenericClass.kt") public void testTypeAliasCtorForGenericClass() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java index c04b0875326..604298c6a65 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsCodegenBoxTestGenerated.java @@ -1861,6 +1861,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") @@ -2074,12 +2080,6 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest { runTest("compiler/testData/codegen/box/builderInference/issues/kt57707.kt"); } - @Test - @TestMetadata("kt57709.kt") - public void testKt57709() throws Exception { - runTest("compiler/testData/codegen/box/builderInference/issues/kt57709.kt"); - } - @Test @TestMetadata("kt57834.kt") public void testKt57834() throws Exception { diff --git a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java index 29d0fdfb736..cdc288bccbf 100644 --- a/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java +++ b/js/js.tests/tests-gen/org/jetbrains/kotlin/js/test/ir/IrJsES6CodegenBoxTestGenerated.java @@ -1861,6 +1861,12 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.JS_IR_ES6, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") @@ -2074,12 +2080,6 @@ public class IrJsES6CodegenBoxTestGenerated extends AbstractIrJsES6CodegenBoxTes runTest("compiler/testData/codegen/box/builderInference/issues/kt57707.kt"); } - @Test - @TestMetadata("kt57709.kt") - public void testKt57709() throws Exception { - runTest("compiler/testData/codegen/box/builderInference/issues/kt57709.kt"); - } - @Test @TestMetadata("kt57834.kt") public void testKt57834() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java index d5be8c3fb3a..88e3d5012a2 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestGenerated.java @@ -1920,6 +1920,12 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") @@ -2136,12 +2142,6 @@ public class FirNativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTe runTest("compiler/testData/codegen/box/builderInference/issues/kt57707.kt"); } - @Test - @TestMetadata("kt57709.kt") - public void testKt57709() throws Exception { - runTest("compiler/testData/codegen/box/builderInference/issues/kt57709.kt"); - } - @Test @TestMetadata("kt57834.kt") public void testKt57834() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java index d41aa9ca945..89b431eab65 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/FirNativeCodegenBoxTestNoPLGenerated.java @@ -1966,6 +1966,12 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") @@ -2184,12 +2190,6 @@ public class FirNativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenB runTest("compiler/testData/codegen/box/builderInference/issues/kt57707.kt"); } - @Test - @TestMetadata("kt57709.kt") - public void testKt57709() throws Exception { - runTest("compiler/testData/codegen/box/builderInference/issues/kt57709.kt"); - } - @Test @TestMetadata("kt57834.kt") public void testKt57834() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java index a8311b4856d..648dad7e54d 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestGenerated.java @@ -1874,6 +1874,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") @@ -2088,12 +2094,6 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest runTest("compiler/testData/codegen/box/builderInference/issues/kt57707.kt"); } - @Test - @TestMetadata("kt57709.kt") - public void testKt57709() throws Exception { - runTest("compiler/testData/codegen/box/builderInference/issues/kt57709.kt"); - } - @Test @TestMetadata("kt57834.kt") public void testKt57834() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java index fa047293816..2fadc56e96e 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/blackbox/NativeCodegenBoxTestNoPLGenerated.java @@ -1921,6 +1921,12 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^(.+)\\.kt$"), null, TargetBackend.NATIVE, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") @@ -2137,12 +2143,6 @@ public class NativeCodegenBoxTestNoPLGenerated extends AbstractNativeCodegenBoxT runTest("compiler/testData/codegen/box/builderInference/issues/kt57707.kt"); } - @Test - @TestMetadata("kt57709.kt") - public void testKt57709() throws Exception { - runTest("compiler/testData/codegen/box/builderInference/issues/kt57709.kt"); - } - @Test @TestMetadata("kt57834.kt") public void testKt57834() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/ClassicNativeIrTextTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/ClassicNativeIrTextTestGenerated.java index 462032ac42b..11dd4fd0288 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/ClassicNativeIrTextTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/ClassicNativeIrTextTestGenerated.java @@ -2476,6 +2476,12 @@ public class ClassicNativeIrTextTestGenerated extends AbstractClassicNativeIrTex runTest("compiler/testData/ir/irText/firProblems/LocalSuspendFun.kt"); } + @Test + @TestMetadata("noErrorTypeAfterCaptureApproximation.kt") + public void testNoErrorTypeAfterCaptureApproximation() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt"); + } + @Test @TestMetadata("readWriteProperty.kt") public void testReadWriteProperty() throws Exception { @@ -2730,6 +2736,12 @@ public class ClassicNativeIrTextTestGenerated extends AbstractClassicNativeIrTex runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt"); } + @Test + @TestMetadata("noSyntheticTypeParameterLeftAfterPCLA.kt") + public void testNoSyntheticTypeParameterLeftAfterPCLA() throws Exception { + runTest("compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt"); + } + @Test @TestMetadata("typeAliasCtorForGenericClass.kt") public void testTypeAliasCtorForGenericClass() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/FirLightTreeNativeIrTextTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/FirLightTreeNativeIrTextTestGenerated.java index 288ea27961f..413ebe56f6c 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/FirLightTreeNativeIrTextTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/FirLightTreeNativeIrTextTestGenerated.java @@ -2476,6 +2476,12 @@ public class FirLightTreeNativeIrTextTestGenerated extends AbstractFirLightTreeN runTest("compiler/testData/ir/irText/firProblems/LocalSuspendFun.kt"); } + @Test + @TestMetadata("noErrorTypeAfterCaptureApproximation.kt") + public void testNoErrorTypeAfterCaptureApproximation() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt"); + } + @Test @TestMetadata("readWriteProperty.kt") public void testReadWriteProperty() throws Exception { @@ -2730,6 +2736,12 @@ public class FirLightTreeNativeIrTextTestGenerated extends AbstractFirLightTreeN runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt"); } + @Test + @TestMetadata("noSyntheticTypeParameterLeftAfterPCLA.kt") + public void testNoSyntheticTypeParameterLeftAfterPCLA() throws Exception { + runTest("compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt"); + } + @Test @TestMetadata("typeAliasCtorForGenericClass.kt") public void testTypeAliasCtorForGenericClass() throws Exception { diff --git a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/FirPsiNativeIrTextTestGenerated.java b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/FirPsiNativeIrTextTestGenerated.java index 44aec18db3a..e9b9d1d30d6 100644 --- a/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/FirPsiNativeIrTextTestGenerated.java +++ b/native/native.tests/tests-gen/org/jetbrains/kotlin/konan/test/irtext/FirPsiNativeIrTextTestGenerated.java @@ -2476,6 +2476,12 @@ public class FirPsiNativeIrTextTestGenerated extends AbstractFirPsiNativeIrTextT runTest("compiler/testData/ir/irText/firProblems/LocalSuspendFun.kt"); } + @Test + @TestMetadata("noErrorTypeAfterCaptureApproximation.kt") + public void testNoErrorTypeAfterCaptureApproximation() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/noErrorTypeAfterCaptureApproximation.kt"); + } + @Test @TestMetadata("readWriteProperty.kt") public void testReadWriteProperty() throws Exception { @@ -2730,6 +2736,12 @@ public class FirPsiNativeIrTextTestGenerated extends AbstractFirPsiNativeIrTextT runTest("compiler/testData/ir/irText/regressions/newInferenceFixationOrder1.kt"); } + @Test + @TestMetadata("noSyntheticTypeParameterLeftAfterPCLA.kt") + public void testNoSyntheticTypeParameterLeftAfterPCLA() throws Exception { + runTest("compiler/testData/ir/irText/regressions/noSyntheticTypeParameterLeftAfterPCLA.kt"); + } + @Test @TestMetadata("typeAliasCtorForGenericClass.kt") public void testTypeAliasCtorForGenericClass() throws Exception { diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java index ce846659d53..ca481ca3494 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/FirWasmCodegenBoxTestGenerated.java @@ -1849,6 +1849,12 @@ public class FirWasmCodegenBoxTestGenerated extends AbstractFirWasmCodegenBoxTes KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.WASM, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") @@ -2062,12 +2068,6 @@ public class FirWasmCodegenBoxTestGenerated extends AbstractFirWasmCodegenBoxTes runTest("compiler/testData/codegen/box/builderInference/issues/kt57707.kt"); } - @Test - @TestMetadata("kt57709.kt") - public void testKt57709() throws Exception { - runTest("compiler/testData/codegen/box/builderInference/issues/kt57709.kt"); - } - @Test @TestMetadata("kt57834.kt") public void testKt57834() throws Exception { diff --git a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java index c0f9384ea3d..dc3cefa2c7e 100644 --- a/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java +++ b/wasm/wasm.tests/tests-gen/org/jetbrains/kotlin/wasm/test/K1WasmCodegenBoxTestGenerated.java @@ -1849,6 +1849,12 @@ public class K1WasmCodegenBoxTestGenerated extends AbstractK1WasmCodegenBoxTest KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/testData/codegen/box/builderInference"), Pattern.compile("^([^_](.+))\\.kt$"), null, TargetBackend.WASM, true); } + @Test + @TestMetadata("receiverUsesOuterTVButReturnTypeIsProper.kt") + public void testReceiverUsesOuterTVButReturnTypeIsProper() throws Exception { + runTest("compiler/testData/codegen/box/builderInference/receiverUsesOuterTVButReturnTypeIsProper.kt"); + } + @Nested @TestMetadata("compiler/testData/codegen/box/builderInference/issues") @TestDataPath("$PROJECT_ROOT") @@ -2062,12 +2068,6 @@ public class K1WasmCodegenBoxTestGenerated extends AbstractK1WasmCodegenBoxTest runTest("compiler/testData/codegen/box/builderInference/issues/kt57707.kt"); } - @Test - @TestMetadata("kt57709.kt") - public void testKt57709() throws Exception { - runTest("compiler/testData/codegen/box/builderInference/issues/kt57709.kt"); - } - @Test @TestMetadata("kt57834.kt") public void testKt57834() throws Exception {