Kotlin v1.3.30 release, JVM-based programming language

Kotlin JVM-based programming language

Kotlin is a statically typed, cross-platform, general-purpose programming language with type inference. Kotlin is designed to interoperate fully with Java, and the JVM version of its standard library depends on the Java Class Library, but type inference allows its syntax to be more concise. Kotlin mainly targets the JVM but also compiles to JavaScript or native code (via LLVM). Kotlin is sponsored by JetBrains, a software development company based in Prague, and is also backed by Google under the Kotlin Foundation.

Kotlin is officially supported by Google for mobile development on Android. Since the release of Android Studio 3.0 in October 2017, Kotlin is included as an alternative to the standard Java compiler. The Android Kotlin compiler lets the user choose between targeting Java 6 or Java 8 compatible bytecode.

Changelog v1.3.30


New Features

  • KT-19664 Allow more permissive visibility for non-virtual actual declarations
  • KT-29586 Add support for Android platform annotations
  • KT-29604 Do not implicitly propagate deprecations originated in Java

Performance Improvements

  • KT-24876 Emit calls to java.lang.Long.divideUnsigned for unsigned types when target version is 1.8
  • KT-25974 ‘when’ by unsigned integers is not translated to tableswitch/lookupswitch
  • KT-28015 Coroutine state-machine shall use Result.throwOnFailure
  • KT-29229 Intrinsify ‘in’ operator for unsigned integer ranges
  • KT-29230 Specialize ‘next’ method call for unsigned integer range and progression iterators


  • KT-7185 Parse import directives in the middle of the file, report a diagnostic instead
  • KT-7237 Parser recovery (angle bracket mismatch)
  • KT-11656 Could not generate LightClass because of ISE from bridge generation on invalid code
  • KT-13497 Better recovery in comma-separated lists in case of missing comma
  • KT-13703 Restore parser better when class is missing from enum declaration
  • KT-13731 Recover parser on value parameter without a type
  • KT-14227 Incorrect code is generated when using MutableMap.set with plusAssign operator
  • KT-19389 Couldn’t inline method call ‘with’
  • KT-20065 “Cannot serialize error type: [ERROR : Unknown type parameter 0]” with generic typealias
  • KT-20322 Debug: member value returned from suspending function is not updated immediately
  • KT-20780 “Cannot serialize error type: [ERROR : Unknown type parameter 0]” with parameterized inner type alias