Minor: simplify code in RedundantGotoMethodTransformer

This commit is contained in:
Dmitry Petrov
2017-05-19 14:49:18 +03:00
parent e1b41eee15
commit 89bfa64e90
@@ -34,18 +34,14 @@ class RedundantGotoMethodTransformer : MethodTransformer() {
val currentLabels = hashSetOf<LabelNode>()
for (insn in insns) {
if (insn.isMeaningful) {
if (insn.opcode == Opcodes.GOTO && (insn as JumpInsnNode).label in currentLabels) {
when {
insn is LabelNode ->
currentLabels.add(insn)
insn.opcode == Opcodes.GOTO &&
(insn as JumpInsnNode).label in currentLabels ->
insnsToRemove.add(insn)
}
else {
insn.isMeaningful ->
currentLabels.clear()
}
continue
}
if (insn is LabelNode) {
currentLabels.add(insn)
}
}