Skip to content

Releases: JetBrains/kotlin

Kotlin M13 bugfix update

23 Sep 22:40
Compare
Choose a tag to compare
Pre-release

Bugfix update to 0.13.1513

  • ProGuard issues fixed

Kotlin M13

16 Sep 14:03
Compare
Choose a tag to compare
Kotlin M13 Pre-release
Pre-release

What's New

  • Language
    • lateinit properties
    • sealed classes
    • all annotations require @
    • annotation classes named starting with capital letter
    • some former annotations turned into modifiers (data, inline, noinline, tailrec, external, etc.)
    • annotation options: @Target, @Retention, @Repeatable, @MustBeDocumented
    • no requirement to specify return type explicitly for public
    • public by default
    • private on the top level means private to current source file
    • internal visibility checked between modules
    • overload resolution on callable references
    • unambiguous super-calls do not require angle brackets
  • Java interop
    • Java get/set pairs are now seen as properties
    • New layout of class files: each source file is compiled to FileNameKt.class by default
    • @file:JvmName("ClassName") to customize the name of the class
    • @file:JvmMultifileClass to share the same class name across many files in the same package
    • @NotNull and @Nullable types loaded from Java
  • Library
    • fully functional reflection
    • + and - for sets and other collections
    • improved delegates for properties
  • Tools
    • compiler daemon keeps the compiler in memory between builds
    • incremental compilation is smarter with inline functions and privates
    • Java2Kotlin converter supports method references
  • IntelliJ IDEA plugin
    • Pull Members Up/Down refactoring
    • Debugger support for lambdas and inline functions
    • Completion for parameter names and types
    • Highlighting for unused imports
    • Imports are optimized on-the-fly
    • New intentions for for loops

M12 bugfix update

29 Jun 14:49
Compare
Choose a tag to compare
M12 bugfix update Pre-release
Pre-release
build-0.12.613

M12 bugfix update

10 Jun 11:49
Compare
Choose a tag to compare
M12 bugfix update Pre-release
Pre-release
build-0.12.412

Kotlin M12

29 May 12:27
Compare
Choose a tag to compare
Kotlin M12 Pre-release
Pre-release

What's New

  • Language
    • @-based annotation syntax
    • New label syntax (name@)
    • KClass instead of java.lang.Class used in annotations
    • constructor keyword in primary constructors
    • trait replaced with interface
    • New syntax for enums: delimiters and constructor calls
    • Unified Function types
    • Smart casts for local var's
    • Smart casts for public/protected val's within the same module
    • Inlining and non-local returns for function expressions
    • Deprecations/Removals:
      • break and continue in when
      • interfaces that extend classes
      • covariant supertype specialization
      • static type assertions
  • Java Interop
    • Source maps (JSR-45) for better debugging of inline functions
    • Initial support for Annotation Processing (JSR-269)
    • [deprecation] Only value can be passed as positional to Java annotations
  • JavaScript
    • Inlining works between modules
    • Reified parameters
    • Function expressions
    • Secondary constructors
  • JUnit support in Gradle plugin for Android
  • Standard Library
    • kotlin.io
    • new text utilities
    • regular expressions API unified across JVM and JS
    • new collections utilities
    • full list available here
  • IntelliJ IDEA Plugin
    • Introduce Parameter
    • Introduce Lambda Parameter
    • Rename for related declarations (variables, subclasses)
    • @ReplaceWith annotation for deprecated declarations
    • Debugger
      • Evaluate expression for local functions
      • Field Watch Points (only for properties with backing field)
    • Change Package Intention
    • Highlighting exit points of functions
    • Gutter Marks for recursive calls
    • Unused receiver parameter
    • Code style settings for imports (e.g. we can now always import specified packages with '*')
    • Java2Kotlin Converter now offers to update usages in other files
    • Typing '!' when completion list is open inserts negated call (e.g. !foo.isEmpty())
    • Intention actions to change visibility modifiers
    • Intention actions have much better scope of availability now
    • Quick-fix to add parameters from the base class when the superclass' constructor has parameters

Kotlin M11.1

27 Mar 18:16
Compare
Choose a tag to compare
Kotlin M11.1 Pre-release
Pre-release

Bugfix update

Kotlin M11

19 Mar 13:26
Compare
Choose a tag to compare
Kotlin M11 Pre-release
Pre-release
  • Language
  • Reflection
    • Class Literals
    • API for retrieving properties of a class
    • API for converting java.lang.Class <-> KClass etc
  • Java Interop
    • Warnings for annotated Java types
    • Int.MAX_VALUE etc
  • IDE
    • Unused Declarations
    • Change Signature: receiver <-> parameter
    • Function <-> Property
    • Create From Usage: Java interop
    • Create constructor parameter from usage
    • Introduce Property
    • KDoc support
    • Optimize/sort imports
    • Debugger: Evaluate Expression
      • Lambdas
      • Anonymous objects
  • Gradle
    • Java and Kotlin in the same source root
  • Libraries
  • JS
    • Binary Libraries
    • Inlining from linaries
  • Android
    • kotlin-android-extensions eliminate the need in findViewById()

M10.1

26 Dec 10:41
Compare
Choose a tag to compare
M10.1 Pre-release
Pre-release

Bugfix update

  • Multiple fixes and performance tweaks in the IDE
  • Gradle plugin now supports JavaScript
  • Minor tweaks and additions to the Standard Library
  • Better crash reports in the compiler

See M10 release notes here

Kotlin M10

17 Dec 10:58
Compare
Choose a tag to compare
Kotlin M10 Pre-release
Pre-release

What's new:

  • Language
    • Dynamic types (supported only when compiled to JavaScript)
    • Type inference supports capture for use-site variance
    • [breaking change] Reified type parameters for inline-functions
    • [breaking change] varargs are translated to Array<out T> instead of Array<T>
  • Java Interop
    • Static backing fields for properties in objects
    • [platformStatic] supported for properties
    • [native] annotation and JNI supported
    • HotSwap fixed in debugger (used to break because of lambdas)
    • Support for safe calls in assignments: a?.b = c
  • JavaScript Interop
    • Dynamic types (mentioned above)
    • js("string") function to write inline JS code
    • [nativeInvoke], [nativeGetter] and [nativeSetter] annotations
    • Escaping JS-keywords in generated code
    • No "unused" warnings in native declarations
    • -no-stdlib CLI option
  • Standard Library
    • [potentially breaking change] Array.size() and CharSeqence.length() are functions now
    • [potentially breaking change] CharSequence: charAt() and subsequence() introduced, get() is now an extension
    • mapIndexed, withIndex, forEachIndexed
    • [deprecation] size/length/first/head/tail/last properties
    • empty list/set/map singletons
    • comparator functions (compareBy, thenBy)
    • reified API (filterIsInstance, …)
    • componentN functions on collections: val (x, y) = “a=b”.split(“=”)
  • IDE/Compiler
    • Incremental compilation in mixed Kotlin/Java projects
    • Completion inserts casts to run-time types in Evaluate Expression
    • Copy Reference supported for Kotlin classes
    • Create From Usage supports type arguments, classes and packages
    • Change Signature interoperates with Java and supports type parameters
    • Applications runner supports main() function in objects
    • Automatic stdlib updates for JS, support for using library from plugin
    • Maven projects configuration for JS
    • Code Coverage information in editor (in IntelliJ IDEA 14)
    • Completion improvements: inheritors, sorting and highlighting members
    • Performance optimizations: memory in the IDE, parsing time
  • Build Tools
    • Support for new versions of Gradle and Android Studio

Kotlin M9

15 Oct 14:33
Compare
Choose a tag to compare
Kotlin M9 Pre-release
Pre-release

What's new:

  • Language
    • Platform Types
    • [breaking change] Local objects prohibited
    • Non-local returns from inline functions
    • type is no longer a keyword
  • JVM
    • [platformStatic] annotations
    • Byte code size improvements
    • Useless boxing/unboxing elimination
  • JavaScript
    • Language features supported: delegation, callable references, Long and Char, inline functions, multiple catch-blocks
    • [breaking change] Native traits exist only at compile time
    • [breaking change] New name mangling strategy
    • [breaking change] Packages renamed: js.* and js.debug.* -> kotlin.js.*, kotlin.query.* -> jquery.*
    • [breaking change] Changes in println() behavior
  • Incremental compilation in IntelliJ IDEA (experimental)
  • IDE plugin changes
    • Code Duplication detection in Extract Function
    • Create From Usage
    • Completion takes IDE modules into account
    • Find Usage and Rename respect conventions for operator overloading
    • Delegated properties in debugger
    • Completion improvements
  • CLI
    • [breaking change] Command Line options reworked