Raise all deprecations in kotlinx-metadata-jvm to ERROR

as 0.8.0 had them as WARNINGs.

#KT-63157 Fixed
This commit is contained in:
Leonid Startsev
2023-12-14 16:26:36 +01:00
committed by Space Team
parent a1970d3d57
commit 2405d644a3
5 changed files with 17 additions and 19 deletions
@@ -639,7 +639,7 @@ public sealed class KotlinClassMetadata {
*/ */
@JvmStatic @JvmStatic
@JvmOverloads @JvmOverloads
@Deprecated("Use a KotlinClassMetadata.Class instance and its write() member function", level = DeprecationLevel.WARNING) @Deprecated("Use a KotlinClassMetadata.Class instance and its write() member function", level = DeprecationLevel.ERROR)
public fun writeClass( public fun writeClass(
kmClass: KmClass, kmClass: KmClass,
metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION,
@@ -659,7 +659,7 @@ public sealed class KotlinClassMetadata {
*/ */
@JvmStatic @JvmStatic
@JvmOverloads @JvmOverloads
@Deprecated("Use a KotlinClassMetadata.FileFacade instance and its write() member function", level = DeprecationLevel.WARNING) @Deprecated("Use a KotlinClassMetadata.FileFacade instance and its write() member function", level = DeprecationLevel.ERROR)
public fun writeFileFacade( public fun writeFileFacade(
kmPackage: KmPackage, kmPackage: KmPackage,
metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION,
@@ -678,7 +678,7 @@ public sealed class KotlinClassMetadata {
*/ */
@JvmStatic @JvmStatic
@JvmOverloads @JvmOverloads
@Deprecated("Use a KotlinClassMetadata.SyntheticClass instance and its write() member function", level = DeprecationLevel.WARNING) @Deprecated("Use a KotlinClassMetadata.SyntheticClass instance and its write() member function", level = DeprecationLevel.ERROR)
public fun writeLambda( public fun writeLambda(
kmLambda: KmLambda, kmLambda: KmLambda,
metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION,
@@ -697,7 +697,7 @@ public sealed class KotlinClassMetadata {
*/ */
@JvmStatic @JvmStatic
@JvmOverloads @JvmOverloads
@Deprecated("Use a KotlinClassMetadata.SyntheticClass instance and its write() member function", level = DeprecationLevel.WARNING) @Deprecated("Use a KotlinClassMetadata.SyntheticClass instance and its write() member function", level = DeprecationLevel.ERROR)
public fun writeSyntheticClass( public fun writeSyntheticClass(
metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION,
extraInt: Int = 0, extraInt: Int = 0,
@@ -718,7 +718,7 @@ public sealed class KotlinClassMetadata {
@JvmOverloads @JvmOverloads
@Deprecated( @Deprecated(
"Use a KotlinClassMetadata.MultiFileClassFacade instance and its write() member function", "Use a KotlinClassMetadata.MultiFileClassFacade instance and its write() member function",
level = DeprecationLevel.WARNING level = DeprecationLevel.ERROR
) )
public fun writeMultiFileClassFacade( public fun writeMultiFileClassFacade(
partClassNames: List<String>, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION, partClassNames: List<String>, metadataVersion: IntArray = COMPATIBLE_METADATA_VERSION,
@@ -740,7 +740,7 @@ public sealed class KotlinClassMetadata {
@JvmOverloads @JvmOverloads
@Deprecated( @Deprecated(
"Use a KotlinClassMetadata.MultiFileClassPart instance and its write() member function", "Use a KotlinClassMetadata.MultiFileClassPart instance and its write() member function",
level = DeprecationLevel.WARNING level = DeprecationLevel.ERROR
) )
public fun writeMultiFileClassPart( public fun writeMultiFileClassPart(
kmPackage: KmPackage, kmPackage: KmPackage,
@@ -769,7 +769,7 @@ public sealed class KotlinClassMetadata {
@Deprecated( @Deprecated(
"read() throws an error if metadata version is too high. Use either readStrict() if you want to retain this behavior, or readLenient() if you want to try to read newer metadata.", "read() throws an error if metadata version is too high. Use either readStrict() if you want to retain this behavior, or readLenient() if you want to try to read newer metadata.",
ReplaceWith("KotlinClassMetadata.readStrict(annotationData)"), ReplaceWith("KotlinClassMetadata.readStrict(annotationData)"),
DeprecationLevel.WARNING DeprecationLevel.ERROR
) )
public fun read(annotationData: Metadata): KotlinClassMetadata = readMetadataImpl(annotationData, lenient = false) public fun read(annotationData: Metadata): KotlinClassMetadata = readMetadataImpl(annotationData, lenient = false)
@@ -881,7 +881,7 @@ public sealed class KotlinClassMetadata {
* @see Metadata.metadataVersion * @see Metadata.metadataVersion
*/ */
@JvmField @JvmField
@Deprecated("Use JvmMetadataVersion.LATEST_STABLE_SUPPORTED instead", ReplaceWith("JvmMetadataVersion.LATEST_STABLE_SUPPORTED"), DeprecationLevel.WARNING) @Deprecated("Use JvmMetadataVersion.LATEST_STABLE_SUPPORTED instead", ReplaceWith("JvmMetadataVersion.LATEST_STABLE_SUPPORTED"), DeprecationLevel.ERROR)
public val COMPATIBLE_METADATA_VERSION: IntArray = CompilerMetadataVersion.INSTANCE.toArray().copyOf() public val COMPATIBLE_METADATA_VERSION: IntArray = CompilerMetadataVersion.INSTANCE.toArray().copyOf()
} }
@@ -168,7 +168,7 @@ public class KotlinModuleMetadata public constructor(
* @throws IllegalArgumentException if [kmModule] is not correct and cannot be written or if [metadataVersion] is not supported for writing. * @throws IllegalArgumentException if [kmModule] is not correct and cannot be written or if [metadataVersion] is not supported for writing.
*/ */
@UnstableMetadataApi @UnstableMetadataApi
@Deprecated("Use a KotlinModuleMetadata instance and its write() member function", level = DeprecationLevel.WARNING) @Deprecated("Use a KotlinModuleMetadata instance and its write() member function", level = DeprecationLevel.ERROR)
@JvmStatic @JvmStatic
@JvmOverloads @JvmOverloads
public fun write(kmModule: KmModule, metadataVersion: JvmMetadataVersion = JvmMetadataVersion.LATEST_STABLE_SUPPORTED): ByteArray = wrapWriteIntoIAE { public fun write(kmModule: KmModule, metadataVersion: JvmMetadataVersion = JvmMetadataVersion.LATEST_STABLE_SUPPORTED): ByteArray = wrapWriteIntoIAE {
@@ -15,7 +15,6 @@ import kotlin.coroutines.CoroutineContext
import kotlin.reflect.full.primaryConstructor import kotlin.reflect.full.primaryConstructor
import kotlin.test.* import kotlin.test.*
@Suppress("DEPRECATION")
class MetadataSmokeTest { class MetadataSmokeTest {
@Test @Test
@@ -127,11 +126,12 @@ class MetadataSmokeTest {
class L class L
val l = (KotlinClassMetadata.read(L::class.java.getMetadata()) as KotlinClassMetadata.Class).kmClass.name val l = (KotlinClassMetadata.readStrict(L::class.java.getMetadata()) as KotlinClassMetadata.Class).kmClass.name
assertEquals(".kotlinx/metadata/test/MetadataSmokeTest\$jvmInternalName\$L", l) assertEquals(".kotlinx/metadata/test/MetadataSmokeTest\$jvmInternalName\$L", l)
assertEquals("kotlinx/metadata/test/MetadataSmokeTest\$jvmInternalName\$L", l.toJvmInternalName()) assertEquals("kotlinx/metadata/test/MetadataSmokeTest\$jvmInternalName\$L", l.toJvmInternalName())
val coroutineContextKey = (KotlinClassMetadata.read(CoroutineContext.Key::class.java.getMetadata()) as KotlinClassMetadata.Class).kmClass.name val coroutineContextKey =
(KotlinClassMetadata.readStrict(CoroutineContext.Key::class.java.getMetadata()) as KotlinClassMetadata.Class).kmClass.name
assertEquals("kotlin/coroutines/CoroutineContext.Key", coroutineContextKey) assertEquals("kotlin/coroutines/CoroutineContext.Key", coroutineContextKey)
assertEquals("kotlin/coroutines/CoroutineContext\$Key", coroutineContextKey.toJvmInternalName()) assertEquals("kotlin/coroutines/CoroutineContext\$Key", coroutineContextKey.toJvmInternalName())
@@ -141,7 +141,7 @@ class MetadataSmokeTest {
fun lambdaVersionRequirement() { fun lambdaVersionRequirement() {
val x: suspend Int.(String, String) -> Unit = { _, _ -> } val x: suspend Int.(String, String) -> Unit = { _, _ -> }
val annotation = x::class.java.getMetadata() val annotation = x::class.java.getMetadata()
val metadata = KotlinClassMetadata.read(annotation) as KotlinClassMetadata.SyntheticClass val metadata = KotlinClassMetadata.readStrict(annotation) as KotlinClassMetadata.SyntheticClass
assertNotNull(metadata.kmLambda) assertNotNull(metadata.kmLambda)
} }
@@ -186,7 +186,7 @@ class MetadataSmokeTest {
assertFailsWith<IllegalArgumentException> { KotlinClassMetadata.MultiFileClassPart(KmPackage(), "A", mv, 0).write() } assertFailsWith<IllegalArgumentException> { KotlinClassMetadata.MultiFileClassPart(KmPackage(), "A", mv, 0).write() }
assertFailsWith<IllegalArgumentException> { KotlinClassMetadata.SyntheticClass(null, mv, 0).write() } assertFailsWith<IllegalArgumentException> { KotlinClassMetadata.SyntheticClass(null, mv, 0).write() }
KotlinModuleMetadata.write(KmModule(), mv) KotlinModuleMetadata(KmModule(), mv).write()
} }
@Test @Test
@@ -218,7 +218,7 @@ class MetadataSmokeTest {
assertEquals("Lambda <no name provided>", displayName(b::class.java.getMetadata())) assertEquals("Lambda <no name provided>", displayName(b::class.java.getMetadata()))
} }
fun displayName(metadata: Metadata): String = when (val kcm = KotlinClassMetadata.read(metadata)) { fun displayName(metadata: Metadata): String = when (val kcm = KotlinClassMetadata.readStrict(metadata)) {
is KotlinClassMetadata.Class -> "Class ${kcm.kmClass.name}" is KotlinClassMetadata.Class -> "Class ${kcm.kmClass.name}"
is KotlinClassMetadata.FileFacade -> "File facade with functions: ${kcm.kmPackage.functions.joinToString { it.name }}" is KotlinClassMetadata.FileFacade -> "File facade with functions: ${kcm.kmPackage.functions.joinToString { it.name }}"
is KotlinClassMetadata.SyntheticClass -> kcm.kmLambda?.function?.name?.let { "Lambda $it" } ?: "Synthetic class" is KotlinClassMetadata.SyntheticClass -> kcm.kmLambda?.function?.name?.let { "Lambda $it" } ?: "Synthetic class"
@@ -226,5 +226,4 @@ class MetadataSmokeTest {
is KotlinClassMetadata.MultiFileClassPart -> "Multifile class part ${kcm.facadeClassName}" is KotlinClassMetadata.MultiFileClassPart -> "Multifile class part ${kcm.facadeClassName}"
is KotlinClassMetadata.Unknown -> "Unknown metadata" is KotlinClassMetadata.Unknown -> "Unknown metadata"
} }
} }
@@ -298,13 +298,13 @@ public var KmProperty.isVar: Boolean by propertyBooleanFlag(FlagImpl(ProtoFlags.
/** /**
* Indicates that the corresponding property has a getter. * Indicates that the corresponding property has a getter.
*/ */
@Deprecated("Kotlin properties always have getters", ReplaceWith("true"), DeprecationLevel.WARNING) // Deprecated in 0.8.0 @Deprecated("Kotlin properties always have getters", ReplaceWith("true"), DeprecationLevel.ERROR)
public var KmProperty.hasGetter: Boolean by propertyBooleanFlag(FlagImpl(ProtoFlags.HAS_GETTER)) public var KmProperty.hasGetter: Boolean by propertyBooleanFlag(FlagImpl(ProtoFlags.HAS_GETTER))
/** /**
* Indicates that the corresponding property has a setter. * Indicates that the corresponding property has a setter.
*/ */
@Deprecated("Check .setter for nullability instead", ReplaceWith("this.setter != null"), DeprecationLevel.WARNING) // Deprecated in 0.8.0 @Deprecated("Check .setter for nullability instead", ReplaceWith("this.setter != null"), DeprecationLevel.ERROR)
public var KmProperty.hasSetter: Boolean by propertyBooleanFlag(FlagImpl(ProtoFlags.HAS_SETTER)) public var KmProperty.hasSetter: Boolean by propertyBooleanFlag(FlagImpl(ProtoFlags.HAS_SETTER))
/** /**
@@ -25,7 +25,6 @@ public typealias ClassName = String // Not a value class because of Java usages
*/ */
public fun ClassName.isLocalClassName(): Boolean = this.startsWith(".") public fun ClassName.isLocalClassName(): Boolean = this.startsWith(".")
// Deprecated since 0.6.1, should be error in 0.7.0+
@Deprecated( @Deprecated(
"Renamed to isLocalClassName() to avoid confusion with String properties", "Renamed to isLocalClassName() to avoid confusion with String properties",
ReplaceWith("isLocalClassName()"), ReplaceWith("isLocalClassName()"),