[PL][tests] Keep PL test data under "testData/klib/" dir
This commit is contained in:
committed by
Space Team
parent
9e3afe7a1f
commit
5c3e63e19a
@@ -0,0 +1,34 @@
|
||||
@file:Suppress("unused", "UNUSED_PARAMETER", "NOTHING_TO_INLINE")
|
||||
|
||||
open class OpenClass {
|
||||
@Suppress("MemberVisibilityCanBePrivate")
|
||||
var lastRecordedState: String = ""
|
||||
|
||||
open var openNonInlineToInlineProperty: String
|
||||
get() = "OpenClass.openNonInlineToInlineProperty"
|
||||
set(value) { lastRecordedState = "OpenClass.openNonInlineToInlineProperty=$value" }
|
||||
|
||||
open var openNonInlineToInlinePropertyWithDelegation: String
|
||||
get() = "OpenClass.openNonInlineToInlinePropertyWithDelegation"
|
||||
set(value) { lastRecordedState = "OpenClass.openNonInlineToInlinePropertyWithDelegation=$value" }
|
||||
|
||||
//inline var newInlineProperty1: String
|
||||
// get() = "OpenClass.newInlineProperty1"
|
||||
// set(value) { lastRecordedState = "OpenClass.newInlineProperty1=$value" }
|
||||
|
||||
//inline var newInlineProperty2: String
|
||||
// get() = "OpenClass.newInlineProperty2"
|
||||
// set(value) { lastRecordedState = "OpenClass.newInlineProperty2=$value" }
|
||||
|
||||
//var newNonInlineProperty: String
|
||||
// get() = "OpenClass.newNonInlineProperty"
|
||||
// set(value) { lastRecordedState = "OpenClass.newNonInlineProperty=$value" }
|
||||
|
||||
fun newInlineProperty1Reader(): String = TODO("Not implemented: OpenClass.newInlineProperty1Reader()")
|
||||
fun newInlineProperty2Reader(): String = TODO("Not implemented: OpenClass.newInlineProperty2Reader()")
|
||||
fun newNonInlinePropertyReader(): String = TODO("Not implemented: OpenClass.newNonInlinePropertyReader()")
|
||||
|
||||
fun newInlineProperty1Writer(value: String): Unit = TODO("Not implemented: OpenClass.newInlineProperty1Writer()")
|
||||
fun newInlineProperty2Writer(value: String): Unit = TODO("Not implemented: OpenClass.newInlineProperty2Writer()")
|
||||
fun newNonInlinePropertyWriter(value: String): Unit = TODO("Not implemented: OpenClass.newNonInlinePropertyWriter()")
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
@file:Suppress("unused", "UNUSED_PARAMETER", "NOTHING_TO_INLINE")
|
||||
|
||||
open class OpenClass {
|
||||
@Suppress("MemberVisibilityCanBePrivate")
|
||||
var lastRecordedState: String = ""
|
||||
|
||||
inline var openNonInlineToInlineProperty: String
|
||||
get() = "OpenClassV2.openNonInlineToInlineProperty"
|
||||
set(value) { lastRecordedState = "OpenClassV2.openNonInlineToInlineProperty=$value" }
|
||||
|
||||
inline var openNonInlineToInlinePropertyWithDelegation: String
|
||||
get() = "OpenClassV2.openNonInlineToInlinePropertyWithDelegation"
|
||||
set(value) { lastRecordedState = "OpenClassV2.openNonInlineToInlinePropertyWithDelegation=$value" }
|
||||
|
||||
inline var newInlineProperty1: String
|
||||
get() = "OpenClassV2.newInlineProperty1"
|
||||
set(value) { lastRecordedState = "OpenClassV2.newInlineProperty1=$value" }
|
||||
|
||||
inline var newInlineProperty2: String
|
||||
get() = "OpenClassV2.newInlineProperty2"
|
||||
set(value) { lastRecordedState = "OpenClassV2.newInlineProperty2=$value" }
|
||||
|
||||
var newNonInlineProperty: String
|
||||
get() = "OpenClassV2.newNonInlineProperty"
|
||||
set(value) { lastRecordedState = "OpenClassV2.newNonInlineProperty=$value" }
|
||||
|
||||
fun newInlineProperty1Reader(): String = newInlineProperty1
|
||||
fun newInlineProperty2Reader(): String = newInlineProperty2
|
||||
fun newNonInlinePropertyReader(): String = newNonInlineProperty
|
||||
|
||||
fun newInlineProperty1Writer(value: String) { newInlineProperty1 = value }
|
||||
fun newInlineProperty2Writer(value: String) { newInlineProperty2 = value }
|
||||
fun newNonInlinePropertyWriter(value: String) { newNonInlineProperty = value }
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
STEP 0:
|
||||
dependencies: stdlib
|
||||
STEP 1:
|
||||
dependencies: stdlib
|
||||
modifications:
|
||||
U : l1.kt.1 -> l1.kt
|
||||
@@ -0,0 +1,45 @@
|
||||
class OpenClassImpl : OpenClass() {
|
||||
override var openNonInlineToInlineProperty: String
|
||||
get() = "OpenClassImpl.openNonInlineToInlineProperty"
|
||||
set(value) { lastRecordedState = "OpenClassImpl.openNonInlineToInlineProperty=$value" }
|
||||
|
||||
override var openNonInlineToInlinePropertyWithDelegation: String
|
||||
get() = super.openNonInlineToInlinePropertyWithDelegation + " called from OpenClassImpl.openNonInlineToInlinePropertyWithDelegation"
|
||||
set(value) { super.openNonInlineToInlinePropertyWithDelegation = "$value called from OpenClassImpl.openNonInlineToInlinePropertyWithDelegation" }
|
||||
|
||||
var newInlineProperty1: String // overrides accidentally appeared inline property
|
||||
get() = "OpenClassImpl.newInlineProperty1"
|
||||
set(value) { lastRecordedState = "OpenClassImpl.newInlineProperty1=$value" }
|
||||
|
||||
inline var newInlineProperty2: String // overrides accidentally appeared inline property
|
||||
get() = "OpenClassImpl.newInlineProperty2"
|
||||
set(value) { lastRecordedState = "OpenClassImpl.newInlineProperty2=$value" }
|
||||
|
||||
inline var newNonInlineProperty: String // overrides accidentally appeared non-inline function
|
||||
get() = "OpenClassImpl.newNonInlineProperty"
|
||||
set(value) { lastRecordedState = "OpenClassImpl.newNonInlineProperty=$value" }
|
||||
}
|
||||
|
||||
fun openNonInlineToInlinePropertyInOpenClass(oc: OpenClass): String = oc.openNonInlineToInlineProperty
|
||||
fun openNonInlineToInlinePropertyWithDelegationInOpenClass(oc: OpenClass): String = oc.openNonInlineToInlinePropertyWithDelegation
|
||||
fun newInlineProperty1InOpenClass(oc: OpenClass): String = oc.newInlineProperty1Reader()
|
||||
fun newInlineProperty2InOpenClass(oc: OpenClass): String = oc.newInlineProperty2Reader()
|
||||
fun newNonInlinePropertyInOpenClass(oc: OpenClass): String = oc.newNonInlinePropertyReader()
|
||||
|
||||
fun openNonInlineToInlinePropertyInOpenClassImpl(oci: OpenClassImpl): String = oci.openNonInlineToInlineProperty
|
||||
fun openNonInlineToInlinePropertyWithDelegationInOpenClassImpl(oci: OpenClassImpl): String = oci.openNonInlineToInlinePropertyWithDelegation
|
||||
fun newInlineProperty1InOpenClassImpl(oci: OpenClassImpl): String = oci.newInlineProperty1
|
||||
fun newInlineProperty2InOpenClassImpl(oci: OpenClassImpl): String = oci.newInlineProperty2
|
||||
fun newNonInlinePropertyInOpenClassImpl(oci: OpenClassImpl): String = oci.newNonInlineProperty
|
||||
|
||||
fun openNonInlineToInlinePropertyInOpenClass(oc: OpenClass, value: String): String { oc.openNonInlineToInlineProperty = value; return oc.lastRecordedState }
|
||||
fun openNonInlineToInlinePropertyWithDelegationInOpenClass(oc: OpenClass, value: String): String { oc.openNonInlineToInlinePropertyWithDelegation = value; return oc.lastRecordedState }
|
||||
fun newInlineProperty1InOpenClass(oc: OpenClass, value: String): String { oc.newInlineProperty1Writer(value); return oc.lastRecordedState }
|
||||
fun newInlineProperty2InOpenClass(oc: OpenClass, value: String): String { oc.newInlineProperty2Writer(value); return oc.lastRecordedState }
|
||||
fun newNonInlinePropertyInOpenClass(oc: OpenClass, value: String): String { oc.newNonInlinePropertyWriter(value); return oc.lastRecordedState }
|
||||
|
||||
fun openNonInlineToInlinePropertyInOpenClassImpl(oci: OpenClassImpl, value: String): String { oci.openNonInlineToInlineProperty = value; return oci.lastRecordedState }
|
||||
fun openNonInlineToInlinePropertyWithDelegationInOpenClassImpl(oci: OpenClassImpl, value: String): String { oci.openNonInlineToInlinePropertyWithDelegation = value; return oci.lastRecordedState }
|
||||
fun newInlineProperty1InOpenClassImpl(oci: OpenClassImpl, value: String): String { oci.newInlineProperty1 = value; return oci.lastRecordedState }
|
||||
fun newInlineProperty2InOpenClassImpl(oci: OpenClassImpl, value: String): String { oci.newInlineProperty2 = value; return oci.lastRecordedState }
|
||||
fun newNonInlinePropertyInOpenClassImpl(oci: OpenClassImpl, value: String): String { oci.newNonInlineProperty = value; return oci.lastRecordedState }
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
STEP 0:
|
||||
dependencies: stdlib, lib1
|
||||
@@ -0,0 +1,34 @@
|
||||
import abitestutils.abiTest
|
||||
|
||||
fun box() = abiTest {
|
||||
val oci: OpenClassImpl = OpenClassImpl()
|
||||
val oc: OpenClass = oci
|
||||
|
||||
expectSuccess("OpenClassV2.openNonInlineToInlineProperty") { openNonInlineToInlinePropertyInOpenClass(oc) }
|
||||
expectSuccess("OpenClassV2.openNonInlineToInlinePropertyWithDelegation") { openNonInlineToInlinePropertyWithDelegationInOpenClass(oc) }
|
||||
expectSuccess("OpenClassV2.newInlineProperty1") { newInlineProperty1InOpenClass(oc) }
|
||||
expectSuccess("OpenClassV2.newInlineProperty2") { newInlineProperty2InOpenClass(oc) }
|
||||
expectSuccess( // TODO: this should be fixed in JS, KT-56762
|
||||
if (testMode.isJs) "OpenClassImpl.newNonInlineProperty" else "OpenClassV2.newNonInlineProperty"
|
||||
) { newNonInlinePropertyInOpenClass(oc) }
|
||||
|
||||
expectSuccess("OpenClassImpl.openNonInlineToInlineProperty") { openNonInlineToInlinePropertyInOpenClassImpl(oci) }
|
||||
expectSuccess("OpenClassV2.openNonInlineToInlinePropertyWithDelegation called from OpenClassImpl.openNonInlineToInlinePropertyWithDelegation") { openNonInlineToInlinePropertyWithDelegationInOpenClassImpl(oci) }
|
||||
expectSuccess("OpenClassImpl.newInlineProperty1") { newInlineProperty1InOpenClassImpl(oci) }
|
||||
expectSuccess("OpenClassImpl.newInlineProperty2") { newInlineProperty2InOpenClassImpl(oci) }
|
||||
expectSuccess("OpenClassImpl.newNonInlineProperty") { newNonInlinePropertyInOpenClassImpl(oci) }
|
||||
|
||||
expectSuccess("OpenClassV2.openNonInlineToInlineProperty=a") { openNonInlineToInlinePropertyInOpenClass(oc, "a") }
|
||||
expectSuccess("OpenClassV2.openNonInlineToInlinePropertyWithDelegation=b") { openNonInlineToInlinePropertyWithDelegationInOpenClass(oc, "b") }
|
||||
expectSuccess("OpenClassV2.newInlineProperty1=c") { newInlineProperty1InOpenClass(oc, "c") }
|
||||
expectSuccess("OpenClassV2.newInlineProperty2=d") { newInlineProperty2InOpenClass(oc, "d") }
|
||||
expectSuccess( // TODO: this should be fixed in JS, KT-56762
|
||||
if (testMode.isJs) "OpenClassImpl.newNonInlineProperty=e" else "OpenClassV2.newNonInlineProperty=e"
|
||||
) { newNonInlinePropertyInOpenClass(oc, "e") }
|
||||
|
||||
expectSuccess("OpenClassImpl.openNonInlineToInlineProperty=f") { openNonInlineToInlinePropertyInOpenClassImpl(oci, "f") }
|
||||
expectSuccess("OpenClassV2.openNonInlineToInlinePropertyWithDelegation=h called from OpenClassImpl.openNonInlineToInlinePropertyWithDelegation") { openNonInlineToInlinePropertyWithDelegationInOpenClassImpl(oci, "h") }
|
||||
expectSuccess("OpenClassImpl.newInlineProperty1=i") { newInlineProperty1InOpenClassImpl(oci, "i") }
|
||||
expectSuccess("OpenClassImpl.newInlineProperty2=j") { newInlineProperty2InOpenClassImpl(oci, "j") }
|
||||
expectSuccess("OpenClassImpl.newNonInlineProperty=k") { newNonInlinePropertyInOpenClassImpl(oci, "k") }
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
STEP 0:
|
||||
dependencies: stdlib, lib1, lib2
|
||||
@@ -0,0 +1,7 @@
|
||||
MODULES: lib1, lib2, main
|
||||
|
||||
STEP 0:
|
||||
libs: lib1, lib2, main
|
||||
|
||||
STEP 1:
|
||||
libs: lib1
|
||||
Reference in New Issue
Block a user