Add option to extract function for wrapping member extension function with with { }

This commit is contained in:
Natalia Ukhorskaya
2015-10-28 15:51:34 +03:00
parent 1e0b70247b
commit 5fcd5396b6
14 changed files with 16 additions and 14 deletions
@@ -84,7 +84,8 @@ fun getFunctionForExtractedFragment(
val options = ExtractionOptions(inferUnitTypeForUnusedValues = false, val options = ExtractionOptions(inferUnitTypeForUnusedValues = false,
enableListBoxing = true, enableListBoxing = true,
allowSpecialClassNames = true, allowSpecialClassNames = true,
captureLocalFunctions = true) captureLocalFunctions = true,
canWrapInWith = true)
val analysisResult = ExtractionData(tmpFile, newDebugExpressions.toRange(), targetSibling, null, options).performAnalysis() val analysisResult = ExtractionData(tmpFile, newDebugExpressions.toRange(), targetSibling, null, options).performAnalysis()
if (analysisResult.status != Status.SUCCESS) { if (analysisResult.status != Status.SUCCESS) {
throw EvaluateExceptionUtil.createEvaluateException(getErrorMessageForExtractFunctionResult(analysisResult, tmpFile)) throw EvaluateExceptionUtil.createEvaluateException(getErrorMessageForExtractFunctionResult(analysisResult, tmpFile))
@@ -54,7 +54,8 @@ data class ExtractionOptions(
val enableListBoxing: Boolean = false, val enableListBoxing: Boolean = false,
val extractAsProperty: Boolean = false, val extractAsProperty: Boolean = false,
val allowSpecialClassNames: Boolean = false, val allowSpecialClassNames: Boolean = false,
val captureLocalFunctions: Boolean = false val captureLocalFunctions: Boolean = false,
val canWrapInWith: Boolean = false
) { ) {
companion object { companion object {
val DEFAULT = ExtractionOptions() val DEFAULT = ExtractionOptions()
@@ -1,5 +1,5 @@
// WITH_RUNTIME // 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 // PARAM_TYPES: kotlin.Int
// PARAM_TYPES: kotlin.Int // PARAM_TYPES: kotlin.Int
@@ -1,5 +1,5 @@
// WITH_RUNTIME // 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 // PARAM_TYPES: kotlin.Int
// PARAM_TYPES: kotlin.Int // PARAM_TYPES: kotlin.Int
@@ -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: local final fun baz(m: kotlin.Int): Int defined in foo.bar
// PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo
// PARAM_TYPES: (kotlin.Int) -> Int // PARAM_TYPES: (kotlin.Int) -> Int
@@ -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: local final fun baz(m: kotlin.Int): Int defined in foo.bar
// PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo
// PARAM_TYPES: (kotlin.Int) -> Int // PARAM_TYPES: (kotlin.Int) -> Int
@@ -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: 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_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo
// PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int // PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int
@@ -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: 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_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo
// PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int // PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int
@@ -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.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: local final fun kotlin.Int.bar2(m: kotlin.Int): Int defined in foo
// PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo
@@ -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.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: local final fun kotlin.Int.bar2(m: kotlin.Int): Int defined in foo
// PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo
@@ -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: 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_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo
// PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int // PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int
@@ -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: 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_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo
// PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int // PARAM_TYPES: kotlin.Int.(kotlin.Int) -> Int
@@ -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: local final fun bar(m: kotlin.Int): Int defined in foo
// PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo
// PARAM_TYPES: (kotlin.Int) -> Int // PARAM_TYPES: (kotlin.Int) -> Int
@@ -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: local final fun bar(m: kotlin.Int): Int defined in foo
// PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo // PARAM_DESCRIPTOR: value-parameter val n: kotlin.Int defined in foo
// PARAM_TYPES: (kotlin.Int) -> Int // PARAM_TYPES: (kotlin.Int) -> Int