Por que o parâmetro Integer do método Java é mapeado para Int e não para o tipo de plataforma?

Inspirado poroutra pergunta.

Nofastutil biblioteca háIntArrayList classe que possui um método com a seguinte assinatura Java:

public void push(Integer o)

De Kotlin é visto como

push(o: Int)

Existe uma razão específica para que sejaInt e não o tipo de plataformaInt!?

Eu esperava que fossepush(o: Int!) pelo menos porque um método com a mesma assinatura definida na fonte Java no projeto com fontes Kotlin temInt! como tipo de parâmetro visto no Kotlin (mesmo definido em um módulo diferente e até importado do jar desse módulo!).

Além disso, o comportamento descrito causapush(Integer o) entrar em conflito compush(int o) (na mesma classe) que possuiInt legalmente - ambos são vistos comopush(o: Int). Se houvesseInt! paraInteger, não haveria conflito (tentei também definir esse par de métodos no meu código - ainda funciona como eu esperava, háInt!)

A versão Kotlin é1.0.2.

Dependência Gradle parafastutil:

compile group: 'it.unimi.dsi', name: 'fastutil', version: '7.0.12'

questionAnswers(1)

yourAnswerToTheQuestion