| // Copyright (c) 2018, the R8 project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| package properties |
| |
| open class MutableProperty { |
| private var privateProp: String = "privateProp" |
| protected var protectedProp: String = "protectedProp" |
| internal var internalProp: String = "internalProp" |
| public var publicProp: String = "publicProp" |
| |
| public var primitiveProp: Int = Int.MAX_VALUE |
| |
| fun callSetterPrivateProp(v: String) { |
| privateProp = v |
| } |
| |
| fun callGetterPrivateProp(): String { |
| return privateProp |
| } |
| } |
| |
| class SubMutableProperty : MutableProperty() { |
| fun callSetterProtectedProp(v: String) { |
| protectedProp = v |
| } |
| |
| fun callGetterProtectedProp(): String { |
| return protectedProp |
| } |
| } |
| |
| fun mutableProperty_noUseOfProperties() { |
| MutableProperty() |
| println("DONE") |
| } |
| |
| fun mutableProperty_usePrivateProp() { |
| val obj = MutableProperty() |
| obj.callSetterPrivateProp("foo") |
| println(obj.callGetterPrivateProp()) |
| } |
| |
| fun mutableProperty_useProtectedProp() { |
| val obj = SubMutableProperty() |
| obj.callSetterProtectedProp("foo") |
| println(obj.callGetterProtectedProp()) |
| } |
| |
| fun mutableProperty_useInternalProp() { |
| val obj = MutableProperty() |
| obj.internalProp = "foo" |
| println(obj.internalProp) |
| } |
| |
| fun mutableProperty_usePublicProp() { |
| val obj = MutableProperty() |
| obj.publicProp = "foo" |
| println(obj.publicProp) |
| } |
| |
| fun mutableProperty_usePrimitiveProp() { |
| val obj = MutableProperty() |
| obj.primitiveProp = Int.MIN_VALUE |
| println(obj.primitiveProp) |
| } |