[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,26 @@
|
||||
public open class PublicTopLevelClass {
|
||||
public class PublicToInternalNestedClass
|
||||
public class PublicToProtectedNestedClass
|
||||
public class PublicToPrivateNestedClass
|
||||
public inner class PublicToInternalInnerClass
|
||||
public inner class PublicToProtectedInnerClass
|
||||
public inner class PublicToPrivateInnerClass
|
||||
}
|
||||
|
||||
public open class PublicToInternalTopLevelClass {
|
||||
public class PublicToInternalNestedClass
|
||||
public class PublicToProtectedNestedClass
|
||||
public class PublicToPrivateNestedClass
|
||||
public inner class PublicToInternalInnerClass
|
||||
public inner class PublicToProtectedInnerClass
|
||||
public inner class PublicToPrivateInnerClass
|
||||
}
|
||||
|
||||
public open class PublicToPrivateTopLevelClass {
|
||||
public class PublicToInternalNestedClass
|
||||
public class PublicToProtectedNestedClass
|
||||
public class PublicToPrivateNestedClass
|
||||
public inner class PublicToInternalInnerClass
|
||||
public inner class PublicToProtectedInnerClass
|
||||
public inner class PublicToPrivateInnerClass
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
public open class PublicTopLevelClass {
|
||||
override fun toString() = "PublicTopLevelClass"
|
||||
|
||||
internal class PublicToInternalNestedClass { override fun toString() = "PublicTopLevelClass.PublicToInternalNestedClass" }
|
||||
protected class PublicToProtectedNestedClass { override fun toString() = "PublicTopLevelClass.PublicToProtectedNestedClass" }
|
||||
private class PublicToPrivateNestedClass { override fun toString() = "PublicTopLevelClass.PublicToPrivateNestedClass" }
|
||||
internal inner class PublicToInternalInnerClass { override fun toString() = "PublicTopLevelClass.PublicToInternalInnerClass" }
|
||||
protected inner class PublicToProtectedInnerClass { override fun toString() = "PublicTopLevelClass.PublicToProtectedInnerClass" }
|
||||
private inner class PublicToPrivateInnerClass { override fun toString() = "PublicTopLevelClass.PublicToPrivateInnerClass" }
|
||||
}
|
||||
|
||||
internal open class PublicToInternalTopLevelClass {
|
||||
override fun toString() = "PublicToInternalTopLevelClass"
|
||||
|
||||
internal class PublicToInternalNestedClass { override fun toString() = "PublicToInternalTopLevelClass.PublicToInternalNestedClass" }
|
||||
protected class PublicToProtectedNestedClass { override fun toString() = "PublicToInternalTopLevelClass.PublicToProtectedNestedClass" }
|
||||
private class PublicToPrivateNestedClass { override fun toString() = "PublicToInternalTopLevelClass.PublicToPrivateNestedClass" }
|
||||
internal inner class PublicToInternalInnerClass { override fun toString() = "PublicToInternalTopLevelClass.PublicToInternalInnerClass" }
|
||||
protected inner class PublicToProtectedInnerClass { override fun toString() = "PublicToInternalTopLevelClass.PublicToProtectedInnerClass" }
|
||||
private inner class PublicToPrivateInnerClass { override fun toString() = "PublicToInternalTopLevelClass.PublicToPrivateInnerClass" }
|
||||
}
|
||||
|
||||
private open class PublicToPrivateTopLevelClass {
|
||||
override fun toString() = "PublicToPrivateTopLevelClass"
|
||||
|
||||
internal class PublicToInternalNestedClass { override fun toString() = "PublicToPrivateTopLevelClass.PublicToInternalNestedClass" }
|
||||
protected class PublicToProtectedNestedClass { override fun toString() = "PublicToPrivateTopLevelClass.PublicToProtectedNestedClass" }
|
||||
private class PublicToPrivateNestedClass { override fun toString() = "PublicToPrivateTopLevelClass.PublicToPrivateNestedClass" }
|
||||
internal inner class PublicToInternalInnerClass { override fun toString() = "PublicToPrivateTopLevelClass.PublicToInternalInnerClass" }
|
||||
protected inner class PublicToProtectedInnerClass { override fun toString() = "PublicToPrivateTopLevelClass.PublicToProtectedInnerClass" }
|
||||
private inner class PublicToPrivateInnerClass { override fun toString() = "PublicToPrivateTopLevelClass.PublicToPrivateInnerClass" }
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
STEP 0:
|
||||
dependencies: stdlib
|
||||
STEP 1:
|
||||
dependencies: stdlib
|
||||
modifications:
|
||||
U : l1.kt.1 -> l1.kt
|
||||
@@ -0,0 +1,85 @@
|
||||
@file:Suppress("FunctionName", "UNUSED_PARAMETER")
|
||||
|
||||
/**
|
||||
* Note:
|
||||
*
|
||||
* `fun *_valueParameter()` accepts nullable type and always returns a string.
|
||||
*
|
||||
* `fun *_returnType()` has non-nullable return type but in fact always throws an instrance of [TestException]. This is to avoid induced
|
||||
* errors caused by instantition of the returned declaration itself.
|
||||
*
|
||||
* `fun *_anyReturnType` has [kotlin.Any] return type and always returns just created instance of the declaration.
|
||||
*/
|
||||
|
||||
data class TestException(val id: String) : Exception()
|
||||
private fun fail(id: String): Nothing = throw TestException(id)
|
||||
|
||||
fun PublicTopLevelClass_valueParameter(value: PublicTopLevelClass?): String = "PublicTopLevelClass"
|
||||
fun PublicTopLevelClass_returnType(): PublicTopLevelClass = fail("PublicTopLevelClass")
|
||||
fun PublicTopLevelClass_anyReturnType(): Any = PublicTopLevelClass()
|
||||
fun PublicTopLevelClass_PublicToInternalNestedClass_valueParameter(value: PublicTopLevelClass.PublicToInternalNestedClass?): String = "PublicTopLevelClass.PublicToInternalNestedClass"
|
||||
fun PublicTopLevelClass_PublicToInternalNestedClass_returnType(): PublicTopLevelClass.PublicToInternalNestedClass = fail("PublicTopLevelClass.PublicToInternalNestedClass")
|
||||
fun PublicTopLevelClass_PublicToInternalNestedClass_anyReturnType(): Any = PublicTopLevelClass.PublicToInternalNestedClass()
|
||||
fun PublicTopLevelClass_PublicToProtectedNestedClass_valueParameter(value: PublicTopLevelClass.PublicToProtectedNestedClass?): String = "PublicTopLevelClass.PublicToProtectedNestedClass"
|
||||
fun PublicTopLevelClass_PublicToProtectedNestedClass_returnType(): PublicTopLevelClass.PublicToProtectedNestedClass = fail("PublicTopLevelClass.PublicToProtectedNestedClass")
|
||||
fun PublicTopLevelClass_PublicToProtectedNestedClass_anyReturnType(): Any = PublicTopLevelClass.PublicToProtectedNestedClass()
|
||||
fun PublicTopLevelClass_PublicToPrivateNestedClass_valueParameter(value: PublicTopLevelClass.PublicToPrivateNestedClass?): String = "PublicTopLevelClass.PublicToPrivateNestedClass"
|
||||
fun PublicTopLevelClass_PublicToPrivateNestedClass_returnType(): PublicTopLevelClass.PublicToPrivateNestedClass = fail("PublicTopLevelClass.PublicToPrivateNestedClass")
|
||||
fun PublicTopLevelClass_PublicToPrivateNestedClass_anyReturnType(): Any = PublicTopLevelClass.PublicToPrivateNestedClass()
|
||||
fun PublicTopLevelClass_PublicToInternalInnerClass_valueParameter(value: PublicTopLevelClass.PublicToInternalInnerClass?): String = "PublicTopLevelClass.PublicToInternalInnerClass"
|
||||
fun PublicTopLevelClass_PublicToInternalInnerClass_returnType(): PublicTopLevelClass.PublicToInternalInnerClass = fail("PublicTopLevelClass.PublicToInternalInnerClass")
|
||||
fun PublicTopLevelClass_PublicToInternalInnerClass_anyReturnType(): Any = PublicTopLevelClass().PublicToInternalInnerClass()
|
||||
fun PublicTopLevelClass_PublicToProtectedInnerClass_valueParameter(value: PublicTopLevelClass.PublicToProtectedInnerClass?): String = "PublicTopLevelClass.PublicToProtectedInnerClass"
|
||||
fun PublicTopLevelClass_PublicToProtectedInnerClass_returnType(): PublicTopLevelClass.PublicToProtectedInnerClass = fail("PublicTopLevelClass.PublicToProtectedInnerClass")
|
||||
fun PublicTopLevelClass_PublicToProtectedInnerClass_anyReturnType(): Any = PublicTopLevelClass().PublicToProtectedInnerClass()
|
||||
fun PublicTopLevelClass_PublicToPrivateInnerClass_valueParameter(value: PublicTopLevelClass.PublicToPrivateInnerClass?): String = "PublicTopLevelClass.PublicToPrivateInnerClass"
|
||||
fun PublicTopLevelClass_PublicToPrivateInnerClass_returnType(): PublicTopLevelClass.PublicToPrivateInnerClass = fail("PublicTopLevelClass.PublicToPrivateInnerClass")
|
||||
fun PublicTopLevelClass_PublicToPrivateInnerClass_anyReturnType(): Any = PublicTopLevelClass().PublicToPrivateInnerClass()
|
||||
|
||||
fun PublicToInternalTopLevelClass_valueParameter(value: PublicToInternalTopLevelClass?): String = "PublicToInternalTopLevelClass"
|
||||
fun PublicToInternalTopLevelClass_returnType(): PublicToInternalTopLevelClass = fail("PublicToInternalTopLevelClass")
|
||||
fun PublicToInternalTopLevelClass_anyReturnType(): Any = PublicToInternalTopLevelClass()
|
||||
fun PublicToInternalTopLevelClass_PublicToInternalNestedClass_valueParameter(value: PublicToInternalTopLevelClass.PublicToInternalNestedClass?): String = "PublicToInternalTopLevelClass.PublicToInternalNestedClass"
|
||||
fun PublicToInternalTopLevelClass_PublicToInternalNestedClass_returnType(): PublicToInternalTopLevelClass.PublicToInternalNestedClass = fail("PublicToInternalTopLevelClass.PublicToInternalNestedClass")
|
||||
fun PublicToInternalTopLevelClass_PublicToInternalNestedClass_anyReturnType(): Any = PublicToInternalTopLevelClass.PublicToInternalNestedClass()
|
||||
fun PublicToInternalTopLevelClass_PublicToProtectedNestedClass_valueParameter(value: PublicToInternalTopLevelClass.PublicToProtectedNestedClass?): String = "PublicToInternalTopLevelClass.PublicToProtectedNestedClass"
|
||||
fun PublicToInternalTopLevelClass_PublicToProtectedNestedClass_returnType(): PublicToInternalTopLevelClass.PublicToProtectedNestedClass = fail("PublicToInternalTopLevelClass.PublicToProtectedNestedClass")
|
||||
fun PublicToInternalTopLevelClass_PublicToProtectedNestedClass_anyReturnType(): Any = PublicToInternalTopLevelClass.PublicToProtectedNestedClass()
|
||||
fun PublicToInternalTopLevelClass_PublicToPrivateNestedClass_valueParameter(value: PublicToInternalTopLevelClass.PublicToPrivateNestedClass?): String = "PublicToInternalTopLevelClass.PublicToPrivateNestedClass"
|
||||
fun PublicToInternalTopLevelClass_PublicToPrivateNestedClass_returnType(): PublicToInternalTopLevelClass.PublicToPrivateNestedClass = fail("PublicToInternalTopLevelClass.PublicToPrivateNestedClass")
|
||||
fun PublicToInternalTopLevelClass_PublicToPrivateNestedClass_anyReturnType(): Any = PublicToInternalTopLevelClass.PublicToPrivateNestedClass()
|
||||
fun PublicToInternalTopLevelClass_PublicToInternalInnerClass_valueParameter(value: PublicToInternalTopLevelClass.PublicToInternalInnerClass?): String = "PublicToInternalTopLevelClass.PublicToInternalInnerClass"
|
||||
fun PublicToInternalTopLevelClass_PublicToInternalInnerClass_returnType(): PublicToInternalTopLevelClass.PublicToInternalInnerClass = fail("PublicToInternalTopLevelClass.PublicToInternalInnerClass")
|
||||
fun PublicToInternalTopLevelClass_PublicToInternalInnerClass_anyReturnType(): Any = PublicToInternalTopLevelClass().PublicToInternalInnerClass()
|
||||
fun PublicToInternalTopLevelClass_PublicToProtectedInnerClass_valueParameter(value: PublicToInternalTopLevelClass.PublicToProtectedInnerClass?): String = "PublicToInternalTopLevelClass.PublicToProtectedInnerClass"
|
||||
fun PublicToInternalTopLevelClass_PublicToProtectedInnerClass_returnType(): PublicToInternalTopLevelClass.PublicToProtectedInnerClass = fail("PublicToInternalTopLevelClass.PublicToProtectedInnerClass")
|
||||
fun PublicToInternalTopLevelClass_PublicToProtectedInnerClass_anyReturnType(): Any = PublicToInternalTopLevelClass().PublicToProtectedInnerClass()
|
||||
fun PublicToInternalTopLevelClass_PublicToPrivateInnerClass_valueParameter(value: PublicToInternalTopLevelClass.PublicToPrivateInnerClass?): String = "PublicToInternalTopLevelClass.PublicToPrivateInnerClass"
|
||||
fun PublicToInternalTopLevelClass_PublicToPrivateInnerClass_returnType(): PublicToInternalTopLevelClass.PublicToPrivateInnerClass = fail("PublicToInternalTopLevelClass.PublicToPrivateInnerClass")
|
||||
fun PublicToInternalTopLevelClass_PublicToPrivateInnerClass_anyReturnType(): Any = PublicToInternalTopLevelClass().PublicToPrivateInnerClass()
|
||||
|
||||
fun PublicToPrivateTopLevelClass_valueParameter(value: PublicToPrivateTopLevelClass?): String = "PublicToPrivateTopLevelClass"
|
||||
fun PublicToPrivateTopLevelClass_returnType(): PublicToPrivateTopLevelClass = fail("PublicToPrivateTopLevelClass")
|
||||
fun PublicToPrivateTopLevelClass_anyReturnType(): Any = PublicToPrivateTopLevelClass()
|
||||
fun PublicToPrivateTopLevelClass_PublicToInternalNestedClass_valueParameter(value: PublicToPrivateTopLevelClass.PublicToInternalNestedClass?): String = "PublicToPrivateTopLevelClass.PublicToInternalNestedClass"
|
||||
fun PublicToPrivateTopLevelClass_PublicToInternalNestedClass_returnType(): PublicToPrivateTopLevelClass.PublicToInternalNestedClass = fail("PublicToPrivateTopLevelClass.PublicToInternalNestedClass")
|
||||
fun PublicToPrivateTopLevelClass_PublicToInternalNestedClass_anyReturnType(): Any = PublicToPrivateTopLevelClass.PublicToInternalNestedClass()
|
||||
fun PublicToPrivateTopLevelClass_PublicToProtectedNestedClass_valueParameter(value: PublicToPrivateTopLevelClass.PublicToProtectedNestedClass?): String = "PublicToPrivateTopLevelClass.PublicToProtectedNestedClass"
|
||||
fun PublicToPrivateTopLevelClass_PublicToProtectedNestedClass_returnType(): PublicToPrivateTopLevelClass.PublicToProtectedNestedClass = fail("PublicToPrivateTopLevelClass.PublicToProtectedNestedClass")
|
||||
fun PublicToPrivateTopLevelClass_PublicToProtectedNestedClass_anyReturnType(): Any = PublicToPrivateTopLevelClass.PublicToProtectedNestedClass()
|
||||
fun PublicToPrivateTopLevelClass_PublicToPrivateNestedClass_valueParameter(value: PublicToPrivateTopLevelClass.PublicToPrivateNestedClass?): String = "PublicToPrivateTopLevelClass.PublicToPrivateNestedClass"
|
||||
fun PublicToPrivateTopLevelClass_PublicToPrivateNestedClass_returnType(): PublicToPrivateTopLevelClass.PublicToPrivateNestedClass = fail("PublicToPrivateTopLevelClass.PublicToPrivateNestedClass")
|
||||
fun PublicToPrivateTopLevelClass_PublicToPrivateNestedClass_anyReturnType(): Any = PublicToPrivateTopLevelClass.PublicToPrivateNestedClass()
|
||||
fun PublicToPrivateTopLevelClass_PublicToInternalInnerClass_valueParameter(value: PublicToPrivateTopLevelClass.PublicToInternalInnerClass?): String = "PublicToPrivateTopLevelClass.PublicToInternalInnerClass"
|
||||
fun PublicToPrivateTopLevelClass_PublicToInternalInnerClass_returnType(): PublicToPrivateTopLevelClass.PublicToInternalInnerClass = fail("PublicToPrivateTopLevelClass.PublicToInternalInnerClass")
|
||||
fun PublicToPrivateTopLevelClass_PublicToInternalInnerClass_anyReturnType(): Any = PublicToPrivateTopLevelClass().PublicToInternalInnerClass()
|
||||
fun PublicToPrivateTopLevelClass_PublicToProtectedInnerClass_valueParameter(value: PublicToPrivateTopLevelClass.PublicToProtectedInnerClass?): String = "PublicToPrivateTopLevelClass.PublicToProtectedInnerClass"
|
||||
fun PublicToPrivateTopLevelClass_PublicToProtectedInnerClass_returnType(): PublicToPrivateTopLevelClass.PublicToProtectedInnerClass = fail("PublicToPrivateTopLevelClass.PublicToProtectedInnerClass")
|
||||
fun PublicToPrivateTopLevelClass_PublicToProtectedInnerClass_anyReturnType(): Any = PublicToPrivateTopLevelClass().PublicToProtectedInnerClass()
|
||||
fun PublicToPrivateTopLevelClass_PublicToPrivateInnerClass_valueParameter(value: PublicToPrivateTopLevelClass.PublicToPrivateInnerClass?): String = "PublicToPrivateTopLevelClass.PublicToPrivateInnerClass"
|
||||
fun PublicToPrivateTopLevelClass_PublicToPrivateInnerClass_returnType(): PublicToPrivateTopLevelClass.PublicToPrivateInnerClass = fail("PublicToPrivateTopLevelClass.PublicToPrivateInnerClass")
|
||||
fun PublicToPrivateTopLevelClass_PublicToPrivateInnerClass_anyReturnType(): Any = PublicToPrivateTopLevelClass().PublicToPrivateInnerClass()
|
||||
|
||||
class PublicTopLevelClassInheritor : PublicTopLevelClass() { override fun toString() = "PublicTopLevelClassInheritor" }
|
||||
class PublicToInternalTopLevelClassInheritor : PublicToInternalTopLevelClass() { override fun toString() = "PublicToInternalTopLevelClassInheritor" }
|
||||
class PublicToPrivateTopLevelClassInheritor : PublicToPrivateTopLevelClass() { override fun toString() = "PublicToPrivateTopLevelClassInheritor" }
|
||||
@@ -0,0 +1,2 @@
|
||||
STEP 0:
|
||||
dependencies: stdlib, lib1
|
||||
@@ -0,0 +1,112 @@
|
||||
import abitestutils.abiTest
|
||||
import abitestutils.TestBuilder
|
||||
|
||||
fun box() = abiTest {
|
||||
success("PublicTopLevelClass") { PublicTopLevelClass_valueParameter(null) }
|
||||
successViaException("PublicTopLevelClass") { PublicTopLevelClass_returnType() }
|
||||
success("PublicTopLevelClass") { PublicTopLevelClass_anyReturnType() }
|
||||
success("PublicTopLevelClass.PublicToInternalNestedClass") { PublicTopLevelClass_PublicToInternalNestedClass_valueParameter(null) }
|
||||
successViaException("PublicTopLevelClass.PublicToInternalNestedClass") { PublicTopLevelClass_PublicToInternalNestedClass_returnType() }
|
||||
success("PublicTopLevelClass.PublicToInternalNestedClass") { PublicTopLevelClass_PublicToInternalNestedClass_anyReturnType() }
|
||||
success("PublicTopLevelClass.PublicToProtectedNestedClass") { PublicTopLevelClass_PublicToProtectedNestedClass_valueParameter(null) }
|
||||
successViaException("PublicTopLevelClass.PublicToProtectedNestedClass") { PublicTopLevelClass_PublicToProtectedNestedClass_returnType() }
|
||||
success("PublicTopLevelClass.PublicToProtectedNestedClass") { PublicTopLevelClass_PublicToProtectedNestedClass_anyReturnType() }
|
||||
success("PublicTopLevelClass.PublicToPrivateNestedClass") { PublicTopLevelClass_PublicToPrivateNestedClass_valueParameter(null) }
|
||||
successViaException("PublicTopLevelClass.PublicToPrivateNestedClass") { PublicTopLevelClass_PublicToPrivateNestedClass_returnType() }
|
||||
inaccessible("PublicToPrivateNestedClass") { PublicTopLevelClass_PublicToPrivateNestedClass_anyReturnType() }
|
||||
success("PublicTopLevelClass.PublicToInternalInnerClass") { PublicTopLevelClass_PublicToInternalInnerClass_valueParameter(null) }
|
||||
successViaException("PublicTopLevelClass.PublicToInternalInnerClass") { PublicTopLevelClass_PublicToInternalInnerClass_returnType() }
|
||||
success("PublicTopLevelClass.PublicToInternalInnerClass") { PublicTopLevelClass_PublicToInternalInnerClass_anyReturnType() }
|
||||
success("PublicTopLevelClass.PublicToProtectedInnerClass") { PublicTopLevelClass_PublicToProtectedInnerClass_valueParameter(null) }
|
||||
successViaException("PublicTopLevelClass.PublicToProtectedInnerClass") { PublicTopLevelClass_PublicToProtectedInnerClass_returnType() }
|
||||
success("PublicTopLevelClass.PublicToProtectedInnerClass") { PublicTopLevelClass_PublicToProtectedInnerClass_anyReturnType() }
|
||||
success("PublicTopLevelClass.PublicToPrivateInnerClass") { PublicTopLevelClass_PublicToPrivateInnerClass_valueParameter(null) }
|
||||
successViaException("PublicTopLevelClass.PublicToPrivateInnerClass") { PublicTopLevelClass_PublicToPrivateInnerClass_returnType() }
|
||||
inaccessible("PublicToPrivateInnerClass") { PublicTopLevelClass_PublicToPrivateInnerClass_anyReturnType() }
|
||||
|
||||
success("PublicToInternalTopLevelClass") { PublicToInternalTopLevelClass_valueParameter(null) }
|
||||
successViaException("PublicToInternalTopLevelClass") { PublicToInternalTopLevelClass_returnType() }
|
||||
success("PublicToInternalTopLevelClass") { PublicToInternalTopLevelClass_anyReturnType() }
|
||||
success("PublicToInternalTopLevelClass.PublicToInternalNestedClass") { PublicToInternalTopLevelClass_PublicToInternalNestedClass_valueParameter(null) }
|
||||
successViaException("PublicToInternalTopLevelClass.PublicToInternalNestedClass") { PublicToInternalTopLevelClass_PublicToInternalNestedClass_returnType() }
|
||||
success("PublicToInternalTopLevelClass.PublicToInternalNestedClass") { PublicToInternalTopLevelClass_PublicToInternalNestedClass_anyReturnType() }
|
||||
success("PublicToInternalTopLevelClass.PublicToProtectedNestedClass") { PublicToInternalTopLevelClass_PublicToProtectedNestedClass_valueParameter(null) }
|
||||
successViaException("PublicToInternalTopLevelClass.PublicToProtectedNestedClass") { PublicToInternalTopLevelClass_PublicToProtectedNestedClass_returnType() }
|
||||
success("PublicToInternalTopLevelClass.PublicToProtectedNestedClass") { PublicToInternalTopLevelClass_PublicToProtectedNestedClass_anyReturnType() }
|
||||
success("PublicToInternalTopLevelClass.PublicToPrivateNestedClass") { PublicToInternalTopLevelClass_PublicToPrivateNestedClass_valueParameter(null) }
|
||||
successViaException("PublicToInternalTopLevelClass.PublicToPrivateNestedClass") { PublicToInternalTopLevelClass_PublicToPrivateNestedClass_returnType() }
|
||||
inaccessible("PublicToPrivateNestedClass") { PublicToInternalTopLevelClass_PublicToPrivateNestedClass_anyReturnType() }
|
||||
success("PublicToInternalTopLevelClass.PublicToInternalInnerClass") { PublicToInternalTopLevelClass_PublicToInternalInnerClass_valueParameter(null) }
|
||||
successViaException("PublicToInternalTopLevelClass.PublicToInternalInnerClass") { PublicToInternalTopLevelClass_PublicToInternalInnerClass_returnType() }
|
||||
success("PublicToInternalTopLevelClass.PublicToInternalInnerClass") { PublicToInternalTopLevelClass_PublicToInternalInnerClass_anyReturnType() }
|
||||
success("PublicToInternalTopLevelClass.PublicToProtectedInnerClass") { PublicToInternalTopLevelClass_PublicToProtectedInnerClass_valueParameter(null) }
|
||||
successViaException("PublicToInternalTopLevelClass.PublicToProtectedInnerClass") { PublicToInternalTopLevelClass_PublicToProtectedInnerClass_returnType() }
|
||||
success("PublicToInternalTopLevelClass.PublicToProtectedInnerClass") { PublicToInternalTopLevelClass_PublicToProtectedInnerClass_anyReturnType() }
|
||||
success("PublicToInternalTopLevelClass.PublicToPrivateInnerClass") { PublicToInternalTopLevelClass_PublicToPrivateInnerClass_valueParameter(null) }
|
||||
successViaException("PublicToInternalTopLevelClass.PublicToPrivateInnerClass") { PublicToInternalTopLevelClass_PublicToPrivateInnerClass_returnType() }
|
||||
inaccessible("PublicToPrivateInnerClass") { PublicToInternalTopLevelClass_PublicToPrivateInnerClass_anyReturnType() }
|
||||
|
||||
unlinkedSymbolInValueParameter("/PublicToPrivateTopLevelClass") { PublicToPrivateTopLevelClass_valueParameter(null) }
|
||||
unlinkedSymbolInReturnType("/PublicToPrivateTopLevelClass") { PublicToPrivateTopLevelClass_returnType() }
|
||||
unlinkedConstructorSymbol("/PublicToPrivateTopLevelClass.<init>") { PublicToPrivateTopLevelClass_anyReturnType() }
|
||||
unlinkedSymbolInValueParameter("/PublicToPrivateTopLevelClass.PublicToInternalNestedClass") { PublicToPrivateTopLevelClass_PublicToInternalNestedClass_valueParameter(null) }
|
||||
unlinkedSymbolInReturnType("/PublicToPrivateTopLevelClass.PublicToInternalNestedClass") { PublicToPrivateTopLevelClass_PublicToInternalNestedClass_returnType() }
|
||||
unlinkedConstructorSymbol("/PublicToPrivateTopLevelClass.PublicToInternalNestedClass.<init>") { PublicToPrivateTopLevelClass_PublicToInternalNestedClass_anyReturnType() }
|
||||
unlinkedSymbolInValueParameter("/PublicToPrivateTopLevelClass.PublicToProtectedNestedClass") { PublicToPrivateTopLevelClass_PublicToProtectedNestedClass_valueParameter(null) }
|
||||
unlinkedSymbolInReturnType("/PublicToPrivateTopLevelClass.PublicToProtectedNestedClass") { PublicToPrivateTopLevelClass_PublicToProtectedNestedClass_returnType() }
|
||||
unlinkedConstructorSymbol("/PublicToPrivateTopLevelClass.PublicToProtectedNestedClass.<init>") { PublicToPrivateTopLevelClass_PublicToProtectedNestedClass_anyReturnType() }
|
||||
unlinkedSymbolInValueParameter("/PublicToPrivateTopLevelClass.PublicToPrivateNestedClass") { PublicToPrivateTopLevelClass_PublicToPrivateNestedClass_valueParameter(null) }
|
||||
unlinkedSymbolInReturnType("/PublicToPrivateTopLevelClass.PublicToPrivateNestedClass") { PublicToPrivateTopLevelClass_PublicToPrivateNestedClass_returnType() }
|
||||
unlinkedConstructorSymbol("/PublicToPrivateTopLevelClass.PublicToPrivateNestedClass.<init>") { PublicToPrivateTopLevelClass_PublicToPrivateNestedClass_anyReturnType() }
|
||||
unlinkedSymbolInValueParameter("/PublicToPrivateTopLevelClass.PublicToInternalInnerClass") { PublicToPrivateTopLevelClass_PublicToInternalInnerClass_valueParameter(null) }
|
||||
unlinkedSymbolInReturnType("/PublicToPrivateTopLevelClass.PublicToInternalInnerClass") { PublicToPrivateTopLevelClass_PublicToInternalInnerClass_returnType() }
|
||||
unlinkedConstructorSymbol("/PublicToPrivateTopLevelClass.<init>") { PublicToPrivateTopLevelClass_PublicToInternalInnerClass_anyReturnType() }
|
||||
unlinkedSymbolInValueParameter("/PublicToPrivateTopLevelClass.PublicToProtectedInnerClass") { PublicToPrivateTopLevelClass_PublicToProtectedInnerClass_valueParameter(null) }
|
||||
unlinkedSymbolInReturnType("/PublicToPrivateTopLevelClass.PublicToProtectedInnerClass") { PublicToPrivateTopLevelClass_PublicToProtectedInnerClass_returnType() }
|
||||
unlinkedConstructorSymbol("/PublicToPrivateTopLevelClass.<init>") { PublicToPrivateTopLevelClass_PublicToProtectedInnerClass_anyReturnType() }
|
||||
unlinkedSymbolInValueParameter("/PublicToPrivateTopLevelClass.PublicToPrivateInnerClass") { PublicToPrivateTopLevelClass_PublicToPrivateInnerClass_valueParameter(null) }
|
||||
unlinkedSymbolInReturnType("/PublicToPrivateTopLevelClass.PublicToPrivateInnerClass") { PublicToPrivateTopLevelClass_PublicToPrivateInnerClass_returnType() }
|
||||
unlinkedConstructorSymbol("/PublicToPrivateTopLevelClass.<init>") { PublicToPrivateTopLevelClass_PublicToPrivateInnerClass_anyReturnType() }
|
||||
|
||||
success("PublicTopLevelClassInheritor") { PublicTopLevelClassInheritor() }
|
||||
success("PublicToInternalTopLevelClassInheritor") { PublicToInternalTopLevelClassInheritor() }
|
||||
expectFailure(linkage("Constructor 'PublicToPrivateTopLevelClassInheritor.<init>' can not be called: Class 'PublicToPrivateTopLevelClassInheritor' uses unlinked class symbol '/PublicToPrivateTopLevelClass'")) { PublicToPrivateTopLevelClassInheritor() }
|
||||
}
|
||||
|
||||
// Shortcuts:
|
||||
private fun TestBuilder.success(expectedOutcome: String, block: () -> Any) =
|
||||
expectSuccess(expectedOutcome) { block().toString() }
|
||||
|
||||
private fun TestBuilder.successViaException(testExceptionId: String, block: () -> Unit) =
|
||||
expectFailure(custom { (it as? TestException)?.id == testExceptionId }, block)
|
||||
|
||||
private fun TestBuilder.inaccessible(className: String, block: () -> Unit) = expectFailure(
|
||||
linkage("Constructor '$className.<init>' can not be called: Private constructor declared in module <lib1> can not be accessed in module <lib2>"),
|
||||
block
|
||||
)
|
||||
|
||||
private fun TestBuilder.unlinkedSymbolInValueParameter(signature: String, block: () -> Unit) {
|
||||
val functionName = signature.removePrefix("/").replace('.', '_') + "_valueParameter"
|
||||
unlinkedSymbol(signature, functionName, block)
|
||||
}
|
||||
|
||||
private fun TestBuilder.unlinkedSymbolInReturnType(signature: String, block: () -> Unit) {
|
||||
val functionName = signature.removePrefix("/").replace('.', '_') + "_returnType"
|
||||
unlinkedSymbol(signature, functionName, block)
|
||||
}
|
||||
|
||||
private fun TestBuilder.unlinkedConstructorSymbol(signature: String, block: () -> Unit) {
|
||||
val constructorName = signature.removePrefix("/").split('.').takeLast(2).joinToString(".")
|
||||
expectFailure(linkage("Constructor '$constructorName' can not be called: No constructor found for symbol '$signature'"), block)
|
||||
}
|
||||
|
||||
private fun TestBuilder.unlinkedSymbol(signature: String, functionName: String, block: () -> Unit) {
|
||||
// Need to slightly adjust the expected IR linkage error message. Reason: When Lazy IR is used the type of the
|
||||
// symbol is determined more accurately.
|
||||
val symbolKind = if ("InnerClass" in functionName && testMode.lazyIr.usedEverywhere)
|
||||
"inner class"
|
||||
else
|
||||
"class"
|
||||
|
||||
expectFailure(linkage("Function '$functionName' can not be called: Function uses unlinked $symbolKind symbol '$signature'"), block)
|
||||
}
|
||||
@@ -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