[PL] ABI compatibility tests for reworked partial linkage
This commit is contained in:
committed by
Space Team
parent
2a4d880037
commit
4f1155b06f
@@ -1,5 +1,7 @@
|
||||
public val publicToInternalTopLevelProperty1 = "publicToInternalTopLevelProperty1.v1"
|
||||
public val publicToInternalTopLevelProperty2 get() = "publicToInternalTopLevelProperty2.v1"
|
||||
public val publicToInternalPATopLevelProperty1 = "publicToInternalPATopLevelProperty1.v1"
|
||||
public val publicToInternalPATopLevelProperty2 get() = "publicToInternalPATopLevelProperty2.v1"
|
||||
public val publicToPrivateTopLevelProperty1 = "publicToPrivateTopLevelProperty1.v1"
|
||||
public val publicToPrivateTopLevelProperty2 get() = "publicToPrivateTopLevelProperty2.v1"
|
||||
|
||||
@@ -8,6 +10,8 @@ open class Container {
|
||||
public val publicToProtectedProperty2 get() = "Container.publicToProtectedProperty2.v1"
|
||||
public val publicToInternalProperty1 = "Container.publicToInternalProperty1.v1"
|
||||
public val publicToInternalProperty2 get() = "Container.publicToInternalProperty2.v1"
|
||||
public val publicToInternalPAProperty1 = "Container.publicToInternalPAProperty1.v1"
|
||||
public val publicToInternalPAProperty2 get() = "Container.publicToInternalPAProperty2.v1"
|
||||
public val publicToPrivateProperty1 = "Container.publicToPrivateProperty1.v1"
|
||||
public val publicToPrivateProperty2 get() = "Container.publicToPrivateProperty2.v1"
|
||||
|
||||
@@ -15,6 +19,8 @@ open class Container {
|
||||
protected val protectedToPublicProperty2 get() = "Container.protectedToPublicProperty2.v1"
|
||||
protected val protectedToInternalProperty1 = "Container.protectedToInternalProperty1.v1"
|
||||
protected val protectedToInternalProperty2 get() = "Container.protectedToInternalProperty2.v1"
|
||||
protected val protectedToInternalPAProperty1 = "Container.protectedToInternalPAProperty1.v1"
|
||||
protected val protectedToInternalPAProperty2 get() = "Container.protectedToInternalPAProperty2.v1"
|
||||
protected val protectedToPrivateProperty1 = "Container.protectedToPrivateProperty1.v1"
|
||||
protected val protectedToPrivateProperty2 get() = "Container.protectedToPrivateProperty2.v1"
|
||||
|
||||
@@ -26,6 +32,10 @@ open class Container {
|
||||
public open val publicToInternalOverriddenProperty2 get() = "Container.publicToInternalOverriddenProperty2.v1"
|
||||
public open val publicToInternalOverriddenProperty3 = "Container.publicToInternalOverriddenProperty3.v1"
|
||||
public open val publicToInternalOverriddenProperty4 get() = "Container.publicToInternalOverriddenProperty4.v1"
|
||||
public open val publicToInternalPAOverriddenProperty1 = "Container.publicToInternalPAOverriddenProperty1.v1"
|
||||
public open val publicToInternalPAOverriddenProperty2 get() = "Container.publicToInternalPAOverriddenProperty2.v1"
|
||||
public open val publicToInternalPAOverriddenProperty3 = "Container.publicToInternalPAOverriddenProperty3.v1"
|
||||
public open val publicToInternalPAOverriddenProperty4 get() = "Container.publicToInternalPAOverriddenProperty4.v1"
|
||||
public open val publicToPrivateOverriddenProperty1 = "Container.publicToPrivateOverriddenProperty1.v1"
|
||||
public open val publicToPrivateOverriddenProperty2 get() = "Container.publicToPrivateOverriddenProperty2.v1"
|
||||
public open val publicToPrivateOverriddenProperty3 = "Container.publicToPrivateOverriddenProperty3.v1"
|
||||
@@ -39,6 +49,10 @@ open class Container {
|
||||
protected open val protectedToInternalOverriddenProperty2 get() = "Container.protectedToInternalOverriddenProperty2.v1"
|
||||
protected open val protectedToInternalOverriddenProperty3 = "Container.protectedToInternalOverriddenProperty3.v1"
|
||||
protected open val protectedToInternalOverriddenProperty4 get() = "Container.protectedToInternalOverriddenProperty4.v1"
|
||||
protected open val protectedToInternalPAOverriddenProperty1 = "Container.protectedToInternalPAOverriddenProperty1.v1"
|
||||
protected open val protectedToInternalPAOverriddenProperty2 get() = "Container.protectedToInternalPAOverriddenProperty2.v1"
|
||||
protected open val protectedToInternalPAOverriddenProperty3 = "Container.protectedToInternalPAOverriddenProperty3.v1"
|
||||
protected open val protectedToInternalPAOverriddenProperty4 get() = "Container.protectedToInternalPAOverriddenProperty4.v1"
|
||||
protected open val protectedToPrivateOverriddenProperty1 = "Container.protectedToPrivateOverriddenProperty1.v1"
|
||||
protected open val protectedToPrivateOverriddenProperty2 get() = "Container.protectedToPrivateOverriddenProperty2.v1"
|
||||
protected open val protectedToPrivateOverriddenProperty3 = "Container.protectedToPrivateOverriddenProperty3.v1"
|
||||
@@ -68,6 +82,14 @@ open class Container {
|
||||
// internal open val newOpenInternalProperty2 get() = "Container.newOpenInternalProperty2.v1"
|
||||
// internal open val newOpenInternalProperty3 = "Container.newOpenInternalProperty3.v1"
|
||||
// internal open val newOpenInternalProperty4 get() = "Container.newOpenInternalProperty4.v1"
|
||||
// internal val newInternalPAProperty1 = "Container.newInternalPAProperty1.v1"
|
||||
// internal val newInternalPAProperty2 get() = "Container.newInternalPAProperty2.v1"
|
||||
// internal val newInternalPAProperty3 = "Container.newInternalPAProperty3.v1"
|
||||
// internal val newInternalPAProperty4 get() = "Container.newInternalPAProperty4.v1"
|
||||
// internal open val newOpenInternalPAProperty1 = "Container.newOpenInternalPAProperty1.v1"
|
||||
// internal open val newOpenInternalPAProperty2 get() = "Container.newOpenInternalPAProperty2.v1"
|
||||
// internal open val newOpenInternalPAProperty3 = "Container.newOpenInternalPAProperty3.v1"
|
||||
// internal open val newOpenInternalPAProperty4 get() = "Container.newOpenInternalPAProperty4.v1"
|
||||
// private val newPrivateProperty1 = "Container.newPrivateProperty1.v1"
|
||||
// private val newPrivateProperty2 get() = "Container.newPrivateProperty2.v1"
|
||||
// private val newPrivateProperty3 = "Container.newPrivateProperty3.v1"
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
internal val publicToInternalTopLevelProperty1 = "publicToInternalTopLevelProperty1.v2"
|
||||
internal val publicToInternalTopLevelProperty2 get() = "publicToInternalTopLevelProperty2.v2"
|
||||
@PublishedApi internal val publicToInternalPATopLevelProperty1 = "publicToInternalPATopLevelProperty1.v2"
|
||||
@PublishedApi internal val publicToInternalPATopLevelProperty2 get() = "publicToInternalPATopLevelProperty2.v2"
|
||||
private val publicToPrivateTopLevelProperty1 = "publicToPrivateTopLevelProperty1.v2"
|
||||
private val publicToPrivateTopLevelProperty2 get() = "publicToPrivateTopLevelProperty2.v2"
|
||||
|
||||
@@ -8,6 +10,8 @@ open class Container {
|
||||
protected val publicToProtectedProperty2 get() = "Container.publicToProtectedProperty2.v2"
|
||||
internal val publicToInternalProperty1 = "Container.publicToInternalProperty1.v2"
|
||||
internal val publicToInternalProperty2 get() = "Container.publicToInternalProperty2.v2"
|
||||
@PublishedApi internal val publicToInternalPAProperty1 = "Container.publicToInternalPAProperty1.v2"
|
||||
@PublishedApi internal val publicToInternalPAProperty2 get() = "Container.publicToInternalPAProperty2.v2"
|
||||
private val publicToPrivateProperty1 = "Container.publicToPrivateProperty1.v2"
|
||||
private val publicToPrivateProperty2 get() = "Container.publicToPrivateProperty2.v2"
|
||||
|
||||
@@ -15,6 +19,8 @@ open class Container {
|
||||
public val protectedToPublicProperty2 get() = "Container.protectedToPublicProperty2.v2"
|
||||
internal val protectedToInternalProperty1 = "Container.protectedToInternalProperty1.v2"
|
||||
internal val protectedToInternalProperty2 get() = "Container.protectedToInternalProperty2.v2"
|
||||
@PublishedApi internal val protectedToInternalPAProperty1 = "Container.protectedToInternalPAProperty1.v2"
|
||||
@PublishedApi internal val protectedToInternalPAProperty2 get() = "Container.protectedToInternalPAProperty2.v2"
|
||||
private val protectedToPrivateProperty1 = "Container.protectedToPrivateProperty1.v2"
|
||||
private val protectedToPrivateProperty2 get() = "Container.protectedToPrivateProperty2.v2"
|
||||
|
||||
@@ -26,6 +32,10 @@ open class Container {
|
||||
internal open val publicToInternalOverriddenProperty2 get() = "Container.publicToInternalOverriddenProperty2.v2"
|
||||
internal open val publicToInternalOverriddenProperty3 get() = "Container.publicToInternalOverriddenProperty3.v2"
|
||||
internal open val publicToInternalOverriddenProperty4 = "Container.publicToInternalOverriddenProperty4.v2"
|
||||
@PublishedApi internal open val publicToInternalPAOverriddenProperty1 = "Container.publicToInternalPAOverriddenProperty1.v2"
|
||||
@PublishedApi internal open val publicToInternalPAOverriddenProperty2 get() = "Container.publicToInternalPAOverriddenProperty2.v2"
|
||||
@PublishedApi internal open val publicToInternalPAOverriddenProperty3 = "Container.publicToInternalPAOverriddenProperty3.v2"
|
||||
@PublishedApi internal open val publicToInternalPAOverriddenProperty4 get() = "Container.publicToInternalPAOverriddenProperty4.v2"
|
||||
private /*open*/ val publicToPrivateOverriddenProperty1 = "Container.publicToPrivateOverriddenProperty1.v2"
|
||||
private /*open*/ val publicToPrivateOverriddenProperty2 get() = "Container.publicToPrivateOverriddenProperty2.v2"
|
||||
private /*open*/ val publicToPrivateOverriddenProperty3 get() = "Container.publicToPrivateOverriddenProperty3.v2"
|
||||
@@ -39,6 +49,10 @@ open class Container {
|
||||
internal open val protectedToInternalOverriddenProperty2 get() = "Container.protectedToInternalOverriddenProperty2.v2"
|
||||
internal open val protectedToInternalOverriddenProperty3 get() = "Container.protectedToInternalOverriddenProperty3.v2"
|
||||
internal open val protectedToInternalOverriddenProperty4 = "Container.protectedToInternalOverriddenProperty4.v2"
|
||||
@PublishedApi internal open val protectedToInternalPAOverriddenProperty1 = "Container.protectedToInternalPAOverriddenProperty1.v2"
|
||||
@PublishedApi internal open val protectedToInternalPAOverriddenProperty2 get() = "Container.protectedToInternalPAOverriddenProperty2.v2"
|
||||
@PublishedApi internal open val protectedToInternalPAOverriddenProperty3 = "Container.protectedToInternalPAOverriddenProperty3.v2"
|
||||
@PublishedApi internal open val protectedToInternalPAOverriddenProperty4 get() = "Container.protectedToInternalPAOverriddenProperty4.v2"
|
||||
private /*open*/ val protectedToPrivateOverriddenProperty1 = "Container.protectedToPrivateOverriddenProperty1.v2"
|
||||
private /*open*/ val protectedToPrivateOverriddenProperty2 get() = "Container.protectedToPrivateOverriddenProperty2.v2"
|
||||
private /*open*/ val protectedToPrivateOverriddenProperty3 get() = "Container.protectedToPrivateOverriddenProperty3.v2"
|
||||
@@ -68,6 +82,14 @@ open class Container {
|
||||
internal open val newOpenInternalProperty2 get() = "Container.newOpenInternalProperty2.v2"
|
||||
internal open val newOpenInternalProperty3 = "Container.newOpenInternalProperty3.v2"
|
||||
internal open val newOpenInternalProperty4 get() = "Container.newOpenInternalProperty4.v2"
|
||||
@PublishedApi internal val newInternalPAProperty1 = "Container.newInternalPAProperty1.v2"
|
||||
@PublishedApi internal val newInternalPAProperty2 get() = "Container.newInternalPAProperty2.v2"
|
||||
@PublishedApi internal val newInternalPAProperty3 = "Container.newInternalPAProperty3.v2"
|
||||
@PublishedApi internal val newInternalPAProperty4 get() = "Container.newInternalPAProperty4.v2"
|
||||
@PublishedApi internal open val newOpenInternalPAProperty1 = "Container.newOpenInternalPAProperty1.v2"
|
||||
@PublishedApi internal open val newOpenInternalPAProperty2 get() = "Container.newOpenInternalPAProperty2.v2"
|
||||
@PublishedApi internal open val newOpenInternalPAProperty3 = "Container.newOpenInternalPAProperty3.v2"
|
||||
@PublishedApi internal open val newOpenInternalPAProperty4 get() = "Container.newOpenInternalPAProperty4.v2"
|
||||
private val newPrivateProperty1 = "Container.newPrivateProperty1.v2"
|
||||
private val newPrivateProperty2 get() = "Container.newPrivateProperty2.v2"
|
||||
private val newPrivateProperty3 = "Container.newPrivateProperty3.v2"
|
||||
|
||||
@@ -4,6 +4,8 @@ class ContainerImpl : Container() {
|
||||
fun publicToProtectedProperty2Access() = publicToProtectedProperty2
|
||||
fun publicToInternalProperty1Access() = publicToInternalProperty1
|
||||
fun publicToInternalProperty2Access() = publicToInternalProperty2
|
||||
fun publicToInternalPAProperty1Access() = publicToInternalPAProperty1
|
||||
fun publicToInternalPAProperty2Access() = publicToInternalPAProperty2
|
||||
fun publicToPrivateProperty1Access() = publicToPrivateProperty1
|
||||
fun publicToPrivateProperty2Access() = publicToPrivateProperty2
|
||||
|
||||
@@ -12,6 +14,8 @@ class ContainerImpl : Container() {
|
||||
fun protectedToPublicProperty2Access() = protectedToPublicProperty2
|
||||
fun protectedToInternalProperty1Access() = protectedToInternalProperty1
|
||||
fun protectedToInternalProperty2Access() = protectedToInternalProperty2
|
||||
fun protectedToInternalPAProperty1Access() = protectedToInternalPAProperty1
|
||||
fun protectedToInternalPAProperty2Access() = protectedToInternalPAProperty2
|
||||
fun protectedToPrivateProperty1Access() = protectedToPrivateProperty1
|
||||
fun protectedToPrivateProperty2Access() = protectedToPrivateProperty2
|
||||
|
||||
@@ -24,6 +28,10 @@ class ContainerImpl : Container() {
|
||||
override val publicToInternalOverriddenProperty2 get() = "ContainerImpl.publicToInternalOverriddenProperty2"
|
||||
override val publicToInternalOverriddenProperty3 get() = "ContainerImpl.publicToInternalOverriddenProperty3"
|
||||
override val publicToInternalOverriddenProperty4 = "ContainerImpl.publicToInternalOverriddenProperty4"
|
||||
override val publicToInternalPAOverriddenProperty1 = "ContainerImpl.publicToInternalPAOverriddenProperty1"
|
||||
override val publicToInternalPAOverriddenProperty2 get() = "ContainerImpl.publicToInternalPAOverriddenProperty2"
|
||||
override val publicToInternalPAOverriddenProperty3 get() = "ContainerImpl.publicToInternalPAOverriddenProperty3"
|
||||
override val publicToInternalPAOverriddenProperty4 = "ContainerImpl.publicToInternalPAOverriddenProperty4"
|
||||
override val publicToPrivateOverriddenProperty1 = "ContainerImpl.publicToPrivateOverriddenProperty1"
|
||||
override val publicToPrivateOverriddenProperty2 get() = "ContainerImpl.publicToPrivateOverriddenProperty2"
|
||||
override val publicToPrivateOverriddenProperty3 get() = "ContainerImpl.publicToPrivateOverriddenProperty3"
|
||||
@@ -37,6 +45,10 @@ class ContainerImpl : Container() {
|
||||
override val protectedToInternalOverriddenProperty2 get() = "ContainerImpl.protectedToInternalOverriddenProperty2"
|
||||
override val protectedToInternalOverriddenProperty3 get() = "ContainerImpl.protectedToInternalOverriddenProperty3"
|
||||
override val protectedToInternalOverriddenProperty4 = "ContainerImpl.protectedToInternalOverriddenProperty4"
|
||||
override val protectedToInternalPAOverriddenProperty1 = "ContainerImpl.protectedToInternalPAOverriddenProperty1"
|
||||
override val protectedToInternalPAOverriddenProperty2 get() = "ContainerImpl.protectedToInternalPAOverriddenProperty2"
|
||||
override val protectedToInternalPAOverriddenProperty3 get() = "ContainerImpl.protectedToInternalPAOverriddenProperty3"
|
||||
override val protectedToInternalPAOverriddenProperty4 = "ContainerImpl.protectedToInternalPAOverriddenProperty4"
|
||||
override val protectedToPrivateOverriddenProperty1 = "ContainerImpl.protectedToPrivateOverriddenProperty1"
|
||||
override val protectedToPrivateOverriddenProperty2 get() = "ContainerImpl.protectedToPrivateOverriddenProperty2"
|
||||
override val protectedToPrivateOverriddenProperty3 get() = "ContainerImpl.protectedToPrivateOverriddenProperty3"
|
||||
@@ -51,6 +63,10 @@ class ContainerImpl : Container() {
|
||||
fun protectedToInternalOverriddenProperty2Access() = protectedToInternalOverriddenProperty2
|
||||
fun protectedToInternalOverriddenProperty3Access() = protectedToInternalOverriddenProperty3
|
||||
fun protectedToInternalOverriddenProperty4Access() = protectedToInternalOverriddenProperty4
|
||||
fun protectedToInternalPAOverriddenProperty1Access() = protectedToInternalPAOverriddenProperty1
|
||||
fun protectedToInternalPAOverriddenProperty2Access() = protectedToInternalPAOverriddenProperty2
|
||||
fun protectedToInternalPAOverriddenProperty3Access() = protectedToInternalPAOverriddenProperty3
|
||||
fun protectedToInternalPAOverriddenProperty4Access() = protectedToInternalPAOverriddenProperty4
|
||||
fun protectedToPrivateOverriddenProperty1Access() = protectedToPrivateOverriddenProperty1
|
||||
fun protectedToPrivateOverriddenProperty2Access() = protectedToPrivateOverriddenProperty2
|
||||
fun protectedToPrivateOverriddenProperty3Access() = protectedToPrivateOverriddenProperty3
|
||||
@@ -81,6 +97,14 @@ class ContainerImpl : Container() {
|
||||
internal open val newOpenInternalProperty2 get() = "ContainerImpl.newOpenInternalProperty2"
|
||||
internal open val newOpenInternalProperty3 get() = "ContainerImpl.newOpenInternalProperty3"
|
||||
internal open val newOpenInternalProperty4 = "ContainerImpl.newOpenInternalProperty4"
|
||||
internal val newInternalPAProperty1 = "ContainerImpl.newInternalPAProperty1"
|
||||
internal val newInternalPAProperty2 get() = "ContainerImpl.newInternalPAProperty2"
|
||||
internal val newInternalPAProperty3 get() = "ContainerImpl.newInternalPAProperty3"
|
||||
internal val newInternalPAProperty4 = "ContainerImpl.newInternalPAProperty4"
|
||||
internal open val newOpenInternalPAProperty1 = "ContainerImpl.newOpenInternalPAProperty1"
|
||||
internal open val newOpenInternalPAProperty2 get() = "ContainerImpl.newOpenInternalPAProperty2"
|
||||
internal open val newOpenInternalPAProperty3 get() = "ContainerImpl.newOpenInternalPAProperty3"
|
||||
internal open val newOpenInternalPAProperty4 = "ContainerImpl.newOpenInternalPAProperty4"
|
||||
private val newPrivateProperty1 = "ContainerImpl.newPrivateProperty1"
|
||||
private val newPrivateProperty2 get() = "ContainerImpl.newPrivateProperty2"
|
||||
private val newPrivateProperty3 get() = "ContainerImpl.newPrivateProperty3"
|
||||
@@ -104,6 +128,14 @@ class ContainerImpl : Container() {
|
||||
fun newOpenInternalProperty2Access() = newOpenInternalProperty2
|
||||
fun newOpenInternalProperty3Access() = newOpenInternalProperty3
|
||||
fun newOpenInternalProperty4Access() = newOpenInternalProperty4
|
||||
fun newInternalPAProperty1Access() = newInternalPAProperty1
|
||||
fun newInternalPAProperty2Access() = newInternalPAProperty2
|
||||
fun newInternalPAProperty3Access() = newInternalPAProperty3
|
||||
fun newInternalPAProperty4Access() = newInternalPAProperty4
|
||||
fun newOpenInternalPAProperty1Access() = newOpenInternalPAProperty1
|
||||
fun newOpenInternalPAProperty2Access() = newOpenInternalPAProperty2
|
||||
fun newOpenInternalPAProperty3Access() = newOpenInternalPAProperty3
|
||||
fun newOpenInternalPAProperty4Access() = newOpenInternalPAProperty4
|
||||
fun newPrivateProperty1Access() = newPrivateProperty1
|
||||
fun newPrivateProperty2Access() = newPrivateProperty2
|
||||
fun newPrivateProperty3Access() = newPrivateProperty3
|
||||
|
||||
+127
-76
@@ -1,82 +1,133 @@
|
||||
import abitestutils.abiTest
|
||||
import abitestutils.TestBuilder
|
||||
import abitestutils.TestMode.NATIVE_CACHE_STATIC_EVERYWHERE
|
||||
|
||||
fun box() = abiTest {
|
||||
val c = Container()
|
||||
val ci = ContainerImpl()
|
||||
expectSuccess("publicToInternalTopLevelProperty1.v2") { publicToInternalTopLevelProperty1 }
|
||||
expectSuccess("publicToInternalTopLevelProperty2.v2") { publicToInternalTopLevelProperty2 }
|
||||
expectFailure(prefixed("property accessor publicToPrivateTopLevelProperty1.<get-publicToPrivateTopLevelProperty1> can not be called")) { publicToPrivateTopLevelProperty1 }
|
||||
expectFailure(prefixed("property accessor publicToPrivateTopLevelProperty2.<get-publicToPrivateTopLevelProperty2> can not be called")) { publicToPrivateTopLevelProperty2 }
|
||||
expectSuccess("Container.publicToProtectedProperty1.v2") { c.publicToProtectedProperty1 }
|
||||
expectSuccess("Container.publicToProtectedProperty1.v2") { ci.publicToProtectedProperty1 }
|
||||
expectSuccess("Container.publicToProtectedProperty2.v2") { c.publicToProtectedProperty2 }
|
||||
expectSuccess("Container.publicToProtectedProperty2.v2") { ci.publicToProtectedProperty2 }
|
||||
expectFailure(prefixed("property accessor publicToInternalProperty1.<get-publicToInternalProperty1> can not be called")) { c.publicToInternalProperty1 }
|
||||
expectFailure(prefixed("property accessor publicToInternalProperty1.<get-publicToInternalProperty1> can not be called")) { ci.publicToInternalProperty1 }
|
||||
expectFailure(prefixed("property accessor publicToInternalProperty2.<get-publicToInternalProperty2> can not be called")) { c.publicToInternalProperty2 }
|
||||
expectFailure(prefixed("property accessor publicToInternalProperty2.<get-publicToInternalProperty2> can not be called")) { ci.publicToInternalProperty2 }
|
||||
expectFailure(prefixed("property accessor publicToPrivateProperty1.<get-publicToPrivateProperty1> can not be called")) { c.publicToPrivateProperty1 }
|
||||
expectFailure(prefixed("property accessor publicToPrivateProperty1.<get-publicToPrivateProperty1> can not be called")) { ci.publicToPrivateProperty1 }
|
||||
expectFailure(prefixed("property accessor publicToPrivateProperty2.<get-publicToPrivateProperty2> can not be called")) { c.publicToPrivateProperty2 }
|
||||
expectFailure(prefixed("property accessor publicToPrivateProperty2.<get-publicToPrivateProperty2> can not be called")) { ci.publicToPrivateProperty2 }
|
||||
expectSuccess("Container.publicToProtectedProperty1.v2") { ci.publicToProtectedProperty1Access() }
|
||||
expectSuccess("Container.publicToProtectedProperty2.v2") { ci.publicToProtectedProperty2Access() }
|
||||
expectFailure(prefixed("property accessor publicToInternalProperty1.<get-publicToInternalProperty1> can not be called")) { ci.publicToInternalProperty1Access() }
|
||||
expectFailure(prefixed("property accessor publicToInternalProperty2.<get-publicToInternalProperty2> can not be called")) { ci.publicToInternalProperty2Access() }
|
||||
expectFailure(prefixed("property accessor publicToPrivateProperty1.<get-publicToPrivateProperty1> can not be called")) { ci.publicToPrivateProperty1Access() }
|
||||
expectFailure(prefixed("property accessor publicToPrivateProperty2.<get-publicToPrivateProperty2> can not be called")) { ci.publicToPrivateProperty2Access() }
|
||||
expectSuccess("Container.protectedToPublicProperty1.v2") { ci.protectedToPublicProperty1Access() }
|
||||
expectSuccess("Container.protectedToPublicProperty2.v2") { ci.protectedToPublicProperty2Access() }
|
||||
expectFailure(prefixed("property accessor protectedToInternalProperty1.<get-protectedToInternalProperty1> can not be called")) { ci.protectedToInternalProperty1Access() }
|
||||
expectFailure(prefixed("property accessor protectedToInternalProperty2.<get-protectedToInternalProperty2> can not be called")) { ci.protectedToInternalProperty2Access() }
|
||||
expectFailure(prefixed("property accessor protectedToPrivateProperty1.<get-protectedToPrivateProperty1> can not be called")) { ci.protectedToPrivateProperty1Access() }
|
||||
expectFailure(prefixed("property accessor protectedToPrivateProperty2.<get-protectedToPrivateProperty2> can not be called")) { ci.protectedToPrivateProperty2Access() }
|
||||
expectSuccess("ContainerImpl.publicToProtectedOverriddenProperty1") { ci.publicToProtectedOverriddenProperty1 }
|
||||
expectSuccess("ContainerImpl.publicToProtectedOverriddenProperty2") { ci.publicToProtectedOverriddenProperty2 }
|
||||
expectSuccess("ContainerImpl.publicToProtectedOverriddenProperty3") { ci.publicToProtectedOverriddenProperty3 }
|
||||
expectSuccess("ContainerImpl.publicToProtectedOverriddenProperty4") { ci.publicToProtectedOverriddenProperty4 }
|
||||
expectSuccess("ContainerImpl.publicToInternalOverriddenProperty1") { ci.publicToInternalOverriddenProperty1 }
|
||||
expectSuccess("ContainerImpl.publicToInternalOverriddenProperty2") { ci.publicToInternalOverriddenProperty2 }
|
||||
expectSuccess("ContainerImpl.publicToInternalOverriddenProperty3") { ci.publicToInternalOverriddenProperty3 }
|
||||
expectSuccess("ContainerImpl.publicToInternalOverriddenProperty4") { ci.publicToInternalOverriddenProperty4 }
|
||||
expectSuccess("ContainerImpl.publicToPrivateOverriddenProperty1") { ci.publicToPrivateOverriddenProperty1 }
|
||||
expectSuccess("ContainerImpl.publicToPrivateOverriddenProperty2") { ci.publicToPrivateOverriddenProperty2 }
|
||||
expectSuccess("ContainerImpl.publicToPrivateOverriddenProperty3") { ci.publicToPrivateOverriddenProperty3 }
|
||||
expectSuccess("ContainerImpl.publicToPrivateOverriddenProperty4") { ci.publicToPrivateOverriddenProperty4 }
|
||||
expectSuccess("ContainerImpl.protectedToPublicOverriddenProperty1") { ci.protectedToPublicOverriddenProperty1Access() }
|
||||
expectSuccess("ContainerImpl.protectedToPublicOverriddenProperty2") { ci.protectedToPublicOverriddenProperty2Access() }
|
||||
expectSuccess("ContainerImpl.protectedToPublicOverriddenProperty3") { ci.protectedToPublicOverriddenProperty3Access() }
|
||||
expectSuccess("ContainerImpl.protectedToPublicOverriddenProperty4") { ci.protectedToPublicOverriddenProperty4Access() }
|
||||
expectSuccess("ContainerImpl.protectedToInternalOverriddenProperty1") { ci.protectedToInternalOverriddenProperty1Access() }
|
||||
expectSuccess("ContainerImpl.protectedToInternalOverriddenProperty2") { ci.protectedToInternalOverriddenProperty2Access() }
|
||||
expectSuccess("ContainerImpl.protectedToInternalOverriddenProperty3") { ci.protectedToInternalOverriddenProperty3Access() }
|
||||
expectSuccess("ContainerImpl.protectedToInternalOverriddenProperty4") { ci.protectedToInternalOverriddenProperty4Access() }
|
||||
expectSuccess("ContainerImpl.protectedToPrivateOverriddenProperty1") { ci.protectedToPrivateOverriddenProperty1Access() }
|
||||
expectSuccess("ContainerImpl.protectedToPrivateOverriddenProperty2") { ci.protectedToPrivateOverriddenProperty2Access() }
|
||||
expectSuccess("ContainerImpl.protectedToPrivateOverriddenProperty3") { ci.protectedToPrivateOverriddenProperty3Access() }
|
||||
expectSuccess("ContainerImpl.protectedToPrivateOverriddenProperty4") { ci.protectedToPrivateOverriddenProperty4Access() }
|
||||
expectSuccess("ContainerImpl.newPublicProperty1") { ci.newPublicProperty1 }
|
||||
expectSuccess("ContainerImpl.newPublicProperty2") { ci.newPublicProperty2 }
|
||||
expectSuccess("ContainerImpl.newPublicProperty3") { ci.newPublicProperty3 }
|
||||
expectSuccess("ContainerImpl.newPublicProperty4") { ci.newPublicProperty4 }
|
||||
expectSuccess("ContainerImpl.newProtectedProperty1") { ci.newProtectedProperty1Access() }
|
||||
expectSuccess("ContainerImpl.newProtectedProperty2") { ci.newProtectedProperty2Access() }
|
||||
expectSuccess("ContainerImpl.newProtectedProperty3") { ci.newProtectedProperty3Access() }
|
||||
expectSuccess("ContainerImpl.newProtectedProperty4") { ci.newProtectedProperty4Access() }
|
||||
expectSuccess("ContainerImpl.newOpenProtectedProperty1") { ci.newOpenProtectedProperty1Access() }
|
||||
expectSuccess("ContainerImpl.newOpenProtectedProperty2") { ci.newOpenProtectedProperty2Access() }
|
||||
expectSuccess("ContainerImpl.newOpenProtectedProperty3") { ci.newOpenProtectedProperty3Access() }
|
||||
expectSuccess("ContainerImpl.newOpenProtectedProperty4") { ci.newOpenProtectedProperty4Access() }
|
||||
expectSuccess("ContainerImpl.newInternalProperty1") { ci.newInternalProperty1Access() }
|
||||
expectSuccess("ContainerImpl.newInternalProperty2") { ci.newInternalProperty2Access() }
|
||||
expectSuccess("ContainerImpl.newInternalProperty3") { ci.newInternalProperty3Access() }
|
||||
expectSuccess("ContainerImpl.newInternalProperty4") { ci.newInternalProperty4Access() }
|
||||
expectSuccess("ContainerImpl.newOpenInternalProperty1") { ci.newOpenInternalProperty1Access() }
|
||||
expectSuccess("ContainerImpl.newOpenInternalProperty2") { ci.newOpenInternalProperty2Access() }
|
||||
expectSuccess("ContainerImpl.newOpenInternalProperty3") { ci.newOpenInternalProperty3Access() }
|
||||
expectSuccess("ContainerImpl.newOpenInternalProperty4") { ci.newOpenInternalProperty4Access() }
|
||||
expectSuccess("ContainerImpl.newPrivateProperty1") { ci.newPrivateProperty1Access() }
|
||||
expectSuccess("ContainerImpl.newPrivateProperty2") { ci.newPrivateProperty2Access() }
|
||||
expectSuccess("ContainerImpl.newPrivateProperty3") { ci.newPrivateProperty3Access() }
|
||||
expectSuccess("ContainerImpl.newPrivateProperty4") { ci.newPrivateProperty4Access() }
|
||||
|
||||
success("publicToInternalTopLevelProperty1.v2") { publicToInternalTopLevelProperty1 } // Signature remains the same.
|
||||
success("publicToInternalTopLevelProperty2.v2") { publicToInternalTopLevelProperty2 } // Signature remains the same.
|
||||
success("publicToInternalPATopLevelProperty1.v2") { publicToInternalPATopLevelProperty1 } // Signature remains the same.
|
||||
success("publicToInternalPATopLevelProperty2.v2") { publicToInternalPATopLevelProperty2 } // Signature remains the same.
|
||||
unlinkedSymbol("/publicToPrivateTopLevelProperty1.<get-publicToPrivateTopLevelProperty1>") { publicToPrivateTopLevelProperty1 } // Signature changed.
|
||||
unlinkedSymbol("/publicToPrivateTopLevelProperty2.<get-publicToPrivateTopLevelProperty2>") { publicToPrivateTopLevelProperty2 } // Signature changed.
|
||||
|
||||
success("Container.publicToProtectedProperty1.v2") { c.publicToProtectedProperty1 } // Signature remains the same.
|
||||
success("Container.publicToProtectedProperty1.v2") { ci.publicToProtectedProperty1 } // Signature remains the same.
|
||||
success("Container.publicToProtectedProperty2.v2") { c.publicToProtectedProperty2 } // Signature remains the same.
|
||||
success("Container.publicToProtectedProperty2.v2") { ci.publicToProtectedProperty2 } // Signature remains the same.
|
||||
// TODO: KT-54469, Container.publicToInternalProperty1 should fail because it is accessed from another module.
|
||||
success("Container.publicToInternalProperty1.v2") { c.publicToInternalProperty1 } // Signature remains the same.
|
||||
unlinkedSymbol("/ContainerImpl.publicToInternalProperty1.<get-publicToInternalProperty1>") { ci.publicToInternalProperty1 } // FOs are not generated for internal members from other module.
|
||||
// TODO: KT-54469, Container.publicToInternalProperty2 should fail because it is accessed from another module.
|
||||
success("Container.publicToInternalProperty2.v2") { c.publicToInternalProperty2 } // Signature remains the same.
|
||||
unlinkedSymbol("/ContainerImpl.publicToInternalProperty2.<get-publicToInternalProperty2>") { ci.publicToInternalProperty2 } // FOs are not generated for internal members from other module.
|
||||
// TODO: KT-54469, Container.publicToInternalPAProperty1 should fail because it is accessed from another module.
|
||||
success("Container.publicToInternalPAProperty1.v2") { c.publicToInternalPAProperty1 } // Signature remains the same.
|
||||
unlinkedSymbol("/ContainerImpl.publicToInternalPAProperty1.<get-publicToInternalPAProperty1>") { ci.publicToInternalPAProperty1 } // FOs are not generated for internal members from other module.
|
||||
// TODO: KT-54469, Container.publicToInternalPAProperty2 should fail because it is accessed from another module.
|
||||
success("Container.publicToInternalPAProperty2.v2") { c.publicToInternalPAProperty2 } // Signature remains the same.
|
||||
unlinkedSymbol("/ContainerImpl.publicToInternalPAProperty2.<get-publicToInternalPAProperty2>") { ci.publicToInternalPAProperty2 } // FOs are not generated for internal members from other module.
|
||||
inaccessible("publicToPrivateProperty1.<get-publicToPrivateProperty1>") { c.publicToPrivateProperty1 } // Inaccessible from other module though signature remains the same.
|
||||
unlinkedSymbol("/ContainerImpl.publicToPrivateProperty1.<get-publicToPrivateProperty1>") { ci.publicToPrivateProperty1 } // FOs are not generated for private members.
|
||||
inaccessible("publicToPrivateProperty2.<get-publicToPrivateProperty2>") { c.publicToPrivateProperty2 } // Inaccessible from other module though signature remains the same.
|
||||
unlinkedSymbol("/ContainerImpl.publicToPrivateProperty2.<get-publicToPrivateProperty2>") { ci.publicToPrivateProperty2 } // FOs are not generated for private members.
|
||||
|
||||
success("Container.publicToProtectedProperty1.v2") { ci.publicToProtectedProperty1Access() } // Signature remains the same.
|
||||
success("Container.publicToProtectedProperty2.v2") { ci.publicToProtectedProperty2Access() } // Signature remains the same.
|
||||
unlinkedSymbol("/ContainerImpl.publicToInternalProperty1.<get-publicToInternalProperty1>") { ci.publicToInternalProperty1Access() } // FOs are not generated for internal members from other module.
|
||||
unlinkedSymbol("/ContainerImpl.publicToInternalProperty2.<get-publicToInternalProperty2>") { ci.publicToInternalProperty2Access() } // FOs are not generated for internal members from other module.
|
||||
unlinkedSymbol("/ContainerImpl.publicToInternalPAProperty1.<get-publicToInternalPAProperty1>") { ci.publicToInternalPAProperty1Access() } // FOs are not generated for internal members from other module.
|
||||
unlinkedSymbol("/ContainerImpl.publicToInternalPAProperty2.<get-publicToInternalPAProperty2>") { ci.publicToInternalPAProperty2Access() } // FOs are not generated for internal members from other module.
|
||||
unlinkedSymbol("/ContainerImpl.publicToPrivateProperty1.<get-publicToPrivateProperty1>") { ci.publicToPrivateProperty1Access() } // FOs are not generated for private members.
|
||||
unlinkedSymbol("/ContainerImpl.publicToPrivateProperty2.<get-publicToPrivateProperty2>") { ci.publicToPrivateProperty2Access() } // FOs are not generated for private members.
|
||||
success("Container.protectedToPublicProperty1.v2") { ci.protectedToPublicProperty1Access() } // Signature remains the same.
|
||||
success("Container.protectedToPublicProperty2.v2") { ci.protectedToPublicProperty2Access() } // Signature remains the same.
|
||||
unlinkedSymbol("/ContainerImpl.protectedToInternalProperty1.<get-protectedToInternalProperty1>") { ci.protectedToInternalProperty1Access() } // FOs are not generated for internal members from other module.
|
||||
unlinkedSymbol("/ContainerImpl.protectedToInternalProperty2.<get-protectedToInternalProperty2>") { ci.protectedToInternalProperty2Access() } // FOs are not generated for internal members from other module.
|
||||
unlinkedSymbol("/ContainerImpl.protectedToInternalPAProperty1.<get-protectedToInternalPAProperty1>") { ci.protectedToInternalPAProperty1Access() } // FOs are not generated for internal members from other module.
|
||||
unlinkedSymbol("/ContainerImpl.protectedToInternalPAProperty2.<get-protectedToInternalPAProperty2>") { ci.protectedToInternalPAProperty2Access() } // FOs are not generated for internal members from other module.
|
||||
unlinkedSymbol("/ContainerImpl.protectedToPrivateProperty1.<get-protectedToPrivateProperty1>") { ci.protectedToPrivateProperty1Access() } // FOs are not generated for private members.
|
||||
unlinkedSymbol("/ContainerImpl.protectedToPrivateProperty2.<get-protectedToPrivateProperty2>") { ci.protectedToPrivateProperty2Access() } // FOs are not generated for private members.
|
||||
|
||||
success("ContainerImpl.publicToProtectedOverriddenProperty1") { ci.publicToProtectedOverriddenProperty1 }
|
||||
success("ContainerImpl.publicToProtectedOverriddenProperty2") { ci.publicToProtectedOverriddenProperty2 }
|
||||
success("ContainerImpl.publicToProtectedOverriddenProperty3") { ci.publicToProtectedOverriddenProperty3 }
|
||||
success("ContainerImpl.publicToProtectedOverriddenProperty4") { ci.publicToProtectedOverriddenProperty4 }
|
||||
success("ContainerImpl.publicToInternalOverriddenProperty1") { ci.publicToInternalOverriddenProperty1 }
|
||||
success("ContainerImpl.publicToInternalOverriddenProperty2") { ci.publicToInternalOverriddenProperty2 }
|
||||
success("ContainerImpl.publicToInternalOverriddenProperty3") { ci.publicToInternalOverriddenProperty3 }
|
||||
success("ContainerImpl.publicToInternalOverriddenProperty4") { ci.publicToInternalOverriddenProperty4 }
|
||||
success("ContainerImpl.publicToInternalPAOverriddenProperty1") { ci.publicToInternalPAOverriddenProperty1 }
|
||||
success("ContainerImpl.publicToInternalPAOverriddenProperty2") { ci.publicToInternalPAOverriddenProperty2 }
|
||||
success("ContainerImpl.publicToInternalPAOverriddenProperty3") { ci.publicToInternalPAOverriddenProperty3 }
|
||||
success("ContainerImpl.publicToInternalPAOverriddenProperty4") { ci.publicToInternalPAOverriddenProperty4 }
|
||||
success("ContainerImpl.publicToPrivateOverriddenProperty1") { ci.publicToPrivateOverriddenProperty1 }
|
||||
success("ContainerImpl.publicToPrivateOverriddenProperty2") { ci.publicToPrivateOverriddenProperty2 }
|
||||
success("ContainerImpl.publicToPrivateOverriddenProperty3") { ci.publicToPrivateOverriddenProperty3 }
|
||||
success("ContainerImpl.publicToPrivateOverriddenProperty4") { ci.publicToPrivateOverriddenProperty4 }
|
||||
success("ContainerImpl.protectedToPublicOverriddenProperty1") { ci.protectedToPublicOverriddenProperty1Access() }
|
||||
success("ContainerImpl.protectedToPublicOverriddenProperty2") { ci.protectedToPublicOverriddenProperty2Access() }
|
||||
success("ContainerImpl.protectedToPublicOverriddenProperty3") { ci.protectedToPublicOverriddenProperty3Access() }
|
||||
success("ContainerImpl.protectedToPublicOverriddenProperty4") { ci.protectedToPublicOverriddenProperty4Access() }
|
||||
success("ContainerImpl.protectedToInternalOverriddenProperty1") { ci.protectedToInternalOverriddenProperty1Access() }
|
||||
success("ContainerImpl.protectedToInternalOverriddenProperty2") { ci.protectedToInternalOverriddenProperty2Access() }
|
||||
success("ContainerImpl.protectedToInternalOverriddenProperty3") { ci.protectedToInternalOverriddenProperty3Access() }
|
||||
success("ContainerImpl.protectedToInternalOverriddenProperty4") { ci.protectedToInternalOverriddenProperty4Access() }
|
||||
success("ContainerImpl.protectedToInternalPAOverriddenProperty1") { ci.protectedToInternalPAOverriddenProperty1Access() }
|
||||
success("ContainerImpl.protectedToInternalPAOverriddenProperty2") { ci.protectedToInternalPAOverriddenProperty2Access() }
|
||||
success("ContainerImpl.protectedToInternalPAOverriddenProperty3") { ci.protectedToInternalPAOverriddenProperty3Access() }
|
||||
success("ContainerImpl.protectedToInternalPAOverriddenProperty4") { ci.protectedToInternalPAOverriddenProperty4Access() }
|
||||
success("ContainerImpl.protectedToPrivateOverriddenProperty1") { ci.protectedToPrivateOverriddenProperty1Access() }
|
||||
success("ContainerImpl.protectedToPrivateOverriddenProperty2") { ci.protectedToPrivateOverriddenProperty2Access() }
|
||||
success("ContainerImpl.protectedToPrivateOverriddenProperty3") { ci.protectedToPrivateOverriddenProperty3Access() }
|
||||
success("ContainerImpl.protectedToPrivateOverriddenProperty4") { ci.protectedToPrivateOverriddenProperty4Access() }
|
||||
|
||||
success("ContainerImpl.newPublicProperty1") { ci.newPublicProperty1 }
|
||||
success("ContainerImpl.newPublicProperty2") { ci.newPublicProperty2 }
|
||||
success("ContainerImpl.newPublicProperty3") { ci.newPublicProperty3 }
|
||||
success("ContainerImpl.newPublicProperty4") { ci.newPublicProperty4 }
|
||||
success("ContainerImpl.newProtectedProperty1") { ci.newProtectedProperty1Access() }
|
||||
success("ContainerImpl.newProtectedProperty2") { ci.newProtectedProperty2Access() }
|
||||
success("ContainerImpl.newProtectedProperty3") { ci.newProtectedProperty3Access() }
|
||||
success("ContainerImpl.newProtectedProperty4") { ci.newProtectedProperty4Access() }
|
||||
success("ContainerImpl.newOpenProtectedProperty1") { ci.newOpenProtectedProperty1Access() }
|
||||
success("ContainerImpl.newOpenProtectedProperty2") { ci.newOpenProtectedProperty2Access() }
|
||||
success("ContainerImpl.newOpenProtectedProperty3") { ci.newOpenProtectedProperty3Access() }
|
||||
success("ContainerImpl.newOpenProtectedProperty4") { ci.newOpenProtectedProperty4Access() }
|
||||
success("ContainerImpl.newInternalProperty1") { ci.newInternalProperty1Access() }
|
||||
success("ContainerImpl.newInternalProperty2") { ci.newInternalProperty2Access() }
|
||||
success("ContainerImpl.newInternalProperty3") { ci.newInternalProperty3Access() }
|
||||
success("ContainerImpl.newInternalProperty4") { ci.newInternalProperty4Access() }
|
||||
success("ContainerImpl.newOpenInternalProperty1") { ci.newOpenInternalProperty1Access() }
|
||||
success("ContainerImpl.newOpenInternalProperty2") { ci.newOpenInternalProperty2Access() }
|
||||
success("ContainerImpl.newOpenInternalProperty3") { ci.newOpenInternalProperty3Access() }
|
||||
success("ContainerImpl.newOpenInternalProperty4") { ci.newOpenInternalProperty4Access() }
|
||||
success("ContainerImpl.newInternalPAProperty1") { ci.newInternalPAProperty1Access() }
|
||||
success("ContainerImpl.newInternalPAProperty2") { ci.newInternalPAProperty2Access() }
|
||||
success("ContainerImpl.newInternalPAProperty3") { ci.newInternalPAProperty3Access() }
|
||||
success("ContainerImpl.newInternalPAProperty4") { ci.newInternalPAProperty4Access() }
|
||||
success("ContainerImpl.newOpenInternalPAProperty1") { ci.newOpenInternalPAProperty1Access() }
|
||||
success("ContainerImpl.newOpenInternalPAProperty2") { ci.newOpenInternalPAProperty2Access() }
|
||||
success("ContainerImpl.newOpenInternalPAProperty3") { ci.newOpenInternalPAProperty3Access() }
|
||||
success("ContainerImpl.newOpenInternalPAProperty4") { ci.newOpenInternalPAProperty4Access() }
|
||||
success("ContainerImpl.newPrivateProperty1") { ci.newPrivateProperty1Access() }
|
||||
success("ContainerImpl.newPrivateProperty2") { ci.newPrivateProperty2Access() }
|
||||
success("ContainerImpl.newPrivateProperty3") { ci.newPrivateProperty3Access() }
|
||||
success("ContainerImpl.newPrivateProperty4") { ci.newPrivateProperty4Access() }
|
||||
}
|
||||
|
||||
// Shortcuts:
|
||||
private inline fun TestBuilder.success(expectedOutcome: String, noinline block: () -> String) =
|
||||
expectSuccess(expectedOutcome, block)
|
||||
|
||||
private inline fun TestBuilder.unlinkedSymbol(signature: String, noinline block: () -> Unit) {
|
||||
val accessorName = signature.removePrefix("/").split('.').takeLast(2).joinToString(".")
|
||||
expectFailure(linkage("Property accessor '$accessorName' can not be called: No property accessor found for symbol '$signature'"), block)
|
||||
}
|
||||
|
||||
private inline fun TestBuilder.inaccessible(accessorName: String, noinline block: () -> Unit) = expectFailure(
|
||||
linkage("Property accessor '$accessorName' can not be called: Private property accessor declared in module <lib1> can not be accessed in module <main>"),
|
||||
block
|
||||
)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
MUTED
|
||||
MODULES: lib1, lib2, main
|
||||
|
||||
STEP 0:
|
||||
|
||||
Reference in New Issue
Block a user