Code simplification

This commit is contained in:
Valentin Kipyatkov
2016-04-22 22:34:50 +03:00
parent 87c9af532e
commit c080ecb0d1
@@ -124,7 +124,7 @@ object FindTransformationMatcher : TransformationMatcher {
get() = generator.chainCallCount get() = generator.chainCallCount
override val shouldUseInputVariable: Boolean override val shouldUseInputVariable: Boolean
get() = generator.shouldUseInputVariable get() = false
override fun generateCode(chainedCallGenerator: ChainedCallGenerator): KtExpression { override fun generateCode(chainedCallGenerator: ChainedCallGenerator): KtExpression {
return generator.generate(chainedCallGenerator) return generator.generate(chainedCallGenerator)
@@ -153,7 +153,7 @@ object FindTransformationMatcher : TransformationMatcher {
get() = generator.chainCallCount get() = generator.chainCallCount
override val shouldUseInputVariable: Boolean override val shouldUseInputVariable: Boolean
get() = generator.shouldUseInputVariable get() = false
override fun generateCode(chainedCallGenerator: ChainedCallGenerator): KtExpression { override fun generateCode(chainedCallGenerator: ChainedCallGenerator): KtExpression {
return generator.generate(chainedCallGenerator) return generator.generate(chainedCallGenerator)
@@ -168,8 +168,6 @@ object FindTransformationMatcher : TransformationMatcher {
val presentation: String val presentation: String
get() = functionName + (if (hasFilter) "{}" else "()") get() = functionName + (if (hasFilter) "{}" else "()")
val shouldUseInputVariable: Boolean
fun generate(chainedCallGenerator: ChainedCallGenerator): KtExpression fun generate(chainedCallGenerator: ChainedCallGenerator): KtExpression
val chainCallCount: Int val chainCallCount: Int
@@ -179,8 +177,7 @@ object FindTransformationMatcher : TransformationMatcher {
private class SimpleGenerator( private class SimpleGenerator(
override val functionName: String, override val functionName: String,
private val inputVariable: KtCallableDeclaration, private val inputVariable: KtCallableDeclaration,
private val filter: KtExpression?, private val filter: KtExpression?
override val shouldUseInputVariable: Boolean
) : FindOperationGenerator { ) : FindOperationGenerator {
override val hasFilter: Boolean override val hasFilter: Boolean
get() = filter != null get() = filter != null
@@ -226,7 +223,7 @@ object FindTransformationMatcher : TransformationMatcher {
//TODO: what if value when not found is not "-1"? //TODO: what if value when not found is not "-1"?
if (valueIfFound.isVariableReference(indexVariable) && valueIfNotFound.text == "-1") { if (valueIfFound.isVariableReference(indexVariable) && valueIfNotFound.text == "-1") {
val functionName = if (findFirst) "indexOfFirst" else "indexOfLast" val functionName = if (findFirst) "indexOfFirst" else "indexOfLast"
return SimpleGenerator(functionName, inputVariable, filter, shouldUseInputVariable = false) return SimpleGenerator(functionName, inputVariable, filter)
} }
return null return null
@@ -252,7 +249,7 @@ object FindTransformationMatcher : TransformationMatcher {
when { when {
valueIfFound.isVariableReference(inputVariable) -> { valueIfFound.isVariableReference(inputVariable) -> {
val functionName = if (findFirst) "firstOrNull" else "lastOrNull" val functionName = if (findFirst) "firstOrNull" else "lastOrNull"
val generator = SimpleGenerator(functionName, inputVariable, filter, shouldUseInputVariable = true) val generator = SimpleGenerator(functionName, inputVariable, filter)
return generator.useElvisOperatorIfNeeded() return generator.useElvisOperatorIfNeeded()
} }
@@ -280,9 +277,6 @@ object FindTransformationMatcher : TransformationMatcher {
override val hasFilter: Boolean override val hasFilter: Boolean
get() = filter != null get() = filter != null
override val shouldUseInputVariable: Boolean
get() = true
override val chainCallCount: Int override val chainCallCount: Int
get() = 2 get() = 2
@@ -304,9 +298,6 @@ object FindTransformationMatcher : TransformationMatcher {
override val hasFilter: Boolean override val hasFilter: Boolean
get() = filter != null get() = filter != null
override val shouldUseInputVariable: Boolean
get() = true
override val chainCallCount: Int override val chainCallCount: Int
get() = 2 // also includes "let" get() = 2 // also includes "let"
@@ -347,9 +338,6 @@ object FindTransformationMatcher : TransformationMatcher {
override val hasFilter: Boolean override val hasFilter: Boolean
get() = false get() = false
override val shouldUseInputVariable: Boolean
get() = false
override fun generate(chainedCallGenerator: ChainedCallGenerator): KtExpression { override fun generate(chainedCallGenerator: ChainedCallGenerator): KtExpression {
val expression = chainedCallGenerator.generate("contains($0)", containsArgument) val expression = chainedCallGenerator.generate("contains($0)", containsArgument)
return if (negated) expression.negate() else expression return if (negated) expression.negate() else expression
@@ -359,10 +347,10 @@ object FindTransformationMatcher : TransformationMatcher {
} }
if (negated) { if (negated) {
return SimpleGenerator("none", inputVariable, filter, shouldUseInputVariable = false) return SimpleGenerator("none", inputVariable, filter)
} }
else { else {
return SimpleGenerator("any", inputVariable, filter, shouldUseInputVariable = false) return SimpleGenerator("any", inputVariable, filter)
} }
} }