public class A {
	public TypeBinding getOtherFieldBindings(BlockScope scope) {
		while (true) {
			if (isFieldUseDeprecated(fieldBinding, scope,
					(this.bits & IsStrictlyAssignedMASK) != 0
							&& indexOfFirstFieldBinding == length))
				;
		}
	}
}