diff --git a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt index c47810091c8..77473dca867 100644 --- a/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt +++ b/idea/src/org/jetbrains/kotlin/idea/debugger/evaluate/extractFunctionForDebuggerUtil.kt @@ -84,7 +84,8 @@ fun getFunctionForExtractedFragment( val options = ExtractionOptions(inferUnitTypeForUnusedValues = false, enableListBoxing = true, allowSpecialClassNames = true, - captureLocalFunctions = true) + captureLocalFunctions = true, + canWrapInWith = true) val analysisResult = ExtractionData(tmpFile, newDebugExpressions.toRange(), targetSibling, null, options).performAnalysis() if (analysisResult.status != Status.SUCCESS) { throw EvaluateExceptionUtil.createEvaluateException(getErrorMessageForExtractFunctionResult(analysisResult, tmpFile)) diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt index abc2bed0b6f..94854e2cd68 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/introduce/extractionEngine/ExtractionData.kt @@ -54,7 +54,8 @@ data class ExtractionOptions( val enableListBoxing: Boolean = false, val extractAsProperty: Boolean = false, val allowSpecialClassNames: Boolean = false, - val captureLocalFunctions: Boolean = false + val captureLocalFunctions: Boolean = false, + val canWrapInWith: Boolean = false ) { companion object { val DEFAULT = ExtractionOptions() diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/tooManyOutputValuesAsList.kt b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/tooManyOutputValuesAsList.kt index 80e73a303cd..f71c6866b75 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/tooManyOutputValuesAsList.kt +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/tooManyOutputValuesAsList.kt @@ -1,5 +1,5 @@ // WITH_RUNTIME -// OPTIONS: true, true, false, false, false +// OPTIONS: true, true, false, false, false, false // PARAM_TYPES: kotlin.Int // PARAM_TYPES: kotlin.Int // PARAM_TYPES: kotlin.Int diff --git a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/tooManyOutputValuesAsList.kt.after b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/tooManyOutputValuesAsList.kt.after index baa7b1393bb..dc439af4b25 100644 --- a/idea/testData/refactoring/extractFunction/controlFlow/outputValues/tooManyOutputValuesAsList.kt.after +++ b/idea/testData/refactoring/extractFunction/controlFlow/outputValues/tooManyOutputValuesAsList.kt.after @@ -1,5 +1,5 @@ // WITH_RUNTIME -// OPTIONS: true, true, false, false, false +// OPTIONS: true, true, false, false, false, false // PARAM_TYPES: kotlin.Int // PARAM_TYPES: kotlin.Int // PARAM_TYPES: kotlin.Int diff --git a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/deeplyLocalFun.kt b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/deeplyLocalFun.kt index 250b4915c2e..0977b8f9e7f 100644 --- a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/deeplyLocalFun.kt +++ b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/deeplyLocalFun.kt @@ -1,4 +1,4 @@ -// OPTIONS: true, false, false, false, true +// OPTIONS: true, false, false, false, true, false // PARAM_DESCRIPTOR: local final fun baz(m: kotlin.Int): Int defined in foo.bar // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_TYPES: (kotlin.Int) -> Int diff --git a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/deeplyLocalFun.kt.after b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/deeplyLocalFun.kt.after index 8a1028fb3ed..f8f9bcb2cd3 100644 --- a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/deeplyLocalFun.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/deeplyLocalFun.kt.after @@ -1,4 +1,4 @@ -// OPTIONS: true, false, false, false, true +// OPTIONS: true, false, false, false, true, false // PARAM_DESCRIPTOR: local final fun baz(m: kotlin.Int): Int defined in foo.bar // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_TYPES: (kotlin.Int) -> Int diff --git a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFun.kt b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFun.kt index 14402a11fe3..d97aaef704f 100644 --- a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFun.kt +++ b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFun.kt @@ -1,4 +1,4 @@ -// OPTIONS: true, false, false, false, true +// OPTIONS: true, false, false, false, true, false // PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int diff --git a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFun.kt.after b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFun.kt.after index e047db07fd5..d0a6c962962 100644 --- a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFun.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFun.kt.after @@ -1,4 +1,4 @@ -// OPTIONS: true, false, false, false, true +// OPTIONS: true, false, false, false, true, false // PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int diff --git a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunChainedCalls.kt b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunChainedCalls.kt index 7a38bf52e81..9d33959ff15 100644 --- a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunChainedCalls.kt +++ b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunChainedCalls.kt @@ -1,4 +1,4 @@ -// OPTIONS: true, false, false, false, true +// OPTIONS: true, false, false, false, true, false // PARAM_DESCRIPTOR: local final fun kotlin.Int.bar1(m: kotlin.Int): Int defined in foo // PARAM_DESCRIPTOR: local final fun kotlin.Int.bar2(m: kotlin.Int): Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo diff --git a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunChainedCalls.kt.after b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunChainedCalls.kt.after index bde4d07e4dd..6921b3a6f7e 100644 --- a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunChainedCalls.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunChainedCalls.kt.after @@ -1,4 +1,4 @@ -// OPTIONS: true, false, false, false, true +// OPTIONS: true, false, false, false, true, false // PARAM_DESCRIPTOR: local final fun kotlin.Int.bar1(m: kotlin.Int): Int defined in foo // PARAM_DESCRIPTOR: local final fun kotlin.Int.bar2(m: kotlin.Int): Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo diff --git a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunInfixCall.kt b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunInfixCall.kt index 6bd3a175cf6..0a09f632da2 100644 --- a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunInfixCall.kt +++ b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunInfixCall.kt @@ -1,4 +1,4 @@ -// OPTIONS: true, false, false, false, true +// OPTIONS: true, false, false, false, true, false // PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int diff --git a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunInfixCall.kt.after b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunInfixCall.kt.after index e751064215d..61d6d8990ca 100644 --- a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunInfixCall.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localExtensionFunInfixCall.kt.after @@ -1,4 +1,4 @@ -// OPTIONS: true, false, false, false, true +// OPTIONS: true, false, false, false, true, false // PARAM_DESCRIPTOR: local final fun kotlin.Int.bar(m: kotlin.Int): Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int diff --git a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localFun.kt b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localFun.kt index e3995dfa9dc..6a56af9e1fe 100644 --- a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localFun.kt +++ b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localFun.kt @@ -1,4 +1,4 @@ -// OPTIONS: true, false, false, false, true +// OPTIONS: true, false, false, false, true, false // PARAM_DESCRIPTOR: local final fun bar(m: kotlin.Int): Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_TYPES: (kotlin.Int) -> Int diff --git a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localFun.kt.after b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localFun.kt.after index e579ab5c006..006f00bb726 100644 --- a/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localFun.kt.after +++ b/idea/testData/refactoring/extractFunction/parameters/capturedFunctions/localFun.kt.after @@ -1,4 +1,4 @@ -// OPTIONS: true, false, false, false, true +// OPTIONS: true, false, false, false, true, false // PARAM_DESCRIPTOR: local final fun bar(m: kotlin.Int): Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_TYPES: (kotlin.Int) -> Int