[Serialization] Suppress OPT_IN errors in all diagnostic tests
This commit is contained in:
committed by
teamcity
parent
84b8ab1f9c
commit
a6d3c6e5c6
+7
-2
@@ -65,8 +65,13 @@ class RegisteredDirectivesBuilder private constructor(
|
||||
}
|
||||
|
||||
private fun <K : Directive, V> MutableMap<K, V>.putWithExistsCheck(key: K, value: V) {
|
||||
val alreadyRegistered = put(key, value)
|
||||
if (alreadyRegistered != null) {
|
||||
val alreadyRegistered = get(key)
|
||||
if (alreadyRegistered == null) {
|
||||
put(key, value)
|
||||
} else if (alreadyRegistered is List<Any?> && value is List<Any?>) {
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
put(key, (alreadyRegistered + value) as V)
|
||||
} else {
|
||||
error("Default values for $key directive already registered")
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
@@ -7,4 +6,4 @@ import kotlinx.serialization.*
|
||||
open class Parent(open val arg: Int)
|
||||
|
||||
@Serializable
|
||||
class Derived(override val arg: Int): Parent(arg)
|
||||
class Derived(override val arg: Int): Parent(arg)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
import kotlinx.serialization.*
|
||||
@@ -26,4 +25,4 @@ enum class ReversedExplicitlyDuplicated {
|
||||
FIRST,
|
||||
SECOND,
|
||||
THIRD
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
import kotlinx.serialization.*
|
||||
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE, -OPT_IN_USAGE
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: test.kt
|
||||
@@ -7,4 +6,4 @@ import kotlinx.serialization.*
|
||||
class Foo(i: Int, val j: Int)
|
||||
|
||||
@Serializer(forClass = Foo::class)
|
||||
object ExternalSerializer
|
||||
object ExternalSerializer
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE, -OPT_IN_USAGE
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
@@ -9,4 +8,4 @@ import java.io.Serializable as JavaSerializable
|
||||
class Data(val x: Int, @Transient val y: String)
|
||||
|
||||
@Serializable
|
||||
class Data2(val x: Int, @Transient val y: String) : JavaSerializable
|
||||
class Data2(val x: Int, @Transient val y: String) : JavaSerializable
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
@@ -9,4 +8,4 @@ import java.io.Serializable as JavaSerializable
|
||||
class Data(val x: Int, <!INCORRECT_TRANSIENT!>@Transient<!> val y: String)
|
||||
|
||||
@Serializable
|
||||
class Data2(val x: Int, @Transient val y: String) : JavaSerializable
|
||||
class Data2(val x: Int, @Transient val y: String) : JavaSerializable
|
||||
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
@@ -17,4 +16,4 @@ class Data2(val x: Int, @Transient val y: String = "a") : JavaSerializable
|
||||
class Data3(val x: Int, @Transient @JavaTransient val y: String = "a") : JavaSerializable
|
||||
|
||||
@Serializable
|
||||
class Data4(val x: Int, @JavaTransient val y: String)
|
||||
class Data4(val x: Int, @JavaTransient val y: String)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
@@ -17,4 +16,4 @@ class Data2(val x: Int, @Transient val y: String = "a") : JavaSerializable
|
||||
class Data3(val x: Int, @Transient @JavaTransient val y: String = "a") : JavaSerializable
|
||||
|
||||
@Serializable
|
||||
class Data4(val x: Int, <!INCORRECT_TRANSIENT!>@JavaTransient<!> val y: String)
|
||||
class Data4(val x: Int, <!INCORRECT_TRANSIENT!>@JavaTransient<!> val y: String)
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
// !USE_EXPERIMENTAL: kotlinx.serialization.ExperimentalSerializationApi
|
||||
@@ -47,4 +46,4 @@ open class B2: A()
|
||||
@Serializable
|
||||
//@I("b")
|
||||
//@I2(E.A, E::class)
|
||||
open class C: B()
|
||||
open class C: B()
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
// This test enshures that analysis ends up without compiler exceptions
|
||||
// !DIAGNOSTICS: -OPT_IN_USAGE
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
class Digest() {
|
||||
@<!OPT_IN_USAGE_ERROR!>Serializer<!>(forClass = Digest::class)
|
||||
@Serializer(forClass = Digest::class)
|
||||
companion <!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>object<!> : KSerializer<Digest> {}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// This test enshures that analysis ends up without compiler exceptions
|
||||
// !DIAGNOSTICS: -OPT_IN_USAGE
|
||||
|
||||
import kotlinx.serialization.*
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -OPT_IN_USAGE_ERROR, -OPT_IN_USAGE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -OPT_IN_USAGE_ERROR, -OPT_IN_USAGE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
@@ -6,4 +5,4 @@ import kotlinx.serialization.*
|
||||
open class NonSerializableParent(val arg: Int)
|
||||
|
||||
@Serializable
|
||||
class Derived(val someData: String): NonSerializableParent(42)
|
||||
class Derived(val someData: String): NonSerializableParent(42)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
@@ -14,4 +13,4 @@ class Inside(val foo: List<NonSerializable>)
|
||||
@Serializable
|
||||
class WithImplicitType {
|
||||
val foo = NonSerializable()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
@@ -14,4 +13,4 @@ class Inside(val foo: List<<!SERIALIZER_NOT_FOUND("NonSerializable")!>NonSeriali
|
||||
@Serializable
|
||||
class WithImplicitType {
|
||||
<!SERIALIZER_NOT_FOUND("NonSerializable")!>val foo = NonSerializable()<!>
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -1,7 +1,6 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
@Serializable
|
||||
class Test(val someData: String, cantBeDeserialized: Int)
|
||||
class Test(val someData: String, cantBeDeserialized: Int)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
@@ -21,4 +20,4 @@ object EnumSerializer: KSerializer<ExplicitlyMarkedEnumCustom> {
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class EnumUsage(val s: SimpleEnum, val m: MarkedNameEnum, val e: ExplicitlyMarkedEnum)
|
||||
data class EnumUsage(val s: SimpleEnum, val m: MarkedNameEnum, val e: ExplicitlyMarkedEnum)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
+1
-2
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: test.kt
|
||||
@@ -8,4 +7,4 @@ import kotlinx.serialization.*
|
||||
interface INonSerializable
|
||||
|
||||
@Serializable
|
||||
sealed interface SealedSerializable
|
||||
sealed interface SealedSerializable
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: test.kt
|
||||
|
||||
Vendored
-1
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -OPT_IN_USAGE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -OPT_IN_USAGE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -OPT_IN_USAGE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-1
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -OPT_IN_USAGE
|
||||
// WITH_STDLIB
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
@@ -9,4 +8,4 @@ data class WithTransients(@Transient val missing: Int) {
|
||||
|
||||
@Transient
|
||||
lateinit var allowTransientLateinitWithoutInitializer: String
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER,-UNUSED_VARIABLE
|
||||
// WITH_STDLIB
|
||||
// FILE: test.kt
|
||||
import kotlinx.serialization.*
|
||||
|
||||
+12
-1
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlinx.serialization.runners
|
||||
|
||||
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
|
||||
import org.jetbrains.kotlin.test.directives.DiagnosticsDirectives.DIAGNOSTICS
|
||||
import org.jetbrains.kotlin.test.directives.FirDiagnosticsDirectives.FIR_DUMP
|
||||
import org.jetbrains.kotlin.test.runners.AbstractDiagnosticTest
|
||||
import org.jetbrains.kotlin.test.runners.AbstractFirDiagnosticTest
|
||||
@@ -15,7 +16,10 @@ import org.jetbrains.kotlinx.serialization.configureForKotlinxSerialization
|
||||
abstract class AbstractSerializationPluginDiagnosticTest : AbstractDiagnosticTest() {
|
||||
override fun configure(builder: TestConfigurationBuilder) {
|
||||
super.configure(builder)
|
||||
builder.configureForKotlinxSerialization()
|
||||
with(builder) {
|
||||
configureForKotlinxSerialization()
|
||||
disableOptInErrors()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,6 +28,7 @@ abstract class AbstractSerializationFirDiagnosticTest : AbstractFirDiagnosticTes
|
||||
super.configure(builder)
|
||||
with(builder) {
|
||||
configureForKotlinxSerialization()
|
||||
disableOptInErrors()
|
||||
|
||||
forTestsMatching("*/diagnostics/*") {
|
||||
configurationForClassicAndFirTestsAlongside()
|
||||
@@ -37,3 +42,9 @@ abstract class AbstractSerializationFirDiagnosticTest : AbstractFirDiagnosticTes
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun TestConfigurationBuilder.disableOptInErrors() {
|
||||
defaultDirectives {
|
||||
DIAGNOSTICS with listOf("-OPT_IN_USAGE", "-OPT_IN_USAGE_ERROR")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user