var that: Int lateinit field: String get() = field.length set(value) { field = value.toString() } fun test() { that = 1 println(that) } // Not allowed for properties with // custom accessors & backing fields lateinit var number: Number field = 4 set(value) { field = 10 } val something: Number lateinit field = 4 lateinit var oneMore: Number lateinit field = 4 set(value) { field = 10 } var thingWithNullableField: Number lateinit field: String? get() = 20 set(value) { field = value.toString() }