Improving JML's assignable clause analysis