O'Reilly logo
  • MICHAEL MASLENKO thinks this is interesting:

The compiler will generate the backing field for the property if you either reference it explicitly or use the default accessor implementation. If you provide custom accessor implementations that don’t use field (for the getter if the property is a val and for both accessors if it’s a mutable property), the backing field won’t be present

From

Cover of Kotlin in Action

Note

compile subtlety