Регистр внутри совпадения генерирует новый символ x
для получения сопоставленного значения. Это связано с тем, что условно идентификаторы нижнего регистра должны ссылаться на значения, а идентификаторы верхнего регистра - на типы.
Таким образом, оператор case генерирует новый символ с тем же именем x
, что и ваше начальное значение, "затеняя" это исходное значение. «Затенение» IntelliJ означает, что он скрывает любые другие значения с тем же именем и, таким образом, делает их недоступными.
Это помечает это как подозрительное, потому что это затенение часто непреднамеренно, как, кажется, действительно имеет место в вашем примере.
Что касается обратных галочек, см., Например, здесь: Требуются пояснения по буквальным идентификаторам Scala (обратные метки)
Тем не менее, они не кажутся хорошим решением. Лучше выбрать другое имя.