From 78ef58f59da3987324fb31893059abed82f35605 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Tue, 29 Aug 2023 05:02:35 +0200 Subject: [PATCH] [Generator] Do not use explicit final modifier in Native primitive classes 'final' is the default modality, safe to omit --- .../builtins/primitives/NativePrimitivesGenerator.kt | 4 ---- generators/builtins/primitives/builders.kt | 2 -- .../runtime/src/main/kotlin/kotlin/Primitives.kt | 12 ++++++------ 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/generators/builtins/primitives/NativePrimitivesGenerator.kt b/generators/builtins/primitives/NativePrimitivesGenerator.kt index a7de18452fd..db0e82cbe26 100644 --- a/generators/builtins/primitives/NativePrimitivesGenerator.kt +++ b/generators/builtins/primitives/NativePrimitivesGenerator.kt @@ -16,10 +16,6 @@ class NativePrimitivesGenerator(writer: PrintWriter) : BasePrimitivesGenerator(w import("kotlin.native.internal.*") } - override fun ClassBuilder.modifyGeneratedClass(thisKind: PrimitiveType) { - this.isFinal = true - } - override fun CompanionObjectBuilder.modifyGeneratedCompanionObject(thisKind: PrimitiveType) { if (thisKind !in PrimitiveType.floatingPoint) { annotations += "CanBePrecreated" diff --git a/generators/builtins/primitives/builders.kt b/generators/builtins/primitives/builders.kt index f9878f806ce..1620e0cfd2e 100644 --- a/generators/builtins/primitives/builders.kt +++ b/generators/builtins/primitives/builders.kt @@ -133,7 +133,6 @@ internal class FileBuilder(private val builtBy: String) : PrimitiveBuilder { } internal class ClassBuilder : AnnotatedAndDocumented(), PrimitiveBuilder { - var isFinal: Boolean = false var name: String = "" private var primaryConstructor: PrimaryConstructorBuilder = PrimaryConstructorBuilder() private var secondaryConstructor: SecondaryConstructorBuilder? = null @@ -175,7 +174,6 @@ internal class ClassBuilder : AnnotatedAndDocumented(), PrimitiveBuilder { this.printDocumentationAndAnnotations() append("public ") - if (isFinal) append("final ") appendLine("class $name ${primaryConstructor.build()}: ${superTypes.joinToString()} {") secondaryConstructor?.let { diff --git a/kotlin-native/runtime/src/main/kotlin/kotlin/Primitives.kt b/kotlin-native/runtime/src/main/kotlin/kotlin/Primitives.kt index d6db289fd46..3178b982ac2 100644 --- a/kotlin-native/runtime/src/main/kotlin/kotlin/Primitives.kt +++ b/kotlin-native/runtime/src/main/kotlin/kotlin/Primitives.kt @@ -13,7 +13,7 @@ package kotlin import kotlin.native.internal.* /** Represents a 8-bit signed integer. */ -public final class Byte private constructor() : Number(), Comparable { +public class Byte private constructor() : Number(), Comparable { @CanBePrecreated companion object { /** @@ -446,7 +446,7 @@ public final class Byte private constructor() : Number(), Comparable { } /** Represents a 16-bit signed integer. */ -public final class Short private constructor() : Number(), Comparable { +public class Short private constructor() : Number(), Comparable { @CanBePrecreated companion object { /** @@ -877,7 +877,7 @@ public final class Short private constructor() : Number(), Comparable { } /** Represents a 32-bit signed integer. */ -public final class Int private constructor() : Number(), Comparable { +public class Int private constructor() : Number(), Comparable { @CanBePrecreated companion object { /** @@ -1361,7 +1361,7 @@ public final class Int private constructor() : Number(), Comparable { } /** Represents a 64-bit signed integer. */ -public final class Long private constructor() : Number(), Comparable { +public class Long private constructor() : Number(), Comparable { @CanBePrecreated companion object { /** @@ -1848,7 +1848,7 @@ public final class Long private constructor() : Number(), Comparable { } /** Represents a single-precision 32-bit IEEE 754 floating point number. */ -public final class Float private constructor() : Number(), Comparable { +public class Float private constructor() : Number(), Comparable { companion object { /** * A constant holding the smallest *positive* nonzero value of Float. @@ -2259,7 +2259,7 @@ public final class Float private constructor() : Number(), Comparable { } /** Represents a double-precision 64-bit IEEE 754 floating point number. */ -public final class Double private constructor() : Number(), Comparable { +public class Double private constructor() : Number(), Comparable { companion object { /** * A constant holding the smallest *positive* nonzero value of Double.