Вот более простой, изолированный, экземпляр того же эффекта.
Оба этих варианта компилируются с одним и тем же байтовым кодом.
В этом примере
a += 1;
IDE видит, что a
обновляется на 1, но не видит прямого использования a
.
В этом примере
a = a + 1;
IDE видит a
используется в выражении a + 1
, а затем снова присваивается a
, следовательно, с точки зрения IDE использовалось a
.
Простое присвоение значения переменной не является использованием.
Обратите внимание, что это поведение unused
также присутствует в Eclipse IDE
, но при желании его можно отключить.