I also deduced that somehow the compiler infered that ArrayList() should be actually ArrayList<T>() that is ArrayList<Int> from generic, but I would appreciate to have a pointer to an actual documentation or explanation from the jetbrain team of that.