| // 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 |
| |
| object ObjectProperties { |
| private var privateProp: String = "privateProp" |
| internal var internalProp: String = "internalProp" |
| public var publicProp: String = "publicProp" |
| |
| private lateinit var privateLateInitProp: String |
| internal lateinit var internalLateInitProp: String |
| public lateinit var publicLateInitProp: String |
| |
| public var primitiveProp: Int = Int.MAX_VALUE |
| |
| fun callSetterPrivateProp(v: String) { |
| privateProp = v |
| } |
| |
| fun callGetterPrivateProp(): String { |
| return privateProp |
| } |
| |
| fun callSetterLateInitPrivateProp(v: String) { |
| privateLateInitProp = v |
| } |
| |
| fun callGetterLateInitPrivateProp(): String { |
| return privateLateInitProp |
| } |
| |
| fun doNotUseProperties(): String { |
| return "doNotUseProperties" |
| } |
| } |
| |
| fun objectProperties_noUseOfProperties() { |
| println(ObjectProperties.doNotUseProperties()) |
| } |
| |
| fun objectProperties_usePrivateProp() { |
| ObjectProperties.callSetterPrivateProp("foo") |
| println(ObjectProperties.callGetterPrivateProp()) |
| } |
| |
| fun objectProperties_useInternalProp() { |
| ObjectProperties.internalProp = "foo" |
| println(ObjectProperties.internalProp) |
| } |
| |
| fun objectProperties_usePublicProp() { |
| ObjectProperties.publicProp = "foo" |
| println(ObjectProperties.publicProp) |
| } |
| |
| fun objectProperties_usePrimitiveProp() { |
| ObjectProperties.primitiveProp = Int.MIN_VALUE |
| println(ObjectProperties.primitiveProp) |
| } |
| |
| fun objectProperties_useLateInitPrivateProp() { |
| ObjectProperties.callSetterLateInitPrivateProp("foo") |
| println(ObjectProperties.callGetterLateInitPrivateProp()) |
| } |
| |
| fun objectProperties_useLateInitInternalProp() { |
| ObjectProperties.internalLateInitProp = "foo" |
| println(ObjectProperties.internalLateInitProp) |
| } |
| |
| fun objectProperties_useLateInitPublicProp() { |
| ObjectProperties.publicLateInitProp = "foo" |
| println(ObjectProperties.publicLateInitProp) |
| } |