Давайте расширим вашу декларацию, явно указав ее тип:
val whatIsThat: (Int) -> Int.Companion = { n: Int -> Int}
Полагаю, вы ожидали, что тип будет (Int) -> Int
, верно?Но используемый вами синтаксис не является объявлением типа, это фактическое лямбда-тело.Ваша лямбда принимает Int
и возвращает Int
синглтон, тип которого Int.Companion
.