More clear code

This commit is contained in:
Valentin Kipyatkov
2016-08-10 17:45:29 +03:00
parent 1fece52170
commit c753e332ed
@@ -85,8 +85,10 @@ object FindTransformationMatcher : TransformationMatcher {
// we do not try to convert anything if the initializer is not compile-time constant because of possible side-effects // we do not try to convert anything if the initializer is not compile-time constant because of possible side-effects
if (!initialization.initializer.isConstant()) return null if (!initialization.initializer.isConstant()) return null
val generator = buildFindOperationGenerator(state.outerLoop, right, initialization.initializer, state.inputVariable, val generator = buildFindOperationGenerator(state.outerLoop, state.inputVariable, state.indexVariable, filterTransformation,
state.indexVariable, filterTransformation, findFirst) valueIfFound = right,
valueIfNotFound = initialization.initializer,
findFirst = findFirst)
?: return null ?: return null
val transformation = FindAndAssignTransformation(state.outerLoop, generator, initialization) val transformation = FindAndAssignTransformation(state.outerLoop, generator, initialization)
@@ -101,8 +103,11 @@ object FindTransformationMatcher : TransformationMatcher {
val returnValueInLoop = returnInLoop.returnedExpression ?: return null val returnValueInLoop = returnInLoop.returnedExpression ?: return null
val returnValueAfterLoop = returnAfterLoop.returnedExpression ?: return null val returnValueAfterLoop = returnAfterLoop.returnedExpression ?: return null
val generator = buildFindOperationGenerator(state.outerLoop, returnValueInLoop, returnValueAfterLoop, val generator = buildFindOperationGenerator(state.outerLoop, state.inputVariable, state.indexVariable,
state.inputVariable, state.indexVariable, filterTransformation, findFirst = true) filterTransformation,
valueIfFound = returnValueInLoop,
valueIfNotFound = returnValueAfterLoop,
findFirst = true)
?: return null ?: return null
val transformation = FindAndReturnTransformation(state.outerLoop, generator, returnAfterLoop) val transformation = FindAndReturnTransformation(state.outerLoop, generator, returnAfterLoop)
@@ -212,11 +217,11 @@ object FindTransformationMatcher : TransformationMatcher {
private fun buildFindOperationGenerator( private fun buildFindOperationGenerator(
loop: KtForExpression, loop: KtForExpression,
valueIfFound: KtExpression,
valueIfNotFound: KtExpression,
inputVariable: KtCallableDeclaration, inputVariable: KtCallableDeclaration,
indexVariable: KtCallableDeclaration?, indexVariable: KtCallableDeclaration?,
filterTransformation: FilterTransformation?, filterTransformation: FilterTransformation?,
valueIfFound: KtExpression,
valueIfNotFound: KtExpression,
findFirst: Boolean findFirst: Boolean
): FindOperationGenerator? { ): FindOperationGenerator? {
assert(valueIfFound.isPhysical) assert(valueIfFound.isPhysical)