Из раздела спецификации scala 6.26.1:
Значение отбрасывается. Если e
имеет некоторый тип значения и ожидаемый тип равен Unit
, e
преобразуется в ожидаемый тип, встраивая его в термин { e ; () }
.
Другими словами, ваш код эквивалентен
var unit: Unit = {null; ()}
unit: Unit = ()
null
не конвертируется - он просто игнорируется и заменяется ()
, предопределенным значением Unit
.