Kotlin enforces immutability by introducing val keyword as well as Kotlin collections, which are immutable by default.
How Kotlin became our primary language for Android
Dima Kovalenko
47416

Side note. val does not enforce immutability, but rather read-only. With val you can work with get() operator that might call some function and that might sometimes return different value. Point here is that unless you don’t have controll over source code you can’t be sure if val is immutable :)