The article mentions that for optimizing out of bounds checks it uses constant lists or fixed length lists. Could it also optimize the check in a loop if it knows the loop ends at the end of the list? For example, in the article it mentions:
for (int i = 0; i < v.constraints.length; i++) {
...
c = t1[i];
...
}
Does it do that optimization because it knows v.constraints is fixed length or because it knows that i can never be bigger than v.constraints.length?