Wrong tryCatch block sorting
TryCatchBlockSorter:
Comparator<TryCatchBlockNode> comp = new Comparator<TryCatchBlockNode>() {
public int compare(TryCatchBlockNode t1, TryCatchBlockNode t2) {
int len1 = blockLength(t1);
int len2 = blockLength(t2);
return len1 - len2;
}
private int blockLength(TryCatchBlockNode block) {
int startidx = instructions.indexOf(block.start);
int endidx = instructions.indexOf(block.end);
return endidx - startidx;
}
};
after node sorting node for default catch handler could occur before non
default one, same problem with hierarchy of exceptions more specified could
occur after general one in tryCatchBlock list.
Maybe best to compare hander indexies?