Learn how to install Kotlin 1.6.0-M1.
Changelog
Android
KT-48019
Bundle Kotlin Tooling Metadata into apk artifactsKT-47733
JVM / IR: Android Synthetic don't generate _findCachedViewById function
Compiler
New Features
KT-12794
Allow runtime retention repeatable annotations when compiling under Java 8KT-47984
In-place arguments inlining for @InlineOnly functionsKT-48194
Try to resolve calls where we don't have enough type information, using the builder inference despite the presence of the annotationKT-26245
Add ability to specify generic type parameters as not-nullKT-45949
Kotlin/Native: Improve bound check eliminationKT-47699
Support programmatic creation of class annotations and corresponding feature flag on JVMKT-47736
Support conversion from regular functional types to suspending ones in JVM IRKT-39055
Support property delegate created via synthetic method instead of field
Performance Improvements
KT-33835
Bytecode including unnecessary null checks for safe calls where left-hand side is non-nullableKT-41510
Compilation of kotlin html DSL is still too slowKT-48211
We spend a lot of time in ExpectActual declaration checker when there is very small amount of actual/expect declarationKT-39054
Optimize delegated properties which call get/set on the given KProperty instance on JVMKT-47918
JVM / IR: Performance degradation with const-bound for-cyclesKT-47785
Compilation time increased when trying to compile AssertJ DB expression in 1.5.21KT-46615
Don't generate nullability assertions in methods for directly invoked lambdas
Fixes
KT-48523
Kotlin/Native: cross-compilation from Linux to MinGW not working whenplatform.posix
is usedKT-48295
JVM / IR: VerifyError: Bad access to protected data in getfieldKT-48440
JVM IR: Missing checkcast in generated bytecode causes VerifyError in Kotlin 1.5.30KT-48794
Breaking change in 1.5.30: Builder inference lambda contains inapplicable calls so {1} cant be inferredKT-48653
Warnings on non-exhaustive when statements missing in some cases with 1.6KT-48394
JVM: Invalid locals caused by unboxing bytecode optimizationKT-48380
kotlin.RuntimeException: Unexpected receiver typeKT-47855
Kotlin/Native: compilation fails due to Escape AnalysisKT-48291
False positive [ACTUAL_MISSING] Declaration must be marked with 'actual' when implementing actual interfaceKT-48613
Kotlin/Native fails to compile debug binaries for watchosArm64 targetKT-48618
Enable by default "suspend conversion" feature in 1.6KT-48543
Native compiler crashes because of bridges for $default stubsKT-47328
JVM / IR: NoSuchFieldError with missing CHECKCASTKT-47638
Drop EXPERIMENTAL_IS_NOT_ENABLED diagnosticKT-48349
OptIn markers are forbidden on local variable / value parameter / property getter only in presence of explicit Target annotationKT-48589
KotlinTypeRefiner is lost, leading to TYPE_MISMATCH and OVERLOAD_RESOLUTION_AMBIGUITY issues with MPP projectsKT-48615
Inconsistent behavior with integer literals overflow (Implementation)KT-47937
Implement deprecation of computing constant values of complex boolean expressions in when condition branches and conditions of loopsKT-47772
False negative WRONG_ANNOTATION_TARGET on type argument to function callKT-48552
Kotlin/Native: iosArm64 debug build fails in 1.6.0-M1-139KT-46182
Native: prohibit using dots in identifiersKT-47917
JVM: "UTF8 string too large" caused by a big stringKT-46230
JVM IR: "IllegalArgumentException: Null argument in ExpressionCodegen for parameter VALUE_PARAMETER MOVED_DISPATCH_RECEIVER" with value class overriding function with default parameterKT-48302
FIR: Investigate not-null assertion on generic Java methodKT-47422
-Xjspecify-annotations: If a class has a@Nullable
type-parameter bound, Kotlin should still treat some users' type arguments as platform typesKT-48500
AE: "Last parameter type of suspend function must be Continuation, but it is kotlin.coroutines.experimental.Continuation" forkotlin-stdlib-common
libraryKT-48469
Problem with properties lazy initialization while using kotlinx.serialization pluginKT-48432
Regression in IntRange.contains (and probably other ranges too) when used in-placeKT-48361
INTEGER_OPERATOR_RESOLVE_WILL_CHANGE is not reported in some positionsKT-44855
"AssertionError: SyntheticAccessorLowering should not attempt to modify other files" on smart cast of protected field ownerKT-47499
JVM / IR: java.lang.VerifyError: Bad access to protected data in invokevirtual when trying to clone the result of lambda invocation that is "this" in an extension functionKT-46451
JVM Debugging: stepping on finally block end brace line before stepping into finally codeKT-48329
It's impossible to infer a type variables based on several builder inference lambdasKT-48193
Don't use the builder inference for calls which can be resolved without itKT-46450
JVM Debugging: some break statements in catch blocks have no line numbers and you cannot set breakpoints on themKT-48172
"IllegalStateException: Cannot serialize error type: [ERROR : ]" in 1.5.21 with java kotlin interopKT-48262
"Inconsistent type" with JSpecify @NullMarkedKT-46697
IllegalStateException: IrTypeAliasSymbol expected: Unbound public symbol for public kotlinx.coroutines/CancellationException|null[0] compiling KMM module for Kotlin/Native with Kotlin 1.5KT-47285
IR deserialization exception when dependency KLIB has class instead of typealiasKT-41378
Compilation failed: Deserializer for declaration public kotlinx.coroutines/SingleThreadDispatcher|null[0] is not foundKT-47988
JVM / IR: "VerifyError: Bad type on operand stack" when invoking apply with a local method referenceKT-47833
False positive "Type argument is not within its bounds " with upcasting in 1.5.30-M1KT-47911
Native compiler on ios_arm64 target generates movi.2d instructions, which are mishandled by Apple hardwareKT-14392
Repeated annotation with use site target is not detected for getter and setterKT-47493
Missed frontend diagnostic in try/catchKT-47597
JVM IR: if statement doesn't eval correctly on 1.5.20 possible nullable type differences.KT-47922
False negative type mismatch on empty when as last statement of lambdaKT-47830
Some code doesn't compile with unrestricted builder inferenceKT-34594
Do not generate fake debugger variables initialization for @InlineOnly functionsKT-42139
NI: NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER for emptyList / listOf (with no arguments) / emptyMap / mapOf (with no arguments) inside if block insidesequence
blockKT-47749
Incorrect scope of a local variable inside the coroutineKT-47527
JVM / IR ClassCastException: "kotlin.Unit cannot be cast to java.lang.String"KT-47941
"IllegalStateException: Expected some types" on a call with several excepted type constraintsKT-47854
"IllegalArgumentException: Type is inconsistent" with Android's@Nullable
annotation starting in Kotlin 1.5.20KT-47899
"AssertionError: Intersection type should not be marked nullable" with 1.5.21KT-47846
Stack overflow when handling enhanced recursive type parameterKT-47747
Introduce specific error for calls which could be resolved only with unrestricted builder inferenceKT-47840
JVM / IR: "IllegalStateException: No mapping for symbol: VALUE_PARAMETER name: x" in nested local functions with recursive callsKT-46448
JVM Debugging: Locals in finally blocks not always duplicated when the finally block isKT-47396
<?> in @NullMarked code should permit nullable typesKT-47716
JVM / IR: NoSuchMethodError when trying to get MAX_VALUE from ULong in non-trivial try/finally contextKT-47762
JVM / IR: Properties with the same signatures in inline class and its companion object crashes the compiler with NullPointerExceptionKT-47729
False positive INTEGER_OPERATOR_RESOLVE_WILL_CHANGE warning: "expression will be resolved to Int in future releases"KT-47741
JVM / IR: VerifyError: Bad type on operand stack with iterator and invoking method reference to IntIteratorKT-43696
ClassFormatError on @JvmStatic external fun in interface companion objectKT-47715
JVM / IR, R8: External getter cannot be represented in dex formatKT-47744
UninitializedPropertyAccessException compiler exception on nested builder inference callsKT-47724
Type inference: False positive "Returning type parameter has been inferred to Nothing implicitly"KT-47684
Add warning onis
checks which are always falseKT-47685
False positive CAST_NEVER_SUCCEEDS on variable of intersection typeKT-32188
NI: False positive "This cast can never succeed"KT-35687
NI: Poor cast can never succeed [CAST_NEVER_SUCCEEDS]KT-41331
False negative USELESS_IS_CHECK with nullKT-47609
JVM IR: "AssertionError: Unexpected number of type arguments" when compiling an extension property with annotation and it extends a value class with a generic parameterKT-47589
Using RequiresOptIn annotation on constructor property results in error even if the annotation has no VALUE_PARAMETER targetKT-47413
FIR: Rework FirDelegatedScopeKT-47120
JVM IR: NoClassDefFoundError when there are an extension and a regular function with the same nameKT-47492
Illegal use of DUP
IDE. Gradle Integration
KT-47463
MPP: Import fails withTask 'runCommonizer' not found in root project
if Kotlin configured only in module
IDE. JS
KT-47557
KJS: With NPM dependency IDEA import fails when performed before Gradle build
IDE. Multiplatform
KT-47604
kotlin-stdlib-common leaks into dependencies of Android-specific source sets
JavaScript
KT-47700
Support instantiation of annotation classes on JSKT-46204
KJS / IR: SupportSuspendFunctionN
as super typeKT-48344
KJS / IR: incorrect call with vararg argument from suspend functionKT-46551
KJS / IR: Add a basic sourcemap generationKT-47751
Kotlin/JS: IR + IC: "argument has no effect without source map" warnings on build
Libraries
KT-48587
Deprecate some of JS-only stdlib APIKT-48584
Introduce JVM readln() and readlnOrNull() top-level functionsKT-39328
Make builder collection implementations serializableKT-47676
K/JS: MatchResult.next() returns no expected next match if called aftermatchEntire
KT-39166
Nothing is silently mapped to Void in arguments of the type passed to typeOf
Native
KT-48566
ExceptionInInitializerError when configuring Gradle project with kotlin-multiplatform plugin on a host unsupported by Kotlin/NativeKT-48591
Kotlin/Native: Char.isHighSurrogate and Char.isLowSurrogate return wrong result for macosArm64 and iosArm64 with compiler cache enabledKT-48491
CInterop broke in Kotlin 1.5.30KT-48039
Native: support shaded (aka embeddable) compiler jar in Gradle pluginKT-42693
Remove dependency on ncurses5 libraryKT-47424
StackOverflowError in IR hashCode() methods compiling KMM module for Kotlin/Native with Kotlin 1.5.0+
Native. C Export
KT-47209
kotlin-native fails to generate valid C header if a setter takes anonymous parameter (_)
Native. C and ObjC Import
KT-48074
Native: cinterop: __flexarr support
Native. ObjC Export
KT-47809
Kotlin/Native: ObjC-export module name usage in klib compilation
Native. Platforms
KT-43024
Kotlin/Native: Windows as cross-compilation target
Native. Runtime
KT-48452
Kotlin/Native: Support thread state switching in termination handlers for the new MM
Native. Runtime. Memory
KT-48143
Kotlin/Native: test fails with assert with new MM and state checkerKT-48364
Uninitialized top-level properties in new MMKT-44283
staticCFunction with CValue parameter crashes when invoked off the main thread
Native. Stdlib
KT-47662
[Native, All platforms] Incorrect parsing of long strings to Float and Double
Reflection
KT-47650
KClass::nestedClasses throws ClassCastException for script classes with type aliasesKT-45066
Support flexible types (nullability, mutability, raw) in typeOfKT-35877
typeOf<MutableList<>> cannot be distinguished from typeOf<List<>> in Kotlin/JVM
Tools. CLI
KT-47623
Deprecate -Xuse-experimentalKT-32376
“no main manifest attribute” on running the jar for cli-compiled Kotlin objects with main functionKT-48026
Add the compiler X-flag to enable self upper bound type inferenceKT-47640
CLI: support -option=value format as for -Xoption=valueKT-47099
Add a stable compiler argument for opt-in requirements as soon as they are stableKT-30778
kotlin-compiler.jar contains shaded but not relocated kotlinx.coroutines
Tools. Commonizer
New Features
KT-47433
[Commonizer] Commonize functions/properties with TA/Class types in signatureKT-47691
[Commonizer] Commonizevar
andval
propertiesKT-47434
[Commonizer] Commonize parameterized (type-alias + class) typesKT-47432
[Commonizer] Commonize (type-alias + class) types used in functions
Fixes
KT-47523
MPP: Unable to resolve c-interop dependency if platform is included in an intermediate source set with the only targetKT-48278
[Commonizer] platform.posix.usleep not commonized in sqliterKT-46691
MPP: Type mismatch for hierarchically commonized typealiasesKT-47221
C-interop commonization fails if few targets reuse same source setKT-47775
Commonizer don't run for shared native code if test source set depends on mainKT-47053
MPP: Unable to resolve c-interop commonized code from shared test source setKT-48118
Commonized c-interop lib is not attached to common main source setKT-47641
Enabled cInterop commonization triggers native compilation during Gradle sync in IDEKT-47056
MPP: Change naming for folder with commonized c-interop libraries
Tools. Compiler Plugins
KT-40340
jvm-abi-gen plugin: failure with Android D8 (Dexer) toolKT-40133
jvm-abi-gen plugin: fails for inline function containing apply block with anonymous objectKT-28704
jvm-abi-gen plugin: avoid calling codegen twice per moduleKT-48111
JVM / IR: "IllegalAccessError: tried to access method" with NoArg plugin and sealed class
Tools. Gradle
Fixes
KT-45202
Kapt crashes with java.io.UTFDataFormatExceptionKT-46719
Remove 'kotlin.useFallbackCompilerSearch' build optionKT-27687
Empty directories in source set causes gradle cache miss for KotlinCompile taskKT-48226
Kotlin toolchain does not set 'jvmTarget' for Kotlin tasks on configuration cache reuseKT-47792
KGP should ignore ProjectDependency when customize kotlin DependenciesKT-47867
Replace usages of IncrementalTaskInputs with InputChangesKT-47940
Kotlin JVM toolchain breaks configuration cacheKT-47520
Kotlin and Java target compatibility check produces false positive on using Gradle toolchainsKT-46978
Duplicate resource errors on gradle 7 with multi-module multiplatform project with withJavaKT-47635
Kotlin version conflict on using 'noarg' Gradle pluginKT-47636
Kotlin version conflict on using 'sam-with-receiver' Gradle pluginKT-47354
Kotlin version conflict on using 'allopen' Gradle pluginKT-46972
Migrate Kotlin repo to use Gradle toolchain feature
Tools. Gradle. JS
KT-48332
Make NodeJsSetupTask and YarnSetupTask not cacheableKT-48241
KJS / Gradle: NPM test dependency may break Gradle configuration cacheKT-32071
Possibility to disable downloading of Node.js and YarnKT-37895
KJS: NPM Post-install Scripts sometimes print "node: not found"KT-34985
kotlin-gradle-plugin: Should align ways NodeJs and Yarn are downloaded
Tools. Gradle. Multiplatform
KT-46343
[Commonizer] Use lockfile for NativeDistributionCommonizationCacheKT-48427
Execution failed for task ':commonizeNativeDistribution'. > java.io.FileNotFoundException lock (No such file or directory)KT-48513
Commonized platform libraries are unresolved in modules for new hierarchical MPP flagKT-48138
CInteropCommonizer: Missing commonization request if test source set has different targets than associated mainKT-35832
Gradle: MPP plugin operates with -Xuse-experimental and not with -Xopt-inKT-38111
Gradle DSL: rename useExperimentalAnnotation functionKT-47612
Task :buildKotlinToolingMetadata is incompatible with Gradle configuration cacheKT-47611
Task :generateMetadataFileForKotlinMultiplatformPublication is incompatible with Gradle configuration cache
Tools. Gradle. Native
KT-47362
Cocoapods plugin: add error reporting for case when pod is not installed on user machineKT-37513
CocoaPods Gradle plugin: Support building tests from terminal for projects depending on podsKT-47078
Support Apple Silicon in cocoapods gradle plugin
Tools. JPS
KT-46804
Slow Kotlin incremental build: LookupStorage operations
Tools. Scripts
KT-48025
JVM / IR / Script: IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER caused by method tnat returns outer functionKT-47927
Script: memory leak with new enginesKT-48303
main.kts script fails to detect vanished dependencies if run from the cacheKT-48177
Scripts: OutOfMemoryException with circular@file:Import
KT-46645
Scripts: "IllegalStateException: No mapping for symbol: VALUE_PARAMETER INSTANCE_RECEIVER" caused by get accessorKT-43917
Gradle dependency conflict with resolutionStrategy failOnVersionConflict and kotlin 1.4
Tools. kapt
KT-47853
KaptWithoutKotlincTask
eagerly resolves dependencies during construction/configuration and can cause deadlocksKT-48195
Kapt causes dead lock in DefaultFileLockManagerKT-47347
KAPT: Stub generation in Gradle cache is not consistently relocatable
Checksums
File | Sha256 |
---|---|
kotlin-compiler-1.6.0-M1.zip | 05bf439028c3454a861211d289aad1cd505e93a7f75c810406b6cf8ccdf80b6d |
kotlin-native-linux-x86_64-1.6.0-M1.tar.gz | 3e469c0c26f0dc33f8102d3da50a42cb83682564ab54eccfbed29c539f6f09ec |
kotlin-native-macos-x86_64-1.6.0-M1.tar.gz | 271b08ec3cf185533ce96b45ad39760081f6bd9eb8256b81111bf197a05a67b8 |
kotlin-native-macos-aarch64-1.6.0-M1.tar.gz | ef650577f13e4ee6c03c164c9730e93214f162ba0a5496cd3befc99de557f39f |
kotlin-native-windows-x86_64-1.6.0-M1.zip | bfea3d6ed92e3f6614179350a71fae74ff13f3a1d7e9c7e274478d90c9788238 |