Skip to content

Kotlin M8

Pre-release
Pre-release
Compare
Choose a tag to compare
@abreslav abreslav released this 02 Jul 13:13
· 96541 commits to master since this release

What's new:

  • JVM
    • Reflection for properties introduced
    • Inline functions
      • Inlines into objects are supported
      • Default parameter values supported for inline functions
    • Generated code speedups
      • delegated properties work faster now
      • when's with constants are faster due to dedicated bytecode instructions used
    • breaking change Reporting platform signature clashes
      • [platformName] annotation to resolve signature conflicts
    • transient, synchronized and strictfp supported on the JVM
  • JS
    • data classes supported
    • LinkedHashSet/LinkedHashMap supported
  • Language
    • breaking change private in a package now means "in this package and subpackages in the same module"
    • breaking change extension properties can't have backing fields
    • breaking change Bare @ and @@ are no longer available
  • Standard library
    • slice()
    • collection-like operations on strings
    • Map.contains
    • join() for rendering separated lists
    • String.substringBefore/After[Last]
    • String.replaceBefore/After[Last]
    • Appendable.appendln()
    • StringBuilder {}
    • Iterable.merge(other) { (v1,v2)→v }
    • set operations (union, intersect, subtract)
  • IDE
    • IntelliJ IDEA 14 EAP supported
    • Debugger
      • Evaluate expression
      • Smart step into
    • Refactorings
      • Move toplevel declarations to separate file
      • Extract function (not finished, but some cases working)
      • Extract local function
    • Intentions
      • DeMorgan law
      • Flip binary expression (== etc)
      • Split if
      • Replace with operator sign
      • Replace with traditional assignment
      • Replace with infix call
      • Simplify boolean expressions
      • Add/Remove explicit type arguments
      • assert <-> if with throw
      • if <-> ?:
      • !! <-> if
      • make types explicit/implicit in lambda
      • forEach { } <-> for loop
      • string concatenation <-> interpolation
    • Smart completion
      • smarter on overloads
      • callable references (::functionName)
      • lambdas
      • !! and ?: for nullable members
      • anonymous classes (object expressions)
      • constants in when()
    • Formatter improved
    • Structure view shows members of supertypes
    • J2K converter improved
    • Speedups in highlighting and completion
  • Support for new versions of Gradle/Android (0.10, 0.11, 0.12)