// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.

package org.jetbrains.kotlin.idea.k2.refactoring.introduce;

import com.intellij.testFramework.TestDataPath;
import org.jetbrains.kotlin.idea.base.plugin.KotlinPluginMode;
import org.jetbrains.kotlin.idea.base.test.TestRoot;
import org.jetbrains.kotlin.idea.test.JUnit3RunnerWithInners;
import org.jetbrains.kotlin.idea.test.KotlinTestUtils;
import org.jetbrains.kotlin.test.TestMetadata;
import org.junit.runner.RunWith;

/**
 * This class is generated by {@link org.jetbrains.kotlin.testGenerator.generator.TestGenerator}.
 * DO NOT MODIFY MANUALLY.
 */
@SuppressWarnings("all")
@TestRoot("refactorings/kotlin.refactorings.tests.k2")
@TestDataPath("$CONTENT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@TestMetadata("../../idea/tests/testData/refactoring/extractFunction")
public abstract class K2IntroduceFunctionTestGenerated extends AbstractK2IntroduceFunctionTest {
    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../idea/tests/testData/refactoring/extractFunction/basic")
    public static class Basic extends AbstractK2IntroduceFunctionTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K2;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
        }

        @TestMetadata("approximatedReturnType.kt")
        public void testApproximatedReturnType() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/approximatedReturnType.kt");
        }

        @TestMetadata("callWithLambdaArgument.kt")
        public void testCallWithLambdaArgument() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/callWithLambdaArgument.kt");
        }

        @TestMetadata("callWithPlatformTypeReceiver.kt")
        public void testCallWithPlatformTypeReceiver() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/callWithPlatformTypeReceiver.kt");
        }

        @TestMetadata("callableReferenceSelector.kt")
        public void testCallableReferenceSelector() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/callableReferenceSelector.kt");
        }

        @TestMetadata("calleeExpression.kt")
        public void testCalleeExpression() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/calleeExpression.kt");
        }

        @TestMetadata("classQualifier.kt")
        public void testClassQualifier() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/classQualifier.kt");
        }

        @TestMetadata("commentPlacement.kt")
        public void testCommentPlacement() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/commentPlacement.kt");
        }

        @TestMetadata("companionObjectMemberRef.kt")
        public void testCompanionObjectMemberRef() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/companionObjectMemberRef.kt");
        }

        @TestMetadata("convertBinaryExpression.kt")
        public void testConvertBinaryExpression() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/convertBinaryExpression.kt");
        }

        @TestMetadata("convertInfixExpression.kt")
        public void testConvertInfixExpression() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/convertInfixExpression.kt");
        }

        @TestMetadata("delegatingFunction.kt")
        public void testDelegatingFunction() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/delegatingFunction.kt");
        }

        @TestMetadata("destructuringEntry.kt")
        public void testDestructuringEntry() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/destructuringEntry.kt");
        }

        @TestMetadata("emptySpaces.kt")
        public void testEmptySpaces() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/emptySpaces.kt");
        }

        @TestMetadata("enumQualifier.kt")
        public void testEnumQualifier() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/enumQualifier.kt");
        }

        @TestMetadata("extensionFunForArray.kt")
        public void testExtensionFunForArray() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/extensionFunForArray.kt");
        }

        @TestMetadata("extractBlockContent.kt")
        public void testExtractBlockContent() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/extractBlockContent.kt");
        }

        @TestMetadata("extractFromPrivateInlineFun.kt")
        public void testExtractFromPrivateInlineFun() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/extractFromPrivateInlineFun.kt");
        }

        @TestMetadata("extractFromPublicInlineFun.kt")
        public void testExtractFromPublicInlineFun() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/extractFromPublicInlineFun.kt");
        }

        @TestMetadata("extractSuspend.kt")
        public void testExtractSuspend() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/extractSuspend.kt");
        }

        @TestMetadata("extractToEnumClassBody.kt")
        public void testExtractToEnumClassBody() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/extractToEnumClassBody.kt");
        }

        @TestMetadata("fakeOverride.kt")
        public void testFakeOverride() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/fakeOverride.kt");
        }

        @TestMetadata("fragmentWithComment.kt")
        public void testFragmentWithComment() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/fragmentWithComment.kt");
        }

        @TestMetadata("fragmentWithMultilineComment.kt")
        public void testFragmentWithMultilineComment() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt");
        }

        @TestMetadata("identityEquals.kt")
        public void testIdentityEquals() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/identityEquals.kt");
        }

        @TestMetadata("inlineReified.kt")
        public void testInlineReified() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/inlineReified.kt");
        }

        @TestMetadata("inlineReified2.kt")
        public void testInlineReified2() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/inlineReified2.kt");
        }

        @TestMetadata("interfaceFunction.kt")
        public void testInterfaceFunction() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/interfaceFunction.kt");
        }

        @TestMetadata("invisibleType.kt")
        public void testInvisibleType() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/invisibleType.kt");
        }

        @TestMetadata("lineWithSemicolon.kt")
        public void testLineWithSemicolon() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/lineWithSemicolon.kt");
        }

        @TestMetadata("localClassExtraction.kt")
        public void testLocalClassExtraction() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/localClassExtraction.kt");
        }

        @TestMetadata("localClassFunctionRef.kt")
        public void testLocalClassFunctionRef() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/localClassFunctionRef.kt");
        }

        @TestMetadata("localClassPropertyRef.kt")
        public void testLocalClassPropertyRef() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/localClassPropertyRef.kt");
        }

        @TestMetadata("localExtraction.kt")
        public void testLocalExtraction() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/localExtraction.kt");
        }

        @TestMetadata("localFunExtraction.kt")
        public void testLocalFunExtraction() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/localFunExtraction.kt");
        }

        @TestMetadata("localFunctionInTheMiddleSimpleControlFlow.kt")
        public void testLocalFunctionInTheMiddleSimpleControlFlow() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/localFunctionInTheMiddleSimpleControlFlow.kt");
        }

        @TestMetadata("localFunctionInTheMiddleUnusedVar.kt")
        public void testLocalFunctionInTheMiddleUnusedVar() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/localFunctionInTheMiddleUnusedVar.kt");
        }

        @TestMetadata("localFunctionInTheMiddleUsedVar.kt")
        public void testLocalFunctionInTheMiddleUsedVar() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/localFunctionInTheMiddleUsedVar.kt");
        }

        @TestMetadata("localFunctionRef.kt")
        public void testLocalFunctionRef() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/localFunctionRef.kt");
        }

        @TestMetadata("localObjectRef.kt")
        public void testLocalObjectRef() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/localObjectRef.kt");
        }

        @TestMetadata("malformedExpression.kt")
        public void testMalformedExpression() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/malformedExpression.kt");
        }

        @TestMetadata("malformedStatements.kt")
        public void testMalformedStatements() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/malformedStatements.kt");
        }

        @TestMetadata("memberValUnderSmartCast.kt")
        public void testMemberValUnderSmartCast() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/memberValUnderSmartCast.kt");
        }

        @TestMetadata("memberValUnderSmartCastAndImplicitReceiver.kt")
        public void testMemberValUnderSmartCastAndImplicitReceiver() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/memberValUnderSmartCastAndImplicitReceiver.kt");
        }

        @TestMetadata("misdirectedRef.kt")
        public void testMisdirectedRef() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/misdirectedRef.kt");
        }

        @TestMetadata("noConflictWithInnerFunction.kt")
        public void testNoConflictWithInnerFunction() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/noConflictWithInnerFunction.kt");
        }

        @TestMetadata("noConflictWithInnerFunction1.kt")
        public void testNoConflictWithInnerFunction1() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/noConflictWithInnerFunction1.kt");
        }

        @TestMetadata("objectQualifier.kt")
        public void testObjectQualifier() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/objectQualifier.kt");
        }

        @TestMetadata("packageQualifier.kt")
        public void testPackageQualifier() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/packageQualifier.kt");
        }

        @TestMetadata("parenthesis.kt")
        public void testParenthesis() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/parenthesis.kt");
        }

        @TestMetadata("privateMemberInClassObject.kt")
        public void testPrivateMemberInClassObject() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/privateMemberInClassObject.kt");
        }

        @TestMetadata("privateMemberRef.kt")
        public void testPrivateMemberRef() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/privateMemberRef.kt");
        }

        @TestMetadata("privateMembersAccessible.kt")
        public void testPrivateMembersAccessible() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/privateMembersAccessible.kt");
        }

        @TestMetadata("privateNestedClass.kt")
        public void testPrivateNestedClass() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/privateNestedClass.kt");
        }

        @TestMetadata("privateSetter.kt")
        public void testPrivateSetter() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/privateSetter.kt");
        }

        @TestMetadata("quotedName.kt")
        public void testQuotedName() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/quotedName.kt");
        }

        @TestMetadata("receiverParameter.kt")
        public void testReceiverParameter() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/receiverParameter.kt");
        }

        @TestMetadata("refInReturn.kt")
        public void testRefInReturn() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/refInReturn.kt");
        }

        @TestMetadata("sameParameterNames.kt")
        public void testSameParameterNames() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/sameParameterNames.kt");
        }

        @TestMetadata("selectedConstructor.kt")
        public void testSelectedConstructor() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/selectedConstructor.kt");
        }

        @TestMetadata("selectedFunction.kt")
        public void testSelectedFunction() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/selectedFunction.kt");
        }

        @TestMetadata("selectedParameter.kt")
        public void testSelectedParameter() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/selectedParameter.kt");
        }

        @TestMetadata("suspendCall.kt")
        public void testSuspendCall() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/suspendCall.kt");
        }

        @TestMetadata("suspendCallInsideSuspendContinuation.kt")
        public void testSuspendCallInsideSuspendContinuation() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/suspendCallInsideSuspendContinuation.kt");
        }

        @TestMetadata("suspendCallLocal.kt")
        public void testSuspendCallLocal() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/suspendCallLocal.kt");
        }

        @TestMetadata("suspendCallWithExtractedParameter.kt")
        public void testSuspendCallWithExtractedParameter() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/suspendCallWithExtractedParameter.kt");
        }

        @TestMetadata("targetRendering.kt")
        public void testTargetRendering() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/targetRendering.kt");
        }

        @TestMetadata("topLevelValUnderSmartCast.kt")
        public void testTopLevelValUnderSmartCast() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/topLevelValUnderSmartCast.kt");
        }

        @TestMetadata("typedFunctionLiteral.kt")
        public void testTypedFunctionLiteral() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/typedFunctionLiteral.kt");
        }

        @TestMetadata("unnecessaryNullabilityAnnotation.kt")
        public void testUnnecessaryNullabilityAnnotation() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/unnecessaryNullabilityAnnotation.kt");
        }

        @TestMetadata("unresolvedWrongReceiver.kt")
        public void testUnresolvedWrongReceiver() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/basic/unresolvedWrongReceiver.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../idea/tests/testData/refactoring/extractFunction/contextParameters")
    public static class ContextParameters extends AbstractK2IntroduceFunctionTest {
        @java.lang.Override
        @org.jetbrains.annotations.NotNull
        public final KotlinPluginMode getPluginMode() {
            return KotlinPluginMode.K2;
        }

        private void runTest(String testDataFilePath) throws Exception {
            KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
        }

        @TestMetadata("base.kt")
        public void testBase() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/contextParameters/base.kt");
        }

        @TestMetadata("explicitParameterUsage.kt")
        public void testExplicitParameterUsage() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/contextParameters/explicitParameterUsage.kt");
        }

        @TestMetadata("multipleParameters.kt")
        public void testMultipleParameters() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/contextParameters/multipleParameters.kt");
        }

        @TestMetadata("multipleParametersOneCall.kt")
        public void testMultipleParametersOneCall() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/contextParameters/multipleParametersOneCall.kt");
        }

        @TestMetadata("multipleParametersOnePropertyAccess.kt")
        public void testMultipleParametersOnePropertyAccess() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/contextParameters/multipleParametersOnePropertyAccess.kt");
        }

        @TestMetadata("parameterizedContextParameters.kt")
        public void testParameterizedContextParameters() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/contextParameters/parameterizedContextParameters.kt");
        }

        @TestMetadata("parameterizedContextParametersOnProperty.kt")
        public void testParameterizedContextParametersOnProperty() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/contextParameters/parameterizedContextParametersOnProperty.kt");
        }

        @TestMetadata("typeRelations.kt")
        public void testTypeRelations() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/contextParameters/typeRelations.kt");
        }

        @TestMetadata("unnamed.kt")
        public void testUnnamed() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/contextParameters/unnamed.kt");
        }

        @TestMetadata("withProvidedContext.kt")
        public void testWithProvidedContext() throws Exception {
            runTest("../../idea/tests/testData/refactoring/extractFunction/contextParameters/withProvidedContext.kt");
        }
    }

    @RunWith(JUnit3RunnerWithInners.class)
    @TestMetadata("../../idea/tests/testData/refactoring/extractFunction/controlFlow")
    public abstract static class ControlFlow extends AbstractK2IntroduceFunctionTest {
        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("../../idea/tests/testData/refactoring/extractFunction/controlFlow/conditionalJumps")
        public static class ConditionalJumps extends AbstractK2IntroduceFunctionTest {
            @java.lang.Override
            @org.jetbrains.annotations.NotNull
            public final KotlinPluginMode getPluginMode() {
                return KotlinPluginMode.K2;
            }

            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("conditionalBreakWithIf.kt")
            public void testConditionalBreakWithIf() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt");
            }

            @TestMetadata("conditionalBreakWithIfAndExtraVars.kt")
            public void testConditionalBreakWithIfAndExtraVars() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfAndExtraVars.kt");
            }

            @TestMetadata("conditionalBreakWithIfElse.kt")
            public void testConditionalBreakWithIfElse() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt");
            }

            @TestMetadata("conditionalBreakWithWhen.kt")
            public void testConditionalBreakWithWhen() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt");
            }

            @TestMetadata("conditionalReturnWithIf.kt")
            public void testConditionalReturnWithIf() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt");
            }

            @TestMetadata("conditionalReturnWithIfElse.kt")
            public void testConditionalReturnWithIfElse() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt");
            }

            @TestMetadata("conditionalReturnWithWhen.kt")
            public void testConditionalReturnWithWhen() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt");
            }

            @TestMetadata("unconditionalBreakWithIf.kt")
            public void testUnconditionalBreakWithIf() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt");
            }

            @TestMetadata("unconditionalBreakWithIfElse.kt")
            public void testUnconditionalBreakWithIfElse() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt");
            }

            @TestMetadata("unconditionalBreakWithWhen.kt")
            public void testUnconditionalBreakWithWhen() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("../../idea/tests/testData/refactoring/extractFunction/controlFlow/default")
        public static class Default extends AbstractK2IntroduceFunctionTest {
            @java.lang.Override
            @org.jetbrains.annotations.NotNull
            public final KotlinPluginMode getPluginMode() {
                return KotlinPluginMode.K2;
            }

            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("defaultCF.kt")
            public void testDefaultCF() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt");
            }

            @TestMetadata("defaultCFWithExtraVars.kt")
            public void testDefaultCFWithExtraVars() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithExtraVars.kt");
            }

            @TestMetadata("defaultCFWithJumps.kt")
            public void testDefaultCFWithJumps() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt");
            }

            @TestMetadata("ignoredReturnValueWithIf.kt")
            public void testIgnoredReturnValueWithIf() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIf.kt");
            }

            @TestMetadata("ignoredReturnValueWithIfNoBlocks.kt")
            public void testIgnoredReturnValueWithIfNoBlocks() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithIfNoBlocks.kt");
            }

            @TestMetadata("ignoredReturnValueWithWhen.kt")
            public void testIgnoredReturnValueWithWhen() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhen.kt");
            }

            @TestMetadata("ignoredReturnValueWithWhenNoBlocks.kt")
            public void testIgnoredReturnValueWithWhenNoBlocks() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/default/ignoredReturnValueWithWhenNoBlocks.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("../../idea/tests/testData/refactoring/extractFunction/controlFlow/definiteReturns")
        public static class DefiniteReturns extends AbstractK2IntroduceFunctionTest {
            @java.lang.Override
            @org.jetbrains.annotations.NotNull
            public final KotlinPluginMode getPluginMode() {
                return KotlinPluginMode.K2;
            }

            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("definiteReturnWithIf.kt")
            public void testDefiniteReturnWithIf() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt");
            }

            @TestMetadata("definiteReturnWithWhen.kt")
            public void testDefiniteReturnWithWhen() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt");
            }

            @TestMetadata("labeledAndUnlabeledReturn1.kt")
            public void testLabeledAndUnlabeledReturn1() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/definiteReturns/labeledAndUnlabeledReturn1.kt");
            }

            @TestMetadata("labeledAndUnlabeledReturn2.kt")
            public void testLabeledAndUnlabeledReturn2() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/definiteReturns/labeledAndUnlabeledReturn2.kt");
            }

            @TestMetadata("nonLocalContinue.kt")
            public void testNonLocalContinue() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/definiteReturns/nonLocalContinue.kt");
            }

            @TestMetadata("nonLocalReturn.kt")
            public void testNonLocalReturn() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/definiteReturns/nonLocalReturn.kt");
            }

            @TestMetadata("nonLocalReturnWithLabel.kt")
            public void testNonLocalReturnWithLabel() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/definiteReturns/nonLocalReturnWithLabel.kt");
            }

            @TestMetadata("returnWithLabel.kt")
            public void testReturnWithLabel() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/definiteReturns/returnWithLabel.kt");
            }

            @TestMetadata("singleDefiniteReturn.kt")
            public void testSingleDefiniteReturn() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt");
            }
        }

        @RunWith(JUnit3RunnerWithInners.class)
        @TestMetadata("../../idea/tests/testData/refactoring/extractFunction/controlFlow/evaluateExpression")
        public static class EvaluateExpression extends AbstractK2IntroduceFunctionTest {
            @java.lang.Override
            @org.jetbrains.annotations.NotNull
            public final KotlinPluginMode getPluginMode() {
                return KotlinPluginMode.K2;
            }

            private void runTest(String testDataFilePath) throws Exception {
                KotlinTestUtils.runTest(this::doExtractFunctionTest, this, testDataFilePath);
            }

            @TestMetadata("evalExprInIfCondition.kt")
            public void testEvalExprInIfCondition() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfCondition.kt");
            }

            @TestMetadata("evalExprInIfElse.kt")
            public void testEvalExprInIfElse() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfElse.kt");
            }

            @TestMetadata("evalExprInIfThen.kt")
            public void testEvalExprInIfThen() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIfThen.kt");
            }

            @TestMetadata("evalExprInWhenBranch.kt")
            public void testEvalExprInWhenBranch() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenBranch.kt");
            }

            @TestMetadata("evalExprInWhenCondition.kt")
            public void testEvalExprInWhenCondition() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenCondition.kt");
            }

            @TestMetadata("evalExprInWhenSubject.kt")
            public void testEvalExprInWhenSubject() throws Exception {
                runTest("../../idea/tests/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhenSubject.kt");
            }

            @TestMetadata("evalExpressionBodyFunction.kt")
