From 512fb3f1910162b0b3206e5cc6e72fc82faa3ab8 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Mon, 22 Aug 2016 17:33:05 +0300 Subject: [PATCH] Renamed method --- .../result/AddToCollectionTransformation.kt | 10 +++++----- .../loopToCallChain/result/CountTransformation.kt | 2 +- .../result/FindTransformationMatcher.kt | 2 +- .../loopToCallChain/result/MaxOrMinTransformation.kt | 4 ++-- .../loopToCallChain/result/SumTransformation.kt | 2 +- .../loopToCallChain/sequence/IntroduceIndexMatcher.kt | 2 +- .../kotlin/idea/intentions/loopToCallChain/utils.kt | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/AddToCollectionTransformation.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/AddToCollectionTransformation.kt index f9b219e4992..cb3711df788 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/AddToCollectionTransformation.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/AddToCollectionTransformation.kt @@ -122,7 +122,7 @@ class AddToCollectionTransformation( targetCollection: KtExpression, addOperationArgument: KtExpression ): TransformationMatch.Result? { - val collectionInitialization = targetCollection.isVariableInitializedBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = true) ?: return null + val collectionInitialization = targetCollection.findVariableInitializationBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = true) ?: return null val collectionKind = collectionInitialization.initializer.isSimpleCollectionInstantiation() ?: return null val argumentIsInputVariable = addOperationArgument.isVariableReference(state.inputVariable) when (collectionKind) { @@ -230,7 +230,7 @@ class FilterToTransformation private constructor( condition: KtExpression, isInverse: Boolean ): ResultTransformation { - val initialization = targetCollection.isVariableInitializedBeforeLoop(loop, checkNoOtherUsagesInLoop = true) + val initialization = targetCollection.findVariableInitializationBeforeLoop(loop, checkNoOtherUsagesInLoop = true) if (initialization != null && initialization.initializer.hasNoSideEffect()) { val transformation = FilterToTransformation(loop, inputVariable, indexVariable, initialization.initializer, condition, isInverse) return AssignToVariableResultTransformation.createDelegated(transformation, initialization) @@ -259,7 +259,7 @@ class FilterNotNullToTransformation private constructor( loop: KtForExpression, targetCollection: KtExpression ): ResultTransformation { - val initialization = targetCollection.isVariableInitializedBeforeLoop(loop, checkNoOtherUsagesInLoop = true) + val initialization = targetCollection.findVariableInitializationBeforeLoop(loop, checkNoOtherUsagesInLoop = true) if (initialization != null && initialization.initializer.hasNoSideEffect()) { val transformation = FilterNotNullToTransformation(loop, initialization.initializer) return AssignToVariableResultTransformation.createDelegated(transformation, initialization) @@ -302,7 +302,7 @@ class MapToTransformation private constructor( mapping: KtExpression, mapNotNull: Boolean ): ResultTransformation { - val initialization = targetCollection.isVariableInitializedBeforeLoop(loop, checkNoOtherUsagesInLoop = true) + val initialization = targetCollection.findVariableInitializationBeforeLoop(loop, checkNoOtherUsagesInLoop = true) if (initialization != null && initialization.initializer.hasNoSideEffect()) { val transformation = MapToTransformation(loop, inputVariable, indexVariable, initialization.initializer, mapping, mapNotNull) return AssignToVariableResultTransformation.createDelegated(transformation, initialization) @@ -341,7 +341,7 @@ class FlatMapToTransformation private constructor( targetCollection: KtExpression, transform: KtExpression ): ResultTransformation { - val initialization = targetCollection.isVariableInitializedBeforeLoop(loop, checkNoOtherUsagesInLoop = true) + val initialization = targetCollection.findVariableInitializationBeforeLoop(loop, checkNoOtherUsagesInLoop = true) if (initialization != null && initialization.initializer.hasNoSideEffect()) { val transformation = FlatMapToTransformation(loop, inputVariable, initialization.initializer, transform) return AssignToVariableResultTransformation.createDelegated(transformation, initialization) diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/CountTransformation.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/CountTransformation.kt index 31621214ab5..c139a71d1ec 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/CountTransformation.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/CountTransformation.kt @@ -74,7 +74,7 @@ class CountTransformation( override fun match(state: MatchingState): TransformationMatch.Result? { val operand = state.statements.singleOrNull()?.isPlusPlusOf() ?: return null - val initialization = operand.isVariableInitializedBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = true) ?: return null + val initialization = operand.findVariableInitializationBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = true) ?: return null if (initialization.variable.countUsages(state.outerLoop) != 1) return null // this should be the only usage of this variable inside the loop diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/FindTransformationMatcher.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/FindTransformationMatcher.kt index 022fa854cfa..c13862a2432 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/FindTransformationMatcher.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/FindTransformationMatcher.kt @@ -81,7 +81,7 @@ object FindTransformationMatcher : TransformationMatcher { val left = binaryExpression.left ?: return null val right = binaryExpression.right ?: return null - val initialization = left.isVariableInitializedBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = true) ?: return null + val initialization = left.findVariableInitializationBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = true) ?: return null if (initialization.variable.countUsages(state.outerLoop) != 1) return null // this should be the only usage of this variable inside the loop diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/MaxOrMinTransformation.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/MaxOrMinTransformation.kt index 1130134ddf2..e59b58f0010 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/MaxOrMinTransformation.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/MaxOrMinTransformation.kt @@ -101,7 +101,7 @@ class MaxOrMinTransformation( val assignment = state.statements.singleOrNull() as? KtBinaryExpression ?: return null if (assignment.operationToken != KtTokens.EQ) return null - val variableInitialization = assignment.left.isVariableInitializedBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = false) + val variableInitialization = assignment.left.findVariableInitializationBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = false) ?: return null return matchMathMaxOrMin(variableInitialization, assignment, state, isMax = true) @@ -159,7 +159,7 @@ class MaxOrMinTransformation( return null } - val variableInitialization = otherHand.isVariableInitializedBeforeLoop(loop, checkNoOtherUsagesInLoop = false) + val variableInitialization = otherHand.findVariableInitializationBeforeLoop(loop, checkNoOtherUsagesInLoop = false) ?: return null if (!assignmentTarget.isVariableReference(variableInitialization.variable)) return null diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/SumTransformation.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/SumTransformation.kt index 35030555e16..d37d796733d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/SumTransformation.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/result/SumTransformation.kt @@ -61,7 +61,7 @@ abstract class SumTransformationBase( val statement = state.statements.singleOrNull() as? KtBinaryExpression ?: return null if (statement.operationToken != KtTokens.PLUSEQ) return null - val variableInitialization = statement.left.isVariableInitializedBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = true) + val variableInitialization = statement.left.findVariableInitializationBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = true) ?: return null val value = statement.right ?: return null diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/sequence/IntroduceIndexMatcher.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/sequence/IntroduceIndexMatcher.kt index dd46450bea7..04134728bbc 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/sequence/IntroduceIndexMatcher.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/sequence/IntroduceIndexMatcher.kt @@ -55,7 +55,7 @@ object IntroduceIndexMatcher : TransformationMatcher { private fun checkIndexCandidate(incrementExpression: KtUnaryExpression, state: MatchingState): TransformationMatch.Sequence? { val operand = incrementExpression.isPlusPlusOf() ?: return null - val variableInitialization = operand.isVariableInitializedBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = false) + val variableInitialization = operand.findVariableInitializationBeforeLoop(state.outerLoop, checkNoOtherUsagesInLoop = false) ?: return null if ((variableInitialization.initializer as? KtConstantExpression)?.text != "0") return null diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/utils.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/utils.kt index 9cd8439ccea..7e175cae495 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/utils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/loopToCallChain/utils.kt @@ -141,7 +141,7 @@ data class VariableInitialization( val initializer: KtExpression) //TODO: we need more correctness checks (if variable is non-local or is local but can be changed by some local functions) -fun KtExpression?.isVariableInitializedBeforeLoop( +fun KtExpression?.findVariableInitializationBeforeLoop( loop: KtForExpression, checkNoOtherUsagesInLoop: Boolean ): VariableInitialization? {