diff --git a/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt b/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt index f82712de6bd..27976a0ce3e 100644 --- a/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt +++ b/idea/src/org/jetbrains/jet/plugin/debugger/evaluate/KotlinEvaluationBuilder.kt @@ -356,10 +356,10 @@ private fun getFunctionForExtractedFragment( val newDebugExpression = addDebugExpressionBeforeContextElement(codeFragment, contextElement) if (newDebugExpression == null) return null - val nextSibling = tmpFile.getDeclarations().firstOrNull() - if (nextSibling == null) return null + val targetSibling = tmpFile.getDeclarations().firstOrNull() + if (targetSibling == null) return null - val analysisResult = ExtractionData(tmpFile, Collections.singletonList(newDebugExpression), nextSibling).performAnalysis() + val analysisResult = ExtractionData(tmpFile, Collections.singletonList(newDebugExpression), targetSibling).performAnalysis() if (analysisResult.status != Status.SUCCESS) { throw EvaluateExceptionUtil.createEvaluateException(getErrorMessageForExtractFunctionResult(analysisResult)) } diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt index 4d5967cf5d0..8dc54d3bb42 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractKotlinFunctionHandler.kt @@ -56,11 +56,11 @@ public class ExtractKotlinFunctionHandler : RefactoringActionHandler { editor: Editor, file: JetFile, elements: List, - nextSibling: PsiElement + targetSibling: PsiElement ) { val project = file.getProject() - val analysisResult = ExtractionData(file, elements, nextSibling).performAnalysis() + val analysisResult = ExtractionData(file, elements, targetSibling).performAnalysis() if (ApplicationManager.getApplication()!!.isUnitTestMode() && analysisResult.status != Status.SUCCESS) { throw ConflictsInTestsException(analysisResult.messages.map { it.renderMessage() }) @@ -119,8 +119,8 @@ public class ExtractKotlinFunctionHandler : RefactoringActionHandler { override fun invoke(project: Project, editor: Editor, file: PsiFile, dataContext: DataContext?) { if (file !is JetFile) return - selectElements(editor, file) { (elements, targetNextSibling) -> - doInvoke(editor, file, elements, targetNextSibling) + selectElements(editor, file) { (elements, targetSibling) -> + doInvoke(editor, file, elements, targetSibling) } } @@ -142,7 +142,7 @@ private fun showErrorHintByKey(project: Project, editor: Editor, key: String) { fun selectElements( editor: Editor, file: PsiFile, - continuation: (elements: List, targetNextSibling: PsiElement) -> Unit + continuation: (elements: List, targetSibling: PsiElement) -> Unit ) { fun noExpressionError() { showErrorHintByKey(file.getProject(), editor, "cannot.refactor.no.expression") diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt index 65c2d7e9a1b..c0abba47bad 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ExtractionData.kt @@ -33,7 +33,6 @@ import org.jetbrains.jet.plugin.codeInsight.DescriptorToDeclarationUtil import java.util.Collections import org.jetbrains.jet.lang.psi.JetBlockExpression import org.jetbrains.jet.renderer.DescriptorRenderer -import org.jetbrains.jet.lang.psi.psiUtil.getParentByTypeAndBranch import org.jetbrains.jet.lang.psi.JetQualifiedExpression import org.jetbrains.jet.lang.psi.psiUtil.isInsideOf import java.util.ArrayList @@ -41,6 +40,9 @@ import com.intellij.psi.PsiNamedElement import org.jetbrains.jet.lang.psi.JetSuperExpression import org.jetbrains.jet.lang.types.JetType import org.jetbrains.jet.plugin.project.AnalyzerFacadeWithCache +import org.jetbrains.jet.lang.psi.psiUtil.getParentByType +import org.jetbrains.jet.lang.psi.JetDeclaration +import org.jetbrains.jet.lang.psi.JetDeclarationWithBody data class ResolveResult( val originalRefExpr: JetSimpleNameExpression, @@ -58,10 +60,12 @@ data class ResolvedReferenceInfo( class ExtractionData( val originalFile: JetFile, val originalElements: List, - val nextSibling: PsiElement + val targetSibling: PsiElement ) { val project: Project = originalFile.getProject() + val insertBefore: Boolean = targetSibling.getParentByType(javaClass(), true) is JetDeclarationWithBody + fun getExpressions(): List = originalElements.filterIsInstance(javaClass()) fun getCodeFragmentTextRange(): TextRange? { diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt index 25ffef82cc7..45a71e329ee 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/extractFunctionUtils.kt @@ -97,7 +97,6 @@ import org.jetbrains.jet.lang.diagnostics.Errors import org.jetbrains.jet.lang.psi.JetTypeReference import org.jetbrains.jet.lang.psi.JetTypeParameterListOwner import org.jetbrains.jet.plugin.refactoring.extractFunction.AnalysisResult.Status -import org.jetbrains.jet.lang.descriptors.FunctionDescriptor import org.jetbrains.jet.lang.psi.codeFragmentUtil.skipVisibilityCheck import org.jetbrains.jet.lang.psi.codeFragmentUtil.setSkipVisibilityCheck import org.jetbrains.jet.plugin.refactoring.extractFunction.AnalysisResult.ErrorMessage @@ -232,15 +231,32 @@ private fun List.analyzeControlFlow( return Pair(DefaultControlFlow, null) } -private fun ExtractionData.createTemporaryCodeBlock(): JetBlockExpression { - val position = nextSibling.getTextRange()!!.getStartOffset() - val tmpFile = originalFile.createTempCopy { text -> - StringBuilder(text).insert(position, "fun() {\n${getCodeFragmentText()}\n}\n").toString() +fun ExtractionData.createTemporaryFunction(functionText: String): JetNamedFunction { + val textRange = targetSibling.getTextRange()!! + + val insertText: String + val insertPosition: Int + val lookupPosition: Int + if (insertBefore) { + insertPosition = textRange.getStartOffset() + lookupPosition = insertPosition + insertText = functionText } - val tmpFunction = tmpFile.findElementAt(position)?.getParentByType(javaClass())!! - return tmpFunction.getBodyExpression() as JetBlockExpression + else { + insertPosition = textRange.getEndOffset() + lookupPosition = insertPosition + 1 + insertText = "\n$functionText" + } + + val tmpFile = originalFile.createTempCopy { text -> + StringBuilder(text).insert(insertPosition, insertText).toString() + } + return tmpFile.findElementAt(lookupPosition)?.getParentByType(javaClass())!! } +private fun ExtractionData.createTemporaryCodeBlock(): JetBlockExpression = + createTemporaryFunction("fun() {\n${getCodeFragmentText()}\n}\n").getBodyExpression() as JetBlockExpression + private fun JetType.collectReferencedTypes(): List { return DFS.dfsFromNode( this, @@ -534,8 +550,8 @@ fun ExtractionData.performAnalysis(): AnalysisResult { checkDeclarationsMovingOutOfScope(controlFlow)?.let { messages.add(it) } val functionNameValidator = JetNameValidatorImpl( - nextSibling.getParent(), - nextSibling, + targetSibling.getParent(), + targetSibling, JetNameValidatorImpl.Target.FUNCTIONS_AND_CLASSES ) val functionName = JetNameSuggester.suggestNames(controlFlow.returnType, functionNameValidator, DEFAULT_FUNCTION_NAME).first() @@ -673,14 +689,11 @@ fun ExtractionDescriptor.generateFunction( fun createFunction(): JetNamedFunction { return with(extractionData) { if (inTempFile) { - val position = nextSibling.getTextRange()!!.getStartOffset() - val tmpFile = originalFile.createTempCopy { text -> - StringBuilder(text).insert(position, getFunctionText() + "\n").toString() - } + val function = createTemporaryFunction("${getFunctionText()}\n") if (originalFile.skipVisibilityCheck()) { - tmpFile.setSkipVisibilityCheck(true) + function.getContainingJetFile().setSkipVisibilityCheck(true) } - tmpFile.findElementAt(position)?.getParentByType(javaClass())!! + function } else { JetPsiFactory.createFunction(project, getFunctionText()) @@ -763,11 +776,20 @@ fun ExtractionDescriptor.generateFunction( fun insertFunction(function: JetNamedFunction): JetNamedFunction { return with(extractionData) { - val targetContainer = nextSibling.getParent()!! - val functionInFile = targetContainer.addBefore(function, nextSibling) as JetNamedFunction - targetContainer.addBefore(JetPsiFactory.createWhiteSpace(project, "\n\n"), nextSibling) + val targetContainer = targetSibling.getParent()!! + val emptyLines = JetPsiFactory.createWhiteSpace(project, "\n\n") + if (insertBefore) { + val functionInFile = targetContainer.addBefore(function, targetSibling) as JetNamedFunction + targetContainer.addBefore(emptyLines, targetSibling) - functionInFile + functionInFile + } + else { + val functionInFile = targetContainer.addAfter(function, targetSibling) as JetNamedFunction + targetContainer.addAfter(emptyLines, targetSibling) + + functionInFile + } } } diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ui/KotlinExtractFunctionDialog.java b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ui/KotlinExtractFunctionDialog.java index 98af2355c72..e5df89c5e73 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ui/KotlinExtractFunctionDialog.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/extractFunction/ui/KotlinExtractFunctionDialog.java @@ -26,7 +26,6 @@ import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.MultiMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.psi.JetClassBody; -import org.jetbrains.jet.lang.psi.JetClassOrObject; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.plugin.refactoring.JetNameSuggester; import org.jetbrains.jet.plugin.refactoring.JetRefactoringBundle; @@ -72,7 +71,7 @@ public class KotlinExtractFunctionDialog extends DialogWrapper { } private boolean isVisibilitySectionAvailable() { - PsiElement target = originalDescriptor.getDescriptor().getExtractionData().getNextSibling().getParent(); + PsiElement target = originalDescriptor.getDescriptor().getExtractionData().getTargetSibling().getParent(); return target instanceof JetClassBody || target instanceof JetFile; } diff --git a/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt b/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt index 3785a529228..18c78fd61bb 100644 --- a/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt +++ b/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { // test println(a) diff --git a/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt.after b/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt.after index 47ec420ceaa..608dabf999a 100644 --- a/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt.after +++ b/idea/testData/refactoring/extractFunction/basic/fragmentWithComment.kt.after @@ -1,12 +1,12 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + if (b(a)) return a + return -a +} + fun b(a: Int): Boolean { // test println(a) if (a > 0) return true return false -} - -fun foo(a: Int): Int { - if (b(a)) return a - return -a } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt b/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt index 16c55e37ef9..7a6adf3d142 100644 --- a/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt +++ b/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { /* test diff --git a/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt.after b/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt.after index ebcfb60ffba..442909f5953 100644 --- a/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt.after +++ b/idea/testData/refactoring/extractFunction/basic/fragmentWithMultilineComment.kt.after @@ -1,4 +1,9 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + if (b(a)) return a + return -a +} + fun b(a: Int): Boolean { /* test @@ -6,9 +11,4 @@ fun b(a: Int): Boolean { println(a) if (a > 0) return true return false -} - -fun foo(a: Int): Int { - if (b(a)) return a - return -a } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/basic/localClassFunctionRef.kt b/idea/testData/refactoring/extractFunction/basic/localClassFunctionRef.kt index 90b8f164720..e0624a7c582 100644 --- a/idea/testData/refactoring/extractFunction/basic/localClassFunctionRef.kt +++ b/idea/testData/refactoring/extractFunction/basic/localClassFunctionRef.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { class A { fun bar(): Int = a + 10 diff --git a/idea/testData/refactoring/extractFunction/basic/localClassPropertyRef.kt b/idea/testData/refactoring/extractFunction/basic/localClassPropertyRef.kt index ad6e1f21306..5966306fcb3 100644 --- a/idea/testData/refactoring/extractFunction/basic/localClassPropertyRef.kt +++ b/idea/testData/refactoring/extractFunction/basic/localClassPropertyRef.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { class A { val bar: Int = a + 10 diff --git a/idea/testData/refactoring/extractFunction/basic/localExtraction.kt b/idea/testData/refactoring/extractFunction/basic/localExtraction.kt new file mode 100644 index 00000000000..f45ec657c82 --- /dev/null +++ b/idea/testData/refactoring/extractFunction/basic/localExtraction.kt @@ -0,0 +1,4 @@ +fun foo(a: Int): Int { + // SIBLING: + return a + 10 +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/basic/localExtraction.kt.after b/idea/testData/refactoring/extractFunction/basic/localExtraction.kt.after new file mode 100644 index 00000000000..d31a3bc39c6 --- /dev/null +++ b/idea/testData/refactoring/extractFunction/basic/localExtraction.kt.after @@ -0,0 +1,8 @@ +fun foo(a: Int): Int { + // SIBLING: + fun i(): Int { + return a + 10 + } + + return i() +} \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/basic/localFunctionRef.kt b/idea/testData/refactoring/extractFunction/basic/localFunctionRef.kt index 1c2d7bc01a3..30bdf36091a 100644 --- a/idea/testData/refactoring/extractFunction/basic/localFunctionRef.kt +++ b/idea/testData/refactoring/extractFunction/basic/localFunctionRef.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { fun bar(): Int = a + 10 diff --git a/idea/testData/refactoring/extractFunction/basic/misdirectedRef.kt b/idea/testData/refactoring/extractFunction/basic/misdirectedRef.kt index 48da22b0002..93e8ea124d7 100644 --- a/idea/testData/refactoring/extractFunction/basic/misdirectedRef.kt +++ b/idea/testData/refactoring/extractFunction/basic/misdirectedRef.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun bar(): Int = 100 fun foo(a: Int): Int { diff --git a/idea/testData/refactoring/extractFunction/basic/noConflictWithInnerFunction.kt b/idea/testData/refactoring/extractFunction/basic/noConflictWithInnerFunction.kt index 05b5406ebd3..d28c3429053 100644 --- a/idea/testData/refactoring/extractFunction/basic/noConflictWithInnerFunction.kt +++ b/idea/testData/refactoring/extractFunction/basic/noConflictWithInnerFunction.kt @@ -1,6 +1,6 @@ fun foo() { val a = 1 - // NEXT_SIBLING + // SIBLING: if (a > 0) { fun b(): Int { return 0 } println(b()) diff --git a/idea/testData/refactoring/extractFunction/basic/noConflictWithInnerFunction.kt.after b/idea/testData/refactoring/extractFunction/basic/noConflictWithInnerFunction.kt.after index b0a45c4cb1d..70c1d24a465 100644 --- a/idea/testData/refactoring/extractFunction/basic/noConflictWithInnerFunction.kt.after +++ b/idea/testData/refactoring/extractFunction/basic/noConflictWithInnerFunction.kt.after @@ -1,6 +1,6 @@ fun foo() { val a = 1 - // NEXT_SIBLING + // SIBLING: fun b1(): Boolean { return a > 0 } diff --git a/idea/testData/refactoring/extractFunction/basic/privateMemberRef.kt b/idea/testData/refactoring/extractFunction/basic/privateMemberRef.kt index 3e706cc35de..197fb54989a 100644 --- a/idea/testData/refactoring/extractFunction/basic/privateMemberRef.kt +++ b/idea/testData/refactoring/extractFunction/basic/privateMemberRef.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: class A { private val t: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/basic/refInReturn.kt b/idea/testData/refactoring/extractFunction/basic/refInReturn.kt index 0b3fab7895e..0fd72488273 100644 --- a/idea/testData/refactoring/extractFunction/basic/refInReturn.kt +++ b/idea/testData/refactoring/extractFunction/basic/refInReturn.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { println(a) if (a > 0) return a diff --git a/idea/testData/refactoring/extractFunction/basic/refInReturn.kt.after b/idea/testData/refactoring/extractFunction/basic/refInReturn.kt.after index 87b310757f1..ffe390de69e 100644 --- a/idea/testData/refactoring/extractFunction/basic/refInReturn.kt.after +++ b/idea/testData/refactoring/extractFunction/basic/refInReturn.kt.after @@ -1,11 +1,11 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + if (b(a)) return a + return -a +} + fun b(a: Int): Boolean { println(a) if (a > 0) return true return false -} - -fun foo(a: Int): Int { - if (b(a)) return a - return -a } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt index 06e39ec903c..f836b2a6581 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt.after index 61293509d3f..e10096f1f3d 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIf.kt.after @@ -1,16 +1,16 @@ -// NEXT_SIBLING: -fun b(a: Int, b: Int): Boolean { - if (a + b > 0) return true - println(a - b) - if (a - b > 0) return true - println(a + b) - return false -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { if (b(a, b)) break } return 1 +} + +fun b(a: Int, b: Int): Boolean { + if (a + b > 0) return true + println(a - b) + if (a - b > 0) return true + println(a + b) + return false } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt index 63958876889..03e115b80d6 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt.after index c7c713ea5ae..ac6cf45ac2c 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithIfElse.kt.after @@ -1,13 +1,4 @@ -// NEXT_SIBLING: -fun b(a: Int, b: Int): Boolean { - if (a + b > 0) return true - else { - println(a - b) - if (a - b > 0) return true else println(a + b) - } - return false -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { @@ -15,4 +6,13 @@ fun foo(a: Int): Int { } return 1 +} + +fun b(a: Int, b: Int): Boolean { + if (a + b > 0) return true + else { + println(a - b) + if (a - b > 0) return true else println(a + b) + } + return false } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt index c81a34a83e9..4286e85cc20 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt.after index 13aa5e4459b..4c18664b220 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalBreakWithWhen.kt.after @@ -1,4 +1,12 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + val b: Int = 1 + for (n in 1..a) { + if (b(a, b)) break + } + return 1 +} + fun b(a: Int, b: Int): Boolean { when { a + b > 0 -> return true @@ -6,12 +14,4 @@ fun b(a: Int, b: Int): Boolean { else -> println(0) } return false -} - -fun foo(a: Int): Int { - val b: Int = 1 - for (n in 1..a) { - if (b(a, b)) break - } - return 1 } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt index a0dd31adbe5..ecd386b198d 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 if (a + b > 0) return 0 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt.after index 6866c6eace0..4fc2c0ba18c 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIf.kt.after @@ -1,12 +1,12 @@ -// NEXT_SIBLING: -fun b(a: Int, b: Int): Boolean { - if (a + b > 0) return true - println(a - b) - return false -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 if (b(a, b)) return 0 return 1 +} + +fun b(a: Int, b: Int): Boolean { + if (a + b > 0) return true + println(a - b) + return false } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt index 023ff58f138..199f2ba5304 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 if (a + b > 0) return 0 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt.after index 062b5fb5f70..a1c786aa896 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithIfElse.kt.after @@ -1,13 +1,13 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + val b: Int = 1 + if (b(a, b)) return 0 + return 1 +} + fun b(a: Int, b: Int): Boolean { if (a + b > 0) return true else if (a - b < 0) println(a - b) else println(0) return false -} - -fun foo(a: Int): Int { - val b: Int = 1 - if (b(a, b)) return 0 - return 1 } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt index aa2be0cb790..ffa88f296c7 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 when (a + b) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt.after index 39b12fac80b..81e18d6d4a9 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/conditionalReturnWithWhen.kt.after @@ -1,4 +1,11 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + val b: Int = 1 + if (b(a, b)) return 0 + + return 1 +} + fun b(a: Int, b: Int): Boolean { when (a + b) { 0 -> return true @@ -6,11 +13,4 @@ fun b(a: Int, b: Int): Boolean { else -> println(2) } return false -} - -fun foo(a: Int): Int { - val b: Int = 1 - if (b(a, b)) return 0 - - return 1 } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt index 1cd2217b5c4..0e4a5dcd7d7 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt.after index fe159a70a3c..e0378144224 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIf.kt.after @@ -1,10 +1,4 @@ -// NEXT_SIBLING: -fun unit(a: Int, b: Int) { - if (a + b > 0) return - println(a - b) - return -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { @@ -12,4 +6,10 @@ fun foo(a: Int): Int { break } return 1 +} + +fun unit(a: Int, b: Int) { + if (a + b > 0) return + println(a - b) + return } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt index 2c3dd73680f..7bb6f8d2bde 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt.after index edc1c4c378a..2c2cb51f5d2 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithIfElse.kt.after @@ -1,12 +1,4 @@ -// NEXT_SIBLING: -fun unit(a: Int, b: Int) { - if (a + b > 0) return - else { - println(a - b) - return - } -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { @@ -14,4 +6,12 @@ fun foo(a: Int): Int { break } return 1 +} + +fun unit(a: Int, b: Int) { + if (a + b > 0) return + else { + println(a - b) + return + } } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt index 2a6c92814a6..f25eda5649f 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt.after index 3a2b6622cf7..f40ffbefe6d 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/conditionalJumps/unconditionalBreakWithWhen.kt.after @@ -1,4 +1,13 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + val b: Int = 1 + for (n in 1..a) { + unit(a, b) + break + } + return 1 +} + fun unit(a: Int, b: Int) { when { a + b > 0 -> return @@ -8,13 +17,4 @@ fun unit(a: Int, b: Int) { return } } -} - -fun foo(a: Int): Int { - val b: Int = 1 - for (n in 1..a) { - unit(a, b) - break - } - return 1 } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt index 2df388f597d..9e380c0605e 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int) { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt.after index fb393acd945..70a1a7925d7 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCF.kt.after @@ -1,13 +1,13 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int) { + val b: Int = 1 + + unit(a, b) +} + fun unit(a: Int, b: Int) { if (a > 0) { println(a) } println(b) -} - -fun foo(a: Int) { - val b: Int = 1 - - unit(a, b) } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt index 0e2640727ea..e2399edb49f 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int) { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt.after index 47a09991285..0a6786457c3 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/default/defaultCFWithJumps.kt.after @@ -1,4 +1,10 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int) { + val b: Int = 1 + + unit(a) +} + fun unit(a: Int) { var t = a while (t > 0) { @@ -7,10 +13,4 @@ fun unit(a: Int) { if (t == 1) break t-- } -} - -fun foo(a: Int) { - val b: Int = 1 - - unit(a) } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt index 567cbf9c435..1d23aa7b381 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 if (a + b > 0) return 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt.after index b966f14c6fb..96feeacb740 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithIf.kt.after @@ -1,11 +1,11 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + val b: Int = 1 + return i(a, b) +} + fun i(a: Int, b: Int): Int { if (a + b > 0) return 1 else if (a - b < 0) return 2 else return b -} - -fun foo(a: Int): Int { - val b: Int = 1 - return i(a, b) } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt index 834207e34a5..117adfe3791 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 when (a + b) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt.after index be4501084cb..f8fceed3237 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/definiteReturnWithWhen.kt.after @@ -1,13 +1,13 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + val b: Int = 1 + return i(a, b) +} + fun i(a: Int, b: Int): Int { when (a + b) { 0 -> return b 1 -> return -b else -> return a - b } -} - -fun foo(a: Int): Int { - val b: Int = 1 - return i(a, b) } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt index a7e3333327e..fa31f31fdda 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 return a + b diff --git a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt.after index f4387e8c373..2ac53541783 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/definiteReturns/singleDefiniteReturn.kt.after @@ -1,9 +1,9 @@ -// NEXT_SIBLING: -fun i(a: Int, b: Int): Int { - return a + b -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 return i(a, b) +} + +fun i(a: Int, b: Int): Int { + return a + b } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIf.kt index 287c2b2f02b..3222a55b7d7 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIf.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 return if (a + b > 0) 1 else if (a - b < 0) 2 else b diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIf.kt.after index 35be3bc760c..effcbf7e4cc 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInIf.kt.after @@ -1,9 +1,9 @@ -// NEXT_SIBLING: -fun i(a: Int, b: Int): Int { - return if (a + b > 0) 1 else if (a - b < 0) 2 else b -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 return i(a, b) +} + +fun i(a: Int, b: Int): Int { + return if (a + b > 0) 1 else if (a - b < 0) 2 else b } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhen.kt index e143f761770..3b198ecc4be 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhen.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 return when (a + b) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhen.kt.after index 92cd2b7e877..3c7904f49d0 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/evalExprInWhen.kt.after @@ -1,13 +1,13 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + val b: Int = 1 + return i(a, b) +} + fun i(a: Int, b: Int): Int { return when (a + b) { 0 -> b 1 -> -b else -> a - b } -} - -fun foo(a: Int): Int { - val b: Int = 1 - return i(a, b) } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt index 2f949c1f8e0..77991cf0170 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 return a + b diff --git a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt.after index f4387e8c373..2ac53541783 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/evaluateExpression/simpleEvalExpr.kt.after @@ -1,9 +1,9 @@ -// NEXT_SIBLING: -fun i(a: Int, b: Int): Int { - return a + b -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 return i(a, b) +} + +fun i(a: Int, b: Int): Int { + return a + b } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValues.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValues.kt index 8447c22e4ab..10a49088446 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValues.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValues.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 var c: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValuesWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValuesWithIf.kt index ab332122f3c..45e6e7e491a 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValuesWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValuesWithIf.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 var c: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValuesWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValuesWithWhen.kt index a8973c0b562..b56079d4b46 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValuesWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/multipleOutputValuesWithWhen.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 var c: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt index 7ee976112f6..4fa1218b258 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt.after index 6d7b4ddb7be..d02accf3487 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValue.kt.after @@ -1,15 +1,15 @@ -// NEXT_SIBLING: -fun i(a: Int, b: Int): Int { - var b1 = b - b1 += a - println(b1) - return b1 -} - +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 b = i(a, b) return b +} + +fun i(a: Int, b: Int): Int { + var b1 = b + b1 += a + println(b1) + return b1 } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt index e3413a7a3d1..02665c4eb3e 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt.after index b9d2cb7145f..211b37c956d 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIf.kt.after @@ -1,4 +1,12 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + var b: Int = 1 + + b = i(a, b) + + return b +} + fun i(a: Int, b: Int): Int { var b1 = b if (a > 0) { @@ -6,12 +14,4 @@ fun i(a: Int, b: Int): Int { } println(b1) return b1 -} - -fun foo(a: Int): Int { - var b: Int = 1 - - b = i(a, b) - - return b } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt index c80852f40ba..cd0880bf48c 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt.after index 900adf4988f..f85082d6c38 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithIfElse.kt.after @@ -1,4 +1,12 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + var b: Int = 1 + + b = i(a, b) + + return b +} + fun i(a: Int, b: Int): Int { var b1 = b if (a > 0) { @@ -10,12 +18,4 @@ fun i(a: Int, b: Int): Int { } println(b1) return b1 -} - -fun foo(a: Int): Int { - var b: Int = 1 - - b = i(a, b) - - return b } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt index c459f686507..710aebe5ff3 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt.after index 2a56b5bf6ea..d51486fd376 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhen.kt.after @@ -1,4 +1,12 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + var b: Int = 1 + + b = i(a, b) + + return b +} + fun i(a: Int, b: Int): Int { var b1 = b when { @@ -11,12 +19,4 @@ fun i(a: Int, b: Int): Int { } println(b1) return b1 -} - -fun foo(a: Int): Int { - var b: Int = 1 - - b = i(a, b) - - return b } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt index 217a535e96f..62cb4836a34 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt.after index 46b6d3903ce..b7dfbc2c107 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/singleOutputValueWithWhenElse.kt.after @@ -1,4 +1,12 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int): Int { + var b: Int = 1 + + b = i(a, b) + + return b +} + fun i(a: Int, b: Int): Int { var b1 = b when { @@ -14,12 +22,4 @@ fun i(a: Int, b: Int): Int { } println(b1) return b1 -} - -fun foo(a: Int): Int { - var b: Int = 1 - - b = i(a, b) - - return b } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt index b6049a95d41..60e5b4f04e6 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..b) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt.after index 44916d6cf67..b8eb407c5da 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/breakWithThrow.kt.after @@ -1,14 +1,14 @@ -// NEXT_SIBLING: -fun b(a: Int, b: Int): Boolean { - if (a > 0) throw Exception("") - if (a + b > 0) return true - println(a - b) - return false -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..b) { if (b(a, b)) break } +} + +fun b(a: Int, b: Int): Boolean { + if (a > 0) throw Exception("") + if (a + b > 0) return true + println(a - b) + return false } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt index c670282c33c..919ffd16e73 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..b) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt.after index 51bb8da2f32..3241bcc9ddd 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/continueWithThrow.kt.after @@ -1,14 +1,14 @@ -// NEXT_SIBLING: -fun b(a: Int, b: Int): Boolean { - if (a > 0) throw Exception("") - if (a + b > 0) return true - println(a - b) - return false -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..b) { if (b(a, b)) continue } +} + +fun b(a: Int, b: Int): Boolean { + if (a > 0) throw Exception("") + if (a + b > 0) return true + println(a - b) + return false } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt index 1c77481545a..3710051cd59 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt.after index 19de1c27d0a..bda988ff2f0 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/evalExpressionWithThrow.kt.after @@ -1,11 +1,11 @@ -// NEXT_SIBLING: -fun i(a: Int, b: Int): Int { - return if (a > 0) throw Exception("") else a + b -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 val t = i(a, b) return t +} + +fun i(a: Int, b: Int): Int { + return if (a > 0) throw Exception("") else a + b } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt index 8fb3d2e9394..7c1c6f1a4cf 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int) { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt.after index 7662624e53c..e2c66d8ce95 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/nonValuedReturnWithThrow.kt.after @@ -1,13 +1,13 @@ -// NEXT_SIBLING: +// SIBLING: +fun foo(a: Int) { + val b: Int = 1 + + if (b(a, b)) return +} + fun b(a: Int, b: Int): Boolean { if (a > 0) throw Exception("") if (b + a > 0) return true println(a - b) return false -} - -fun foo(a: Int) { - val b: Int = 1 - - if (b(a, b)) return } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt index fc791ff4654..fcff707f1d0 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt.after index f45038d757a..819b4b274e0 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/throws/returnWithThrow.kt.after @@ -1,11 +1,11 @@ -// NEXT_SIBLING: -fun i(a: Int, b: Int): Int { - if (a > 0) throw Exception("") else return a + b - return a - b -} - +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 return i(a, b) +} + +fun i(a: Int, b: Int): Int { + if (a > 0) throw Exception("") else return a + b + return a - b } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/anonymousObject.kt b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/anonymousObject.kt index 8f2a0bd6e5d..88bf5f6c903 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/anonymousObject.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/anonymousObject.kt @@ -3,7 +3,7 @@ trait Callable { } fun foo(a: Int): Int { - // NEXT_SIBLING: + // SIBLING: val o = object: Callable { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/evalExpressionWithReturn.kt b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/evalExpressionWithReturn.kt index 40ed6f3e276..c04eb7b068d 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/evalExpressionWithReturn.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/evalExpressionWithReturn.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/jumpsAndReturns.kt b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/jumpsAndReturns.kt index 7eac6a097a2..b9ed967b487 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/jumpsAndReturns.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/jumpsAndReturns.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/multipleJumps.kt b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/multipleJumps.kt index b15bd17a880..e6f2949deed 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/multipleJumps.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/multipleJumps.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 for (n in 1..a) { diff --git a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/multipleReturnsWithDefault.kt b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/multipleReturnsWithDefault.kt index d38b661b941..638668fdd77 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/multipleReturnsWithDefault.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/multipleReturnsWithDefault.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithExpression.kt b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithExpression.kt index 1528ef47435..d0696b844e2 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithExpression.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithExpression.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithReturn.kt b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithReturn.kt index e018369d549..55c0ff5fdf0 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithReturn.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithReturn.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithThrow.kt b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithThrow.kt index 4b936c8ea18..514aa2941ff 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithThrow.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/outputValueWithThrow.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { var b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/variablesOutOfScope.kt b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/variablesOutOfScope.kt index f59132eb055..7129d30bf4e 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/unextractable/variablesOutOfScope.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/unextractable/variablesOutOfScope.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(t: Int): Int { val x = t + 1 if (x > 0) return x diff --git a/idea/testData/refactoring/extractFunction/parameters/extractSuper/labeledSuperPropertyCall.kt b/idea/testData/refactoring/extractFunction/parameters/extractSuper/labeledSuperPropertyCall.kt index 6c963e39768..542934cb716 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractSuper/labeledSuperPropertyCall.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractSuper/labeledSuperPropertyCall.kt @@ -2,7 +2,7 @@ public open class Z { val z: Int = 0 } -// NEXT_SIBLING: +// SIBLING: public class A(): Z() { var a: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/parameters/extractSuper/superFunctionCall.kt b/idea/testData/refactoring/extractFunction/parameters/extractSuper/superFunctionCall.kt index 267a5069e0f..4c97db0edd3 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractSuper/superFunctionCall.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractSuper/superFunctionCall.kt @@ -4,7 +4,7 @@ public open class Z { } } -// NEXT_SIBLING: +// SIBLING: public class A(): Z() { var a: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/parameters/extractSuper/superLabeledFunctionCall.kt b/idea/testData/refactoring/extractFunction/parameters/extractSuper/superLabeledFunctionCall.kt index 6e675e20114..6a68f546f5c 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractSuper/superLabeledFunctionCall.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractSuper/superLabeledFunctionCall.kt @@ -4,7 +4,7 @@ public open class Z { } } -// NEXT_SIBLING: +// SIBLING: public class A(): Z() { var a: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/parameters/extractSuper/superPropertyCall.kt b/idea/testData/refactoring/extractFunction/parameters/extractSuper/superPropertyCall.kt index 98ad5b6ce7c..f04fb90831d 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractSuper/superPropertyCall.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractSuper/superPropertyCall.kt @@ -2,7 +2,7 @@ public open class Z { val z: Int = 0 } -// NEXT_SIBLING: +// SIBLING: public class A(): Z() { var a: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt index ddfc49d0a9a..9b793169806 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt @@ -2,7 +2,7 @@ public open class Z { val z: Int = 0 } -// NEXT_SIBLING: +// SIBLING: public class A(): Z() { var a: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt.after index 313a581e394..932c04b5a0d 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitLabeledThisInMember.kt.after @@ -2,11 +2,7 @@ public open class Z { val z: Int = 0 } -// NEXT_SIBLING: -fun i(a1: A, b1: A.B): Int { - return a1.a + b1.b + a1.z + b1.z -} - +// SIBLING: public class A(): Z() { var a: Int = 1 @@ -18,3 +14,7 @@ public class A(): Z() { } } } + +fun i(a1: A, b1: A.B): Int { + return a1.a + b1.b + a1.z + b1.z +} diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt index 4a5f728aa5d..de578bee1e2 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt @@ -1,6 +1,6 @@ class Z(val a: Int) -// NEXT_SIBLING: +// SIBLING: fun Z.foo(): Int { return this.a + 1 } diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt.after index 31387b10d44..db4d498bd74 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInExtension.kt.after @@ -1,10 +1,10 @@ class Z(val a: Int) -// NEXT_SIBLING: -fun Z.i(): Int { - return a -} - +// SIBLING: fun Z.foo(): Int { return i() + 1 } + +fun Z.i(): Int { + return a +} diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt index a0f2e25232a..6bf09f98e4f 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt @@ -2,7 +2,7 @@ public open class Z { val z: Int = 0 } -// NEXT_SIBLING: +// SIBLING: public class A(): Z() { var a: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt.after index 1c545ad6605..48d65eb567b 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/explicitThisInMember.kt.after @@ -2,11 +2,7 @@ public open class Z { val z: Int = 0 } -// NEXT_SIBLING: -fun i(a1: A, b1: A.B): Int { - return a1.a + b1.b + b1.z -} - +// SIBLING: public class A(): Z() { var a: Int = 1 @@ -18,3 +14,7 @@ public class A(): Z() { } } } + +fun i(a1: A, b1: A.B): Int { + return a1.a + b1.b + b1.z +} diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt index 32fbe3e3d31..a9ef6b95ce9 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt @@ -2,7 +2,7 @@ public open class Z { val z: Int = 0 } -// NEXT_SIBLING: +// SIBLING: public class A(): Z() { var a: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt.after index 313a581e394..932c04b5a0d 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitLabeledThisInMember.kt.after @@ -2,11 +2,7 @@ public open class Z { val z: Int = 0 } -// NEXT_SIBLING: -fun i(a1: A, b1: A.B): Int { - return a1.a + b1.b + a1.z + b1.z -} - +// SIBLING: public class A(): Z() { var a: Int = 1 @@ -18,3 +14,7 @@ public class A(): Z() { } } } + +fun i(a1: A, b1: A.B): Int { + return a1.a + b1.b + a1.z + b1.z +} diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt index 0e4acd18602..0946bdd5021 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt @@ -1,6 +1,6 @@ class Z(val a: Int) -// NEXT_SIBLING: +// SIBLING: fun Z.foo(): Int { return this.a + a + 1 } diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt.after index af406195a73..5686b9478dd 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitAndExplicitThisInExtension.kt.after @@ -1,10 +1,10 @@ class Z(val a: Int) -// NEXT_SIBLING: -fun Z.i(): Int { - return a + a -} - +// SIBLING: fun Z.foo(): Int { return i() + 1 } + +fun Z.i(): Int { + return a + a +} diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt index 39062eb46a1..51e55077b5a 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt @@ -1,6 +1,6 @@ class Z(val a: Int) -// NEXT_SIBLING: +// SIBLING: fun Z.foo(): Int { return a + 1 } diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt.after index 31387b10d44..db4d498bd74 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInExtension.kt.after @@ -1,10 +1,10 @@ class Z(val a: Int) -// NEXT_SIBLING: -fun Z.i(): Int { - return a -} - +// SIBLING: fun Z.foo(): Int { return i() + 1 } + +fun Z.i(): Int { + return a +} diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt index 1add23e1352..ed05565e00d 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt @@ -2,7 +2,7 @@ public open class Z { val z: Int = 0 } -// NEXT_SIBLING: +// SIBLING: public class A(): Z() { var a: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt.after b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt.after index cf243f62ea9..72160c11655 100644 --- a/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/extractThis/implicitThisInMember.kt.after @@ -2,11 +2,7 @@ public open class Z { val z: Int = 0 } -// NEXT_SIBLING: -fun i(a1: A, b1: A.B): Int { - return a1.a + b1.b + b1.z -} - +// SIBLING: public class A(): Z() { var a: Int = 1 @@ -18,3 +14,7 @@ public class A(): Z() { } } } + +fun i(a1: A, b1: A.B): Int { + return a1.a + b1.b + b1.z +} diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/classObject.kt b/idea/testData/refactoring/extractFunction/parameters/misc/classObject.kt index 6841da6de93..ec5a009f4a5 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/classObject.kt +++ b/idea/testData/refactoring/extractFunction/parameters/misc/classObject.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: class MyClass { fun test(): Int { coFun() diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/classObject.kt.after b/idea/testData/refactoring/extractFunction/parameters/misc/classObject.kt.after index a7a1ac6ab89..5ed77ab127d 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/classObject.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/misc/classObject.kt.after @@ -1,9 +1,4 @@ -// NEXT_SIBLING: -fun i(): Int { - MyClass.coFun() - return MyClass.coProp + 10 -} - +// SIBLING: class MyClass { fun test(): Int { return i() @@ -17,3 +12,8 @@ class MyClass { } } } + +fun i(): Int { + MyClass.coFun() + return MyClass.coProp + 10 +} diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/innerClassObject.kt b/idea/testData/refactoring/extractFunction/parameters/misc/innerClassObject.kt index 8a52494b870..62d3a2eb1b3 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/innerClassObject.kt +++ b/idea/testData/refactoring/extractFunction/parameters/misc/innerClassObject.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: class A { class B { fun test(): Int { diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/innerClassObject.kt.after b/idea/testData/refactoring/extractFunction/parameters/misc/innerClassObject.kt.after index 40f9ec66457..2b66ffda01b 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/innerClassObject.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/misc/innerClassObject.kt.after @@ -1,9 +1,4 @@ -// NEXT_SIBLING: -fun i(): Int { - A.B.coFun() - return A.B.coProp + 10 -} - +// SIBLING: class A { class B { fun test(): Int { @@ -20,4 +15,9 @@ class A { } } +fun i(): Int { + A.B.coFun() + return A.B.coProp + 10 +} + diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt b/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt index 81924b1c2d3..9a876cd41c8 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt +++ b/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int, b: Int, c: Int): Int { return (a + b*a - c) + b*c } diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt.after b/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt.after index 8fbe6cc1e3d..b82bcb36d27 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/misc/multipleOccurrences.kt.after @@ -1,8 +1,8 @@ -// NEXT_SIBLING: -fun i(a: Int, b: Int, c: Int): Int { - return (a + b * a - c) + b * c -} - +// SIBLING: fun foo(a: Int, b: Int, c: Int): Int { return i(a, b, c) } + +fun i(a: Int, b: Int, c: Int): Int { + return (a + b * a - c) + b * c +} diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt b/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt index 8e781849724..5761a4b2bff 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt +++ b/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: public class A() { fun bar(a: Int, b: Int): Int { return a + b diff --git a/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt.after b/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt.after index 8e0b5d72cbc..885b558f0a3 100644 --- a/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/misc/usagesInCallArgs.kt.after @@ -1,14 +1,14 @@ -// NEXT_SIBLING: -fun i(a: A, t: Int, u: Int, x: Int): Int { - return a.bar(t - x, u + x) -} - +// SIBLING: public class A() { fun bar(a: Int, b: Int): Int { return a + b } } +fun i(a: A, t: Int, u: Int, x: Int): Int { + return a.bar(t - x, u + x) +} + fun foo(a: A, x: Int): Int { val t = 10 val u = 20 diff --git a/idea/testData/refactoring/extractFunction/parameters/nonDenotableTypes/anonymousObject.kt b/idea/testData/refactoring/extractFunction/parameters/nonDenotableTypes/anonymousObject.kt index 970decabe0f..dec1f8a1436 100644 --- a/idea/testData/refactoring/extractFunction/parameters/nonDenotableTypes/anonymousObject.kt +++ b/idea/testData/refactoring/extractFunction/parameters/nonDenotableTypes/anonymousObject.kt @@ -3,7 +3,7 @@ trait Callable { } fun foo(a: Int): Int { - // NEXT_SIBLING: + // SIBLING: val o = object: Callable { val b: Int = 1 diff --git a/idea/testData/refactoring/extractFunction/parameters/nonDenotableTypes/localClass.kt b/idea/testData/refactoring/extractFunction/parameters/nonDenotableTypes/localClass.kt index 16a4db32d3b..cdb489fad01 100644 --- a/idea/testData/refactoring/extractFunction/parameters/nonDenotableTypes/localClass.kt +++ b/idea/testData/refactoring/extractFunction/parameters/nonDenotableTypes/localClass.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo(a: Int): Int { class T(val b: Int) diff --git a/idea/testData/refactoring/extractFunction/typeParameters/localClassInBound.kt b/idea/testData/refactoring/extractFunction/typeParameters/localClassInBound.kt index a2cc8e14f66..0d299f151ce 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/localClassInBound.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/localClassInBound.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo() { open class X(val x: Int) diff --git a/idea/testData/refactoring/extractFunction/typeParameters/localClassInTypeConstraint.kt b/idea/testData/refactoring/extractFunction/typeParameters/localClassInTypeConstraint.kt index af669e9c67a..b70d918ef34 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/localClassInTypeConstraint.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/localClassInTypeConstraint.kt @@ -1,4 +1,4 @@ -// NEXT_SIBLING: +// SIBLING: fun foo() { open class X(val x: Int) diff --git a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt index 145b31bea9a..e742a9b01dd 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt @@ -2,7 +2,7 @@ open class Data(val x: Int) class Pair(val a: A, val b: B) -// NEXT_SIBLING: +// SIBLING: fun foo(v: V): Pair { return Pair(v.x + 10, v) } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt.after index 251a1dce0d2..de2341f088b 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameter.kt.after @@ -2,11 +2,11 @@ open class Data(val x: Int) class Pair(val a: A, val b: B) -// NEXT_SIBLING: -fun pair(v: V): Pair { - return Pair(v.x + 10, v) -} - +// SIBLING: fun foo(v: V): Pair { return pair(v) +} + +fun pair(v: V): Pair { + return Pair(v.x + 10, v) } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt index b64ae61c7cf..d5f09c3dc63 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt @@ -3,7 +3,7 @@ trait DataEx class Pair(val a: A, val b: B) -// NEXT_SIBLING: +// SIBLING: fun foo(v: V): Pair where V: DataEx { return Pair(v.x + 10, v) } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt.after index 660e5aa0453..a6e6466e197 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/simpleTypeParameterWithConstraint.kt.after @@ -3,11 +3,11 @@ trait DataEx class Pair(val a: A, val b: B) -// NEXT_SIBLING: -fun pair(v: V): Pair where V : DataEx { - return Pair(v.x + 10, v) -} - +// SIBLING: fun foo(v: V): Pair where V: DataEx { return pair(v) +} + +fun pair(v: V): Pair where V : DataEx { + return Pair(v.x + 10, v) } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt index b50daca10ac..ceb82dc3794 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt @@ -1,6 +1,6 @@ class Data(val t: Int) -// NEXT_SIBLING: +// SIBLING: class A { fun foo(d: Data): Int { return d.t + 1 diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt.after index 673dbda999f..9cd97061b3f 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParamInArgument.kt.after @@ -1,12 +1,12 @@ class Data(val t: Int) -// NEXT_SIBLING: -fun i(d: Data): Int { - return d.t + 1 -} - +// SIBLING: class A { fun foo(d: Data): Int { return i(d) } +} + +fun i(d: Data): Int { + return d.t + 1 } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt index 7e47fcddb6c..b0a9f7e494a 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt @@ -2,7 +2,7 @@ open class Data(val x: Int) trait DataEx trait DataExEx -// NEXT_SIBLING: +// SIBLING: class A(val t: T) where T: DataEx { inner class B(val u: U) where U: DataExEx { fun foo(v: V): Int where V: DataEx { diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after index ff862ccb9f6..e7dc5965d8a 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined1.kt.after @@ -2,15 +2,15 @@ open class Data(val x: Int) trait DataEx trait DataExEx -// NEXT_SIBLING: -fun i(a: A, b: A.B, v: V): Int where T : DataEx, U : DataExEx, V : DataEx { - return a.t.x + b.u.x + v.x -} - +// SIBLING: class A(val t: T) where T: DataEx { inner class B(val u: U) where U: DataExEx { fun foo(v: V): Int where V: DataEx { return i(this@A, this@B, v) } } +} + +fun i(a: A, b: A.B, v: V): Int where T : DataEx, U : DataExEx, V : DataEx { + return a.t.x + b.u.x + v.x } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt index 110cc19cba3..0802d6e3bf6 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt @@ -3,7 +3,7 @@ trait DataEx trait DataExEx class A(val t: T) where T: DataEx { - // NEXT_SIBLING: + // SIBLING: inner class B(val u: U) where U: DataExEx { fun foo(v: V): Int where V: DataEx { return t.x + u.x + v.x diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after index dd7518e2dcc..cea3de19fdd 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined2.kt.after @@ -3,14 +3,14 @@ trait DataEx trait DataExEx class A(val t: T) where T: DataEx { - // NEXT_SIBLING: - fun B.i(v: V): Int where U : DataExEx, V : DataEx { - return t.x + u.x + v.x - } - + // SIBLING: inner class B(val u: U) where U: DataExEx { fun foo(v: V): Int where V: DataEx { return i(v) } } + + fun B.i(v: V): Int where U : DataExEx, V : DataEx { + return t.x + u.x + v.x + } } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt index 97af228c58e..744b08cd3f5 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt @@ -4,7 +4,7 @@ trait DataExEx class A(val t: T) where T: DataEx { inner class B(val u: U) where U: DataExEx { - // NEXT_SIBLING: + // SIBLING: fun foo(v: V): Int where V: DataEx { return t.x + u.x + v.x } diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt.after index d73dd694eb7..1faeda07004 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersAndConstraintsCombined3.kt.after @@ -4,13 +4,13 @@ trait DataExEx class A(val t: T) where T: DataEx { inner class B(val u: U) where U: DataExEx { - // NEXT_SIBLING: - fun i(v: V): Int where V : DataEx { - return t.x + u.x + v.x - } - + // SIBLING: fun foo(v: V): Int where V: DataEx { return i(v) } + + fun i(v: V): Int where V : DataEx { + return t.x + u.x + v.x + } } } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt index 9ef2b678ac9..95b7b5dc375 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt @@ -1,6 +1,6 @@ open class Data(val x: Int) -// NEXT_SIBLING: +// SIBLING: class A(val t: T) { inner class B(val u: U) { fun foo(v: V): Int { diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt.after index 894182f0224..b8bda4914c7 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined1.kt.after @@ -1,14 +1,14 @@ open class Data(val x: Int) -// NEXT_SIBLING: -fun i(a: A, b: A.B, v: V): Int { - return a.t.x + b.u.x + v.x -} - +// SIBLING: class A(val t: T) { inner class B(val u: U) { fun foo(v: V): Int { return i(this@A, this@B, v) } } +} + +fun i(a: A, b: A.B, v: V): Int { + return a.t.x + b.u.x + v.x } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt index 0f439383434..9bbcb0101a0 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt @@ -1,7 +1,7 @@ open class Data(val x: Int) class A(val t: T) { - // NEXT_SIBLING: + // SIBLING: inner class B(val u: U) { fun foo(v: V): Int { return t.x + u.x + v.x diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt.after index 5f9cc06b77c..fadf4ee100b 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined2.kt.after @@ -1,14 +1,14 @@ open class Data(val x: Int) class A(val t: T) { - // NEXT_SIBLING: - fun B.i(v: V): Int { - return t.x + u.x + v.x - } - + // SIBLING: inner class B(val u: U) { fun foo(v: V): Int { return i(v) } } + + fun B.i(v: V): Int { + return t.x + u.x + v.x + } } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt index 84acd275329..23422827e45 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt @@ -2,7 +2,7 @@ open class Data(val x: Int) class A(val t: T) { inner class B(val u: U) { - // NEXT_SIBLING: + // SIBLING: fun foo(v: V): Int { return t.x + u.x + v.x } diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt.after index 02b4223d62b..c67966c5ee4 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombined3.kt.after @@ -2,13 +2,13 @@ open class Data(val x: Int) class A(val t: T) { inner class B(val u: U) { - // NEXT_SIBLING: - fun i(v: V): Int { - return t.x + u.x + v.x - } - + // SIBLING: fun foo(v: V): Int { return i(v) } + + fun i(v: V): Int { + return t.x + u.x + v.x + } } } \ No newline at end of file diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt index c4ac1e73665..d32eebe2c14 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt @@ -1,7 +1,7 @@ open class Data(val x: Int) trait DataEx -// NEXT_SIBLING: +// SIBLING: class A(val t: T) where T: DataEx { fun foo(v: V): Int { return t.x + v.x diff --git a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after index b9dda052e69..03d814aff07 100644 --- a/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after +++ b/idea/testData/refactoring/extractFunction/typeParameters/typeParametersCombinedAndThis.kt.after @@ -1,13 +1,13 @@ open class Data(val x: Int) trait DataEx -// NEXT_SIBLING: -fun A.i(v: V): Int where T : DataEx { - return t.x + v.x -} - +// SIBLING: class A(val t: T) where T: DataEx { fun foo(v: V): Int { return i(v) } +} + +fun A.i(v: V): Int where T : DataEx { + return t.x + v.x } \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/AbstractJetExtractionTest.kt b/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/AbstractJetExtractionTest.kt index f60ec95c1bd..eb903114173 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/AbstractJetExtractionTest.kt +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/AbstractJetExtractionTest.kt @@ -49,12 +49,12 @@ public abstract class AbstractJetExtractionTest() : LightCodeInsightFixtureTestC protected fun doExtractFunctionTest(path: String) { doTest(path) { file -> - var explicitNextSibling: PsiElement? = null + var explicitPreviousSibling: PsiElement? = null file.accept( object: JetTreeVisitorVoid() { override fun visitComment(comment: PsiComment?) { - if (comment?.getText() == "// NEXT_SIBLING:") { - explicitNextSibling = PsiTreeUtil.skipSiblingsForward( + if (comment?.getText() == "// SIBLING:") { + explicitPreviousSibling = PsiTreeUtil.skipSiblingsForward( comment, javaClass(), javaClass(), @@ -66,8 +66,8 @@ public abstract class AbstractJetExtractionTest() : LightCodeInsightFixtureTestC ) val editor = fixture.getEditor() - selectElements(editor, file) { (elements, nextSibling) -> - ExtractKotlinFunctionHandler().doInvoke(editor, file, elements, explicitNextSibling ?: nextSibling) + selectElements(editor, file) { (elements, previousSibling) -> + ExtractKotlinFunctionHandler().doInvoke(editor, file, elements, explicitPreviousSibling ?: previousSibling) } } } diff --git a/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/JetExtractionTestGenerated.java b/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/JetExtractionTestGenerated.java index 374112ccfe5..22678da27fc 100644 --- a/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/JetExtractionTestGenerated.java +++ b/idea/tests/org/jetbrains/jet/plugin/refactoring/introduce/introduceVariable/JetExtractionTestGenerated.java @@ -223,6 +223,11 @@ public class JetExtractionTestGenerated extends AbstractJetExtractionTest { doExtractFunctionTest("idea/testData/refactoring/extractFunction/basic/localClassPropertyRef.kt"); } + @TestMetadata("localExtraction.kt") + public void testLocalExtraction() throws Exception { + doExtractFunctionTest("idea/testData/refactoring/extractFunction/basic/localExtraction.kt"); + } + @TestMetadata("localFunctionRef.kt") public void testLocalFunctionRef() throws Exception { doExtractFunctionTest("idea/testData/refactoring/extractFunction/basic/localFunctionRef.kt");