Replace reversed() with apply { reverse() } or asReversed()

This commit is contained in:
Ilya Gorbunov
2015-11-14 05:32:27 +03:00
parent 32151c077e
commit 21e2e68ed4
6 changed files with 10 additions and 10 deletions
@@ -29,11 +29,11 @@ public class RedundantGotoMethodTransformer : MethodTransformer() {
* Removes redundant GOTO's, i.e. to subsequent labels * Removes redundant GOTO's, i.e. to subsequent labels
*/ */
override fun transform(internalClassName: String, methodNode: MethodNode) { override fun transform(internalClassName: String, methodNode: MethodNode) {
val insns = methodNode.instructions.toArray() val insns = methodNode.instructions.toArray().apply { reverse() }
val insnsToRemove = arrayListOf<AbstractInsnNode>() val insnsToRemove = arrayListOf<AbstractInsnNode>()
val currentLabels = hashSetOf<LabelNode>() val currentLabels = hashSetOf<LabelNode>()
for (insn in insns.reversed()) { for (insn in insns) {
if (insn.isMeaningful) { if (insn.isMeaningful) {
if (insn.getOpcode() == Opcodes.GOTO && (insn as JumpInsnNode).label in currentLabels) { if (insn.getOpcode() == Opcodes.GOTO && (insn as JumpInsnNode).label in currentLabels) {
insnsToRemove.add(insn) insnsToRemove.add(insn)
@@ -45,7 +45,7 @@ public fun topologicalSort<T>(items: Iterable<T>, dependencies: (T) -> Iterable<
for (item in items) for (item in items)
DfsVisit(item) DfsVisit(item)
return result.reversed() return result.apply { reverse() }
} }
public class CycleInTopoSortException : Exception() public class CycleInTopoSortException : Exception()
@@ -190,7 +190,7 @@ class CallableBuilder(val config: CallableBuilderConfiguration) {
newTypes.add(EqWrapper(currentFileModule.builtIns.anyType)) newTypes.add(EqWrapper(currentFileModule.builtIns.anyType))
} }
newTypes.map { TypeCandidate(it._type, scope) }.reversed() newTypes.map { TypeCandidate(it._type, scope) }.asReversed()
} }
} }
@@ -186,7 +186,7 @@ private fun ConstructedExpressionWrapper.processValueParameterUsages(
// process parameters in reverse order because default values can use previous parameters // process parameters in reverse order because default values can use previous parameters
val parameters = resolvedCall.resultingDescriptor.valueParameters val parameters = resolvedCall.resultingDescriptor.valueParameters
for (parameter in parameters.reversed()) { for (parameter in parameters.asReversed()) {
val argument = argumentForParameter(parameter, resolvedCall, bindingContext, project) ?: continue val argument = argumentForParameter(parameter, resolvedCall, bindingContext, project) ?: continue
argument.expression.put(PARAMETER_VALUE_KEY, parameter) argument.expression.put(PARAMETER_VALUE_KEY, parameter)
@@ -151,7 +151,7 @@ object ReplaceWithAnnotationAnalyzer {
} }
// add receivers in reverse order because arguments of a call were processed after the callee's name // add receivers in reverse order because arguments of a call were processed after the callee's name
for ((expr, receiverExpression) in receiversToAdd.reversed()) { for ((expr, receiverExpression) in receiversToAdd.asReversed()) {
val expressionToReplace = expr.parent as? KtCallExpression ?: expr val expressionToReplace = expr.parent as? KtCallExpression ?: expr
val newExpr = expressionToReplace.replaced(psiFactory.createExpressionByPattern("$0.$1", receiverExpression, expressionToReplace)) val newExpr = expressionToReplace.replaced(psiFactory.createExpressionByPattern("$0.$1", receiverExpression, expressionToReplace))
if (expressionToReplace == expression) { if (expressionToReplace == expression) {
@@ -211,10 +211,10 @@ class CodeBuilder(private val topElement: PsiElement?, private var docConverter:
} }
if (firstSpace != null) { if (firstSpace != null) {
before.remove(before.lastIndex) before.removeAt(before.lastIndex)
} }
val elements = before.reversed() + atStart val elements = before.asReversed() + atStart
commentsAndSpacesUsed.addAll(elements) commentsAndSpacesUsed.addAll(elements)
return Prefix(elements, lineBreaks) return Prefix(elements, lineBreaks)
} }
@@ -233,11 +233,11 @@ class CodeBuilder(private val topElement: PsiElement?, private var docConverter:
if (after.isNotEmpty()) { if (after.isNotEmpty()) {
val last = after.last() val last = after.last()
if (last is PsiWhiteSpace) { if (last is PsiWhiteSpace) {
after.remove(after.lastIndex) after.removeAt(after.lastIndex)
} }
} }
val result = atEnd.reversed() + after val result = atEnd.asReversed() + after
commentsAndSpacesUsed.addAll(result) commentsAndSpacesUsed.addAll(result)
return result return result
} }