Pre-release

@udalov udalov released this Jun 26, 2018 · 4047 commits to master since this release

Assets 3

Compiler

  • KT-23413 IndexOutOfBoundsException on local delegated properties from provideDelegate if there's at least one non-local delegated property
  • KT-23742 Optimise inline class redundant boxing on return from inlined lambda
  • KT-24513 High memory usage in Kotlin and 2018.1
  • KT-24679 KotlinUCallExpression doesn't resolve callee if it is an inline method
  • KT-24808 NI: nested withContext call is reported with Suspension functions can be called only within coroutine body error
  • KT-24859 Disallow calls of functions annotated with receiver annotated with @RestrictsSuspension in foreign suspension context

IDE

New Features

  • KT-24827 Allow to do an additional check for Kotlin plugin update before an actual install

Performance Improvements

  • KT-20924 Slow KtLightAbstractAnnotation.getClsDelegate() lightAnnotations.kt

Fixes

  • KT-4311 "Override members" works wrong when function is extension
  • KT-13948 IDE plugins: improve description
  • KT-17350 Implement members from interface fails when one of the generic types is unresolved
  • KT-17668 Edit Configuration dialog doesn't have a button for choosing the "Main class" field
  • KT-19102 Wrong equals() and hashCode() code generated for arrays of arrays
  • KT-21863 Imported typealias to object declared as "Unused import directive" when only referring to methods
  • KT-23272 Git commit not working
  • KT-23407 Pasting callable reference from different package suggests imports, but inserts incompilable FQN
  • KT-23456 UAST: Enum constant constructor call arguments missing from Kotlin enums
  • KT-23942 Fix building light-classes for MPP project containing multi-file facades
  • KT-24072 Kotlin SDK appears as many times as there are modules in the project
  • KT-24412 Kotlin create project wizard: Kotlin/JS no SDK
  • KT-24933 please remove usages of com.intellij.psi.search.searches.DirectClassInheritorsSearch#search(com.intellij.psi.PsiClass, com.intellij.psi.search.SearchScope, boolean, boolean) deprecated long ago
  • KT-24958 Escaping goes insane when editing interpolated string in injected fragment editor
  • KT-25024 Wrong resolve scope while resolving java.lang.String PsiClassReferenceType

IDE. Android

  • KT-23040 Wrong run configuration classpath in a mixed Java/Android project
  • KT-24321 Actual implementations from Android platform module are wrongly reported with no corresponding expected declaration in IDE
  • KT-25018 Exception Dependencies for org.jetbrains.kotlin.resolve.calls.* cannot be satisfied on a simple project in AS 3.2 Canary

IDE. Code Style, Formatting

  • KT-14066 Comments on when branches are misplaced
  • KT-25008 Formatter: Use single indent for multiline elvis operator

IDE. Debugger

  • KT-23162 Evaluate expression in multiplatform common test fails with JvmName missing when run in JVM
  • KT-24903 Descriptors leak from KotlinMethodSmartStepTarget

IDE. Decompiler

  • KT-23981 Kotlin bytecode decompiler works in AWT thread

IDE. Gradle

  • KT-24614 Gradle can't get published versions until commenting repositories in settings.gradle

IDE. Hints

  • KT-22432 Type hints: Don't include ".Companion" in the names of types defined inside companion object
  • KT-22653 Lambda return hint is duplicated for increment/decrement expressions
  • KT-24828 Double return hints on labeled expressions

IDE. Inspections and Intentions

New Features

  • KT-7710 Intention to convert lambda to anonymous function
  • KT-11850 Add nested lambdas with implicit parameters warning
  • KT-13688 Add 'Change to val' quickfix for delegates without setValue
  • KT-13782 Intention (and may be inspection) to convert toString() call to string template
  • KT-14779 Inspection to replace String.format with string templates
  • KT-18810 Quick-fix for 'is' absence in when
  • KT-22871 Add quickfix to move const val into companion object
  • KT-23082 Add quick-fix for type variance conflict
  • KT-23306 Add intention of putting remaining when-values even in end, and even if there is "else"
  • KT-23897 Inspections: report extension functions declared in same class
  • KT-24295 Add "Remove 'lateinit'" quickfix
  • KT-24509 Inspection "JUnit tests should return Unit"
  • KT-24815 Add Quick fix to remove illegal "const" modifier

Fixes

  • KT-12298 Fix override signature doesn't remove bogus reciever
  • KT-20583 Report "redundant let" even for it in argument position
  • KT-21556 "Call chain on collection type may be simplified" generates uncompiled code on IntArray
  • KT-22030 Invalid Function can be private inspection
  • KT-22041 "Convert lambda to reference" suggested incorrectly
  • KT-22089 Explict This inspection false negative with synthetic Java property
  • KT-22094 Can be private false positive with function called from lambda inside inline function
  • KT-22162 Add indices to loop fails on destructing declarator
  • KT-22180 "Can be private" false positive when function is called by inline function inside property initializer
  • KT-22371 "Create secondary constructor" quick fix is not suggested for supertype constructor reference
  • KT-22758 "Create ..." and "Import" quick fixes are not available on unresolved class name in primary constructor
  • KT-23106 Implement methods should respect actual modifier as well
  • KT-23452 "Remove unnecessary parentheses" reports parens of returned function
  • KT-23697 Android project with 'org.jetbrains.kotlin.platform.android' plugin: all multiplatform IDE features are absent
  • KT-23752 False positive "Remove variable" quick fix on property has lambda or anonymous function initializer
  • KT-23788 Can't convert long char literal to string if it starts with backslash
  • KT-23860 Import quick fix is not available in class constructor containing transitive dependency parameters
  • KT-24349 False positive "Call on collection type may be reduced"
  • KT-24374 "Class member can have private visibility" inspection reports expect members
  • KT-24422 Android Studio erroneously reporting that @Inject lateinit var can be made private
  • KT-24423 False inspection warning "redundant type checks for object"
  • KT-24425 wrong hint remove redundant Companion
  • KT-24537 False positive property can be private on actual properties in a multiplatform project
  • KT-24557 False warning "Remove redundant call" for nullable.toString
  • KT-24562 actual extension function implementation warns Receiver type unused
  • KT-24632 Quick fix to add getter and setter shouldn't use field when it is not allowed
  • KT-24816 Inspection: Sealed subclass can be object shouldn't be reported on classes with state

IDE. JS

  • KT-5948 JS: project shouldn't have "Java file" in new item menu

IDE. Multiplatform

  • KT-23722 MPP: Run tests from common modules should recompile correspond JVM implementation module
  • KT-24159 MPP: Show Kotlin Bytecode does not work for common code
  • KT-24839 freeCompilerArgs are not imported into Kotlin facet of Android module in IDEA

IDE. Navigation

  • KT-20825 Header icon on actual class is lost on new line adding
  • KT-21011 Difference in information shown for "Is subclassed by" gutter on mouse hovering and clicking
  • KT-21113 Expected gutter icon on companion object is unstable
  • KT-21710 Override gutter markers are missing for types in sources jar
  • KT-22177 Double "A" icon for an expect class with constructor
  • KT-23685 Navigation from expect part to actual with ctrl+alt+B shortcut should provide a choice to what actual part to go
  • KT-24812 Search suggestion text overlaps for long names

IDE. Refactorings

  • KT-15159 Introduce typealias: Incorrect applying of a typealias in constructor calls in val/var and AssertionError
  • KT-20260 AE “Unexpected container” on calling Refactor → Move for class in Kotlin script
  • KT-20465 "Introduce variable" in build.gradle.kts creates a variable with no template to change its name
  • KT-20467 Refactor → Extract Function: CCE “KtNamedFunction cannot be cast to KtClassOrObject” on calling refactoring for constructor
  • KT-20469 NDFDE “Descriptor wasn't found for declaration VALUE_PARAMETER” on calling Refactor → Extract Function on constructor argument
  • KT-22931 Converting a scoping function with receiver into one with parameter may change the semantics
  • KT-24460 Rename refactoring does not update super call
  • KT-24574 Changing Java constructor signature from Kotlin usage is totally broken
  • KT-24712 Extract Function Parameter misses 'suspend' for lambda type
  • KT-24763 "Change signature" refactoring breaks Kotlin code

IDE. Tests Support

  • KT-18319 Gradle: Run tests action does not work when test name contains spaces
  • KT-23672 JUnit test runner is unaware of @kotlin.test.Test tests when used in common multiplatform module, even if looked from JVM multiplatform module

JavaScript

  • KT-22376 JS: TranslationRuntimeException on 'for (x in ("a"))'
  • KT-23458 ClassCastException when compiling when statements to JS

Tools. CLI

  • KT-24891 please remove usages of com.intellij.psi.impl.compiled.ClsCustomNavigationPolicy deprecated long ago

Tools. Gradle

  • KT-18621 org.jetbrains.kotlin.incremental.fileUtils.kt conflicts when compiler and gradle plugin in classpath
  • KT-24497 Externalized all-open plugin is not applied to a project
  • KT-24559 Multiple Kotlin daemon instances are started when building MPP with Gradle
  • KT-24560 Multiple Kotlin daemon instances are started when Gradle parallel build is used
  • KT-24653 Kotlin plugins don't work when classpath dependency is not declared in current or root project
  • KT-24675 Use Gradle dependency resolution to get compiler classpath
  • KT-24676 Use Gradle dependency resolution to form compiler plugin classpath

Tools. J2K

  • KT-9945 converting java to kotlin confuses git

Tools. JPS

  • KT-19957 Support incremental compilation to JS in JPS
  • KT-23558 JPS: Support multiplatform projects
  • KT-23757 JPS: Incremental multiplatform projects compilation
  • KT-24936 Don't use internal terms in compiler progress messages

Tools. Scripts

  • KT-24926 NoSuchElementException in TemplateAnnotationVisitor when upgrading the Gradle Kotlin DSL to Kotlin 1.2.50

Tools. kapt

  • KT-24538 Kapt performs Kotlin compilation when annotation processors are not configured