Skip to content

Upgrading org.jetbrains.kotlin:kotlin-stdlib-common 0.9 to 1

Breaking0.9.1-native → 1.9.25Breaking70Security1Platform11Deprecated60New482Changed482Fixed3651Other153

Fetching 122 releases from GitHub…61 / 122
BreakingUpgrade verdict

70 breaking changes and 11 platform requirement changes and a security fix.

  • K1 removes JDK 21 getFirst()/getLast() from (Mutable)List interfaces.
  • The @AllowDifferentMembersInActual annotation is removed from the standard library.
  • Removes the reified constraint from Array constructors on platforms where the Array type parameter need not be reified.
  • Removes the ability to import a forward declaration by library package name.
Top 5 of 141 that need code or config changes
Breaking70
K1 removes JDK 21 getFirst()/getLast() from (Mutable)List interfaces.
getFirst()getLast()ListMutableList
Drops @AllowDifferentMembersInActual from stdlib.
@AllowDifferentMembersInActual
Removes the reified constraint from Array constructors on platforms where the Array type parameter need not be reified.
Array
Removes the ability to import a forward declaration by library package name.
Deprecates and removes the KotlinCompilation.source API in the Kotlin Gradle Plugin.
KotlinCompilation.source
Removes kotlinx.coroutines from the classpath of the Kotlin Gradle Plugin.
kotlinx.coroutines
Removes LifecycleAwareProperty from the Kotlin Gradle Plugin lifecycle.
LifecycleAwareProperty
Decommissions and removes the enableEndorsedLibs flag from the Gradle setup.
enableEndorsedLibs
Removes the default parameter value for the AtomicLong constructor in Kotlin/Native.
AtomicLong
Removes the legacy mode of the jvm-abi-gen plugin.
jvm-abi-gen
Removes the "new" Kotlin daemon from the codebase.
Removes KotlinCompile setClasspath and getClasspath methods.
KotlinCompile.setClasspathKotlinCompile.getClasspath
Removes the useCoverage method in Kotlin/JS.
useCoverage
Removes support for webpack 4.
webpack
Removes the Dukat integration from KJS.
Dukat
Removes the old JVM backend.
Removes the kotlin.compiler.execution.strategy system property from the Gradle plugin.
kotlin.compiler.execution.strategy
Removes JvmTarget.JVM_1_6 from the generated Gradle compiler type.
JvmTarget.JVM_1_6
Removes the kapt.use.worker.api property.
kapt.use.worker.api
Removes JVM target version 1.6.
Renames the compiler option useFir to useK2.
useFiruseK2
Removes kotlin2js and kotlin-dce-plugin.
kotlin2jskotlin-dce-plugin
Removes KotlinGradleSubplugin.
KotlinGradleSubplugin
Removes deprecated useExperimentalAnnotation and experimentalAnnotationInUse from the Gradle DSL.
useExperimentalAnnotationexperimentalAnnotationInUse
Removes the deprecated 'kotlinPluginVersion' property in KotlinBasePluginWrapper.
kotlinPluginVersionKotlinBasePluginWrapper
Removes the 'kotlin.parallel.tasks.in.project' build property.
kotlin.parallel.tasks.in.project
Removes deprecated Kotlin Gradle options that were marked for removal after 1.5.
Removes the 'kotlin.useFallbackCompilerSearch' build option.
kotlin.useFallbackCompilerSearch
Removes the option to add source maps in the KJS/IR Gradle plugin.
Removes kotlin-annotations-android and JVM compiler support for @ParameterName, @DefaultValue and @DefaultNull.
@ParameterName@DefaultValue@DefaultNullkotlin-annotations-android
Changes LightClasses so KtLightSimpleModifierList is no longer a parent of KtLightAnnotationForSourceEntry.
KtLightSimpleModifierListKtLightAnnotationForSourceEntry
Prohibits different member scopes for a non-final expect declaration and its actual.
expectactual
Raises the ExperimentalNativeApi opt-in requirement level to ERROR in Native.
ExperimentalNativeApi
Elevates usage of commonMain.dependsOn(anything) to an error.
commonMain.dependsOn()
Elevates usage of jvmWithJava to an error.
jvmWithJava
Replaces the ALL_COMPILE_DEPENDENCIES_METADATA configuration with a set of metadata dependency configurations associated per set.
ALL_COMPILE_DEPENDENCIES_METADATA
Splits the wasm target into wasm-js and wasm-wasi.
wasm-jswasm-wasi
Forbids actual members in expect classes.
Forbids extension calls on inline functional parameters.
Prohibits protected visibility in final expected classes.
Requires an expect fun interface to have an actual fun interface counterpart.
fun interface
Prohibits type unsound Java field assignments.
Forbids implicitly inferring a type variable into an upper bound in builder inference contexts.
Prohibits exposing anonymous types from private inline functions.
Prohibits implicit serializer customization via companion object.
Forbids the @Synchronized annotation on suspend functions.
@Synchronized
Prohibits suspend calls inside autoreleasepool {} on Native.
autoreleasepool
Changes the deprecation level to error for KotlinCompile setClasspath/getClasspath methods.
KotlinCompilesetClasspathgetClasspath
Prohibits upper bound violations with generic typealiases that do not use all type parameters as arguments for the underlying type in supertypes.
Forbids the @Synchronized annotation on suspend functions.
@Synchronized
Reports an error instead of a warning for 'Public property exposes its private type' on primary constructor properties.
Forbids usages of super or super<Some> when it accesses an abstract member.
supersuper<Some>
Prohibits calling Any methods with the super qualifier once overridden as abstract in a superclass.
Anysuper
Reverses reservation of 'yield' as a keyword.
yield
Changes behavior of private constructors of sealed classes.
Prohibits access to members of an enum companion from initializers of that enum's entries.
Removes the kotlin.experimental.coroutines Gradle DSL option.
kotlin.experimental.coroutines
Fails Gradle builds when deprecated kotlinOptions.jdkHome is set.
kotlinOptions.jdkHome
Prohibits access to class members in the super constructor call of its companion and nested object.
Prohibits @JvmField on a primary constructor property that overrides an interface property.
@JvmField
Prohibits using the old JVM backend with language version 1.6 or higher.
Forbids protected constructor calls from public inline functions.
Prohibits super calls in public-API inline functions.
Prohibits declarations of repeatable annotation classes whose container annotation violates the JLS.
Reports an error on declaration of a repeatable annotation class with a nested class named Container.
Container
Prohibits using dots in identifiers on Kotlin/Native.
Raises the deprecation level of KotlinGradleSubplugin to ERROR.
KotlinGradleSubplugin
Forbids using OptIn markers on local variables, value parameters or fields.
OptIn
Forbids using OptIn markers on types or type parameters.
OptIn
Forbids cinterop commonization when hierarchical commonization is turned off.
cinterop
Security1
Protects system properties that can contain sensitive data.
Platform11
Supports Xcode 15.0 frameworks as Kotlin/Native platform libraries.
Bumps the minimal supported AGP version to 4.2.2.
AGP
Updates Kotlin/Wasm to support Gradle 8.
Bumps the minimal supported Gradle version to 6.8.3.
Gradle
Sets minimal supported Android Gradle plugin version to 3.6.4.
Bumps minimal supported Gradle version to 6.7.1.
Requires Xcode 13 for building the Kotlin/Native compiler.
KJS supports Apple Silicon for node distribution download.
Adds support for Xcode 13 SDKs in Kotlin/Native.
Adds Gradle 7 support for Multiplatform.
Updates the minimal supported version of the Kotlin Gradle Plugin to 6.1.
Deprecated59
Implements deprecation for open val with backing field and deferred initialization in K1.
Deprecates enumValues and replaces it with enumEntries in the standard library.
enumValuesenumEntries
Updates deprecations in native atomic classes for 1.9.20.
Deprecates HashSet.getElement() with WARNING in Native.
HashSet.getElement()
Deprecates kotlin.native.SharedImmutable and kotlin.native.concurrent.SharedImmutable.
kotlin.native.SharedImmutablekotlin.native.concurrent.SharedImmutable
Deprecates KmModule.annotations.
KmModule.annotations
Elevates the deprecation of useLibraries to an error.
useLibraries
Deprecates the ios() preset in favor of the target hierarchy.
ios()
Deprecates dependsOn edges ending at declared source sets of platform compilations.
dependsOn
Deprecates platform, enforcedPlatform and related Gradle DependencyHandler methods in KotlinDependencyHandler.
platformenforcedPlatformKotlinDependencyHandlerDependencyHandler
Deprecates with ERROR the JvmDefault annotation and old -Xjvm-default modes.
JvmDefault-Xjvm-default
Adds deprecation warning for missing PRIVATE_CLASS_MEMBER_FROM_INLINE error.
PRIVATE_CLASS_MEMBER_FROM_INLINE
Deprecates and makes open Number.toChar().
Number.toChar()
Deprecates and removes the Enum.declaringClass synthetic property.
Enum.declaringClass
Deprecates ClassBuilderInterceptorExtension.interceptClassBuilderFactory and provides another method without dependency on K1.
ClassBuilderInterceptorExtension.interceptClassBuilderFactory
Deprecates external enum declarations in Kotlin/JS.
external enum
Deprecates declaring expect and actual counterparts of the same class in one module.
expectactual
Deprecates redundant public declarations in kotlin.native.concurrent.
kotlin.native.concurrent
Marks Native Worker and related APIs as obsolete.
Worker
Deprecates the kotlin.jvm.Volatile annotation on platforms other than JVM.
kotlin.jvm.Volatile
Deprecates incorrect callable references resolution behavior for KT-54316.
Deprecates @Synchronized on platforms other than JVM.
@Synchronized
Deprecates the "legacy" mode of the jvm-abi-gen plugin.
jvm-abi-gen
Deprecates commonMain.dependsOn(anything) in user scripts.
commonMain.dependsOn()
Deprecates useLibraries.
useLibraries
Marks the LEGACY and BOTH constants of KotlinJsCompilerType and KotlinJsCompilerTypeHolder as deprecated in 1.8.
KotlinJsCompilerTypeKotlinJsCompilerTypeHolderLEGACYBOTH
Deprecates pre-HMPP flags.
Adds an IDE notification that JPS and Maven support for Kotlin/JS is deprecated.
Reviews deprecations in stdlib for 1.8.
Undeprecates the kotlinOptions DSL.
kotlinOptions
Deprecates KotlinOptions in the AbstractKotlinCompilation class.
KotlinOptionsAbstractKotlinCompilation
Deprecates and deletes downloading pod dependencies by direct link.
Deprecates the enableEndorsedLibs flag in Gradle.
enableEndorsedLibs
Deprecates infix calls of functions named suspend with a dangling function literal.
suspend
Adds a warning about the future change of the default linking type of frameworks provided via the CocoaPods plugin.
Deprecates using non-exhaustive if and when expressions on the right-hand side of elvis.
Deprecates computing constant values of complex boolean expressions in when branches and loop conditions.
Provides a Gradle Kotlin/DSL friendly deprecated classpath property in the KotlinCompiler task.
KotlinCompiler
Deprecates the kotlin.compiler.execution.strategy system property in Gradle.
kotlin.compiler.execution.strategy
Adds a deprecation warning for private constructors of sealed classes.
Adds deprecation for an invalid if used as an expression on the right-hand side of an elvis operator.
Deprecates the kotlin.experimental.coroutines Gradle DSL option and the kotlin.coroutines property.
kotlin.experimental.coroutineskotlin.coroutines
Deprecates confusing grammar in when-with-subject.
Deprecates the 'kapt.use.worker.api' property.
kapt.use.worker.api
Deprecates calls to suspend-named functions with a single dangling lambda argument.
Implements deprecation of computing constant values of complex boolean expressions in when condition branches and loop conditions.
Reviews deprecations in the standard library for 1.6.
Deprecates some of the JS-only standard library API.
Deprecates appendln in favor of appendLine.
appendlnappendLine
Deprecates the Gradle option KotlinJvmOptions.useIR since 1.5.
KotlinJvmOptions.useIR
Deprecates computing constant values for complex boolean expressions in when condition branches and loop conditions.
when
Deprecates (V)::a reference resolution to companion in FE 1.0.
Deprecates the -Xuse-experimental compiler flag.
-Xuse-experimental
Deprecates the 'kotlin.parallel.tasks.in.project' build property.
kotlin.parallel.tasks.in.project
Deprecates target.compilations in the Gradle plugin.
target.compilations
Deprecates the JvmDefault annotation and old -Xjvm-default modes.
JvmDefault-Xjvm-default
Deprecates kotlin.Metadata.bytecodeVersion and avoids using it in the compiler.
kotlin.Metadata.bytecodeVersion
Deprecates super calls in public API inline functions.
Deprecates the Gradle options includeRuntime, noStdlib and noReflect.
includeRuntimenoStdlibnoReflect