diff --git a/compiler/testData/klibABI/changePropertyVisibility/lib2/l2.kt b/compiler/testData/klibABI/changePropertyVisibility/lib2/l2.kt index 8f760ea3405..cb88d64d120 100644 --- a/compiler/testData/klibABI/changePropertyVisibility/lib2/l2.kt +++ b/compiler/testData/klibABI/changePropertyVisibility/lib2/l2.kt @@ -77,34 +77,34 @@ class ContainerImpl : Container() { public val newPublicProperty2 get() = "ContainerImpl.newPublicProperty2" public val newPublicProperty3 get() = "ContainerImpl.newPublicProperty3" public val newPublicProperty4 = "ContainerImpl.newPublicProperty4" - public open val newOpenPublicProperty1 = "ContainerImpl.newOpenPublicProperty1" - public open val newOpenPublicProperty2 get() = "ContainerImpl.newOpenPublicProperty2" - public open val newOpenPublicProperty3 get() = "ContainerImpl.newOpenPublicProperty3" - public open val newOpenPublicProperty4 = "ContainerImpl.newOpenPublicProperty4" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") public open val newOpenPublicProperty1 = "ContainerImpl.newOpenPublicProperty1" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") public open val newOpenPublicProperty2 get() = "ContainerImpl.newOpenPublicProperty2" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") public open val newOpenPublicProperty3 get() = "ContainerImpl.newOpenPublicProperty3" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") public open val newOpenPublicProperty4 = "ContainerImpl.newOpenPublicProperty4" protected val newProtectedProperty1 = "ContainerImpl.newProtectedProperty1" protected val newProtectedProperty2 get() = "ContainerImpl.newProtectedProperty2" protected val newProtectedProperty3 get() = "ContainerImpl.newProtectedProperty3" protected val newProtectedProperty4 = "ContainerImpl.newProtectedProperty4" - protected open val newOpenProtectedProperty1 = "ContainerImpl.newOpenProtectedProperty1" - protected open val newOpenProtectedProperty2 get() = "ContainerImpl.newOpenProtectedProperty2" - protected open val newOpenProtectedProperty3 get() = "ContainerImpl.newOpenProtectedProperty3" - protected open val newOpenProtectedProperty4 = "ContainerImpl.newOpenProtectedProperty4" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") protected open val newOpenProtectedProperty1 = "ContainerImpl.newOpenProtectedProperty1" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") protected open val newOpenProtectedProperty2 get() = "ContainerImpl.newOpenProtectedProperty2" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") protected open val newOpenProtectedProperty3 get() = "ContainerImpl.newOpenProtectedProperty3" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") protected open val newOpenProtectedProperty4 = "ContainerImpl.newOpenProtectedProperty4" internal val newInternalProperty1 = "ContainerImpl.newInternalProperty1" internal val newInternalProperty2 get() = "ContainerImpl.newInternalProperty2" internal val newInternalProperty3 get() = "ContainerImpl.newInternalProperty3" internal val newInternalProperty4 = "ContainerImpl.newInternalProperty4" - internal open val newOpenInternalProperty1 = "ContainerImpl.newOpenInternalProperty1" - internal open val newOpenInternalProperty2 get() = "ContainerImpl.newOpenInternalProperty2" - internal open val newOpenInternalProperty3 get() = "ContainerImpl.newOpenInternalProperty3" - internal open val newOpenInternalProperty4 = "ContainerImpl.newOpenInternalProperty4" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") internal open val newOpenInternalProperty1 = "ContainerImpl.newOpenInternalProperty1" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") internal open val newOpenInternalProperty2 get() = "ContainerImpl.newOpenInternalProperty2" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") internal open val newOpenInternalProperty3 get() = "ContainerImpl.newOpenInternalProperty3" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") 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" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") internal open val newOpenInternalPAProperty1 = "ContainerImpl.newOpenInternalPAProperty1" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") internal open val newOpenInternalPAProperty2 get() = "ContainerImpl.newOpenInternalPAProperty2" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") internal open val newOpenInternalPAProperty3 get() = "ContainerImpl.newOpenInternalPAProperty3" + @Suppress("NON_FINAL_MEMBER_IN_FINAL_CLASS") internal open val newOpenInternalPAProperty4 = "ContainerImpl.newOpenInternalPAProperty4" private val newPrivateProperty1 = "ContainerImpl.newPrivateProperty1" private val newPrivateProperty2 get() = "ContainerImpl.newPrivateProperty2" private val newPrivateProperty3 get() = "ContainerImpl.newPrivateProperty3" diff --git a/compiler/testData/klibABI/functionTransformations/lib2/l2.kt b/compiler/testData/klibABI/functionTransformations/lib2/l2.kt index 3d6bb44ab26..6a93ec0f8d0 100644 --- a/compiler/testData/klibABI/functionTransformations/lib2/l2.kt +++ b/compiler/testData/klibABI/functionTransformations/lib2/l2.kt @@ -67,7 +67,7 @@ fun memberInfixToNonInfix(a: Int, b: Int): Int = (a.wrap() memberInfixToNonInfix fun extensionInfixToNonInfix(a: Int, b: Int): Int = with(Wrapper.Companion) { (a.wrap() extensionInfixToNonInfix b.wrap()).unwrap() } fun nonTailrecToTailrec(n: Int): Int = Functions.nonTailrecToTailrec(n, 1) -tailrec fun tailrecToNonTailrec(n: Int): Int = Functions.tailrecToNonTailrec(n, 1) +@Suppress("NO_TAIL_CALLS_FOUND") tailrec fun tailrecToNonTailrec(n: Int): Int = Functions.tailrecToNonTailrec(n, 1) // This is required to check that default arguments are counter correctly even for inherited classes. open class StableOpenClass { diff --git a/compiler/testData/klibABI/functionTransformations/main/m.kt b/compiler/testData/klibABI/functionTransformations/main/m.kt index 207f6b9d702..e6b6dd630a1 100644 --- a/compiler/testData/klibABI/functionTransformations/main/m.kt +++ b/compiler/testData/klibABI/functionTransformations/main/m.kt @@ -61,8 +61,8 @@ fun box() = abiTest { expectSuccess(91) { varargArgumentAndOtherArgumentsWithDefaultValues(100, 1) } expectSuccess(93) { varargArgumentAndOtherArgumentsWithDefaultValues(100, 1, 2) } expectSuccess(113) { varargArgumentAndOtherArgumentsWithDefaultValues(100, 1, 2, last = 10) } - expectSuccess(-109) { varargArgumentAndOtherArgumentsWithDefaultValues(elements = *intArrayOf(1)) } - expectSuccess(-107) { varargArgumentAndOtherArgumentsWithDefaultValues(elements = *intArrayOf(1, 2)) } + expectSuccess(-109) { @Suppress("REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION") varargArgumentAndOtherArgumentsWithDefaultValues(elements = *intArrayOf(1)) } + expectSuccess(-107) { @Suppress("REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION") varargArgumentAndOtherArgumentsWithDefaultValues(elements = *intArrayOf(1, 2)) } expectSuccess(104) { varargArgumentWithDefaultValueAndOtherArguments(100, last = 10) } expectSuccess(111) { varargArgumentWithDefaultValueAndOtherArguments(100, 1, last = 10) } expectSuccess(113) { varargArgumentWithDefaultValueAndOtherArguments(100, 1, 2, last = 10) } @@ -74,8 +74,8 @@ fun box() = abiTest { expectSuccess(91) { varargArgumentWithDefaultValueAndOtherArgumentsWithDefaultValues(100, 1) } expectSuccess(93) { varargArgumentWithDefaultValueAndOtherArgumentsWithDefaultValues(100, 1, 2) } expectSuccess(113) { varargArgumentWithDefaultValueAndOtherArgumentsWithDefaultValues(100, 1, 2, last = 10) } - expectSuccess(-109) { varargArgumentWithDefaultValueAndOtherArgumentsWithDefaultValues(elements = *intArrayOf(1)) } - expectSuccess(-107) { varargArgumentWithDefaultValueAndOtherArgumentsWithDefaultValues(elements = *intArrayOf(1, 2)) } + expectSuccess(-109) { @Suppress("REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION") varargArgumentWithDefaultValueAndOtherArgumentsWithDefaultValues(elements = *intArrayOf(1)) } + expectSuccess(-107) { @Suppress("REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION") varargArgumentWithDefaultValueAndOtherArgumentsWithDefaultValues(elements = *intArrayOf(1, 2)) } expectSuccess(-1) { suspendToNonSuspendFunction1(1) } expectSuccess(-2) { suspendToNonSuspendFunction2(2) } diff --git a/compiler/testData/klibABI/referencingUnusableDeclarations/lib2/l2.kt b/compiler/testData/klibABI/referencingUnusableDeclarations/lib2/l2.kt index 96c7c2f1b89..929c6cac907 100644 --- a/compiler/testData/klibABI/referencingUnusableDeclarations/lib2/l2.kt +++ b/compiler/testData/klibABI/referencingUnusableDeclarations/lib2/l2.kt @@ -18,9 +18,9 @@ class StableClass { } } -fun functionWithUnlinkedParameter(p: RemovedClass?) = "functionWithUnlinkedParameter" +fun functionWithUnlinkedParameter(@Suppress("UNUSED_PARAMETER") p: RemovedClass?) = "functionWithUnlinkedParameter" fun functionWithUnlinkedReturnValue(): RemovedClass = TODO("functionWithUnlinkedReturnValue") -fun functionWithRemovedTypeParameter(a: Any?): T = TODO("functionWithRemovedTypeParameter") +fun functionWithRemovedTypeParameter(@Suppress("UNUSED_PARAMETER") a: Any?): T = TODO("functionWithRemovedTypeParameter") fun referenceRemovedClassReference(): String = RemovedClass::class.simpleName.orEmpty() fun referenceRemovedClassConstructorReference(): String = ::RemovedClass.name diff --git a/compiler/testData/klibABI/removeClass/lib2/l2.kt b/compiler/testData/klibABI/removeClass/lib2/l2.kt index 8cf3a59d096..52ff1047e5a 100644 --- a/compiler/testData/klibABI/removeClass/lib2/l2.kt +++ b/compiler/testData/klibABI/removeClass/lib2/l2.kt @@ -18,11 +18,11 @@ class Checker { fun useClassAsValueParameter(c: Class): String = "Checker.useClassAsValueParameter($c)" fun createAndPassClassAsValueParameter(): String = useClassAsValueParameter(Class()) - fun useRemovedClassAsValueParameter(e: RemovedClass?): String = "FAIL: useRemovedClassAsValueParameter" + fun useRemovedClassAsValueParameter(@Suppress("UNUSED_PARAMETER") e: RemovedClass?): String = "FAIL: useRemovedClassAsValueParameter" fun createAndPassRemovedClassAsValueParameter(): String = useRemovedClassAsValueParameter(null) var removedClassProperty: RemovedClass? = null - protected set(value) { /* Do nothing */ } + protected set(_) { /* Do nothing */ } fun writeToRemovedClassProperty(): String { removedClassProperty = null @@ -62,7 +62,8 @@ fun readVariableInFunction() { } fun writeVariableInFunction() { - var removed: RemovedClass? + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE", "CanBeVal") var removed: RemovedClass? + @Suppress("UNUSED_VALUE") removed = null } @@ -76,7 +77,8 @@ fun readVariableInLocalFunction() { fun writeVariableInLocalFunction() { fun local() { - var removed: RemovedClass? + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE", "CanBeVal") var removed: RemovedClass? + @Suppress("UNUSED_VALUE") removed = null } local() @@ -95,7 +97,8 @@ fun readVariableInLocalClass() { fun writeVariableInLocalClass() { class Local { fun foo() { - var removed: RemovedClass? + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE", "CanBeVal") var removed: RemovedClass? + @Suppress("UNUSED_VALUE") removed = null } } @@ -114,7 +117,8 @@ fun readVariableInAnonymousObject() { fun writeVariableInAnonymousObject() { object { fun foo() { - var removed: RemovedClass? + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE", "CanBeVal") var removed: RemovedClass? + @Suppress("UNUSED_VALUE") removed = null } }.foo() @@ -133,7 +137,8 @@ fun readVariableInAnonymousObjectThroughLocalVar() { fun writeVariableInAnonymousObjectThroughLocalVar() { val obj = object { fun foo() { - var removed: RemovedClass? + @Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE", "CanBeVal") var removed: RemovedClass? + @Suppress("UNUSED_VALUE") removed = null } } @@ -262,10 +267,10 @@ inline fun inlinedFunctionWithCreationOfOpenClassImplThroughReference() { inline fun inlinedFunctionWithRemovedOpenClassAnonymousObject() { val foo = object : RemovedOpenClass() {} - check(foo == null) + check(foo.toString().isNotEmpty()) } inline fun inlinedFunctionWithOpenClassImplAnonymousObject() { val foo = object : OpenClassImpl() {} - check(foo == null) + check(foo.toString().isNotEmpty()) } diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativePartialLinkageTest.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativePartialLinkageTest.kt index 8ecb45a2340..d250112b9c2 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativePartialLinkageTest.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/AbstractNativePartialLinkageTest.kt @@ -27,7 +27,7 @@ import org.opentest4j.TestAbortedException import java.io.File @Tag("partial-linkage") -@UsePartialLinkage(UsePartialLinkage.Mode.ENABLED_WITH_WARNING) +@UsePartialLinkage(UsePartialLinkage.Mode.DEFAULT) abstract class AbstractNativePartialLinkageTest : AbstractNativeSimpleTest() { private inner class NativeTestConfiguration(testPath: String) : PartialLinkageTestUtils.TestConfiguration { override val testDir = getAbsoluteFile(testPath) @@ -218,7 +218,11 @@ abstract class AbstractNativePartialLinkageTest : AbstractNativeSimpleTest() { companion object { private val COMPILER_ARGS = TestCompilerArgs( - listOf("-nostdlib") // stdlib is passed explicitly. + listOf( + "-nostdlib", // stdlib is passed explicitly. + "-Xsuppress-version-warnings", // Don't fail on language version warnings. + "-Werror" // Halt on any unexpected warning. + ) ) private val DEFAULT_EXTRAS = WithTestRunnerExtras(TestRunnerType.DEFAULT) diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/NativeTestSupport.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/NativeTestSupport.kt index 4bd485b1079..66a13d03887 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/NativeTestSupport.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/NativeTestSupport.kt @@ -461,7 +461,7 @@ private object NativeTestSupport { val config = when (mode) { UsePartialLinkage.Mode.DISABLED -> PartialLinkageConfig(PartialLinkageMode.DISABLE, PartialLinkageLogLevel.ERROR) - UsePartialLinkage.Mode.ENABLED_WITH_WARNING -> PartialLinkageConfig(PartialLinkageMode.ENABLE, PartialLinkageLogLevel.WARNING) + UsePartialLinkage.Mode.DEFAULT -> PartialLinkageConfig(PartialLinkageMode.ENABLE, PartialLinkageLogLevel.DEFAULT) UsePartialLinkage.Mode.ENABLED_WITH_ERROR -> PartialLinkageConfig(PartialLinkageMode.ENABLE, PartialLinkageLogLevel.ERROR) } diff --git a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/UsePartialLinkage.kt b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/UsePartialLinkage.kt index 5553cdcedb8..fa4c3155b97 100644 --- a/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/UsePartialLinkage.kt +++ b/native/native.tests/tests/org/jetbrains/kotlin/konan/blackboxtest/support/group/UsePartialLinkage.kt @@ -7,5 +7,5 @@ package org.jetbrains.kotlin.konan.blackboxtest.support.group @Target(AnnotationTarget.CLASS) internal annotation class UsePartialLinkage(val mode: Mode) { - enum class Mode { DISABLED, ENABLED_WITH_WARNING, ENABLED_WITH_ERROR } + enum class Mode { DISABLED, DEFAULT, ENABLED_WITH_ERROR } }