1.2.30
CHANGELOG
1.2.30
Android
KT-19300[AS3.0] Android extensions, Parcelable: editor shows warning about incomplete implementation on a class with Parcelize annotationKT-22168"Kotlin Android | Illegal Android Identifier" inspection reports non-instrumentation unit testsKT-22700Android Extensions bind views with dot in ID
Compiler
New Features
KT-17336Introduce suspendCoroutineUninterceptedOrReturn coroutine intrinsic functionKT-22766Imitate "suspend" modifier in 1.2.x by stdlib function
Performance Improvements
KT-5177Optimize code generation for 'for' loop with withIndex()KT-16880Smarter detection of tail-suspending unit invocations
Fixes
KT-10494IAE in CheckMethodAdapter.checkInternalName when declaring classes inside method with non-standard nameKT-16079Internal error when using suspend operator plusKT-17091Converting to SAM Java type appends non-deterministic hash to class nameKT-18522Internal compiler error with IndexOutOfBoundsException, "Exception while analyzing expression"KT-18578Compilation failure with @JsonInclude and default interface methodKT-19786Kotlin — unable to override a Java function with @nullable vararg argumentKT-20466JSR305 false positive for elvis operatorKT-20705Tail suspend call optimization doesn't work in when blockKT-20708Tail suspend call optiomization doesn't work in some branchesKT-20855Unnecessary safe-call reported on nullable typeKT-21165Exception from suspending function is not caughtKT-21238Nonsensical warning "Expected type does not accept nulls in Java, but the value may be null in Kotlin"KT-21258Raw backing field value exposed via accessors?KT-21303Running on JDK-10-ea-31 leads to ArrayIndexOutOfBoundsExceptionKT-21642Back-end (JVM) Internal error: Couldn't transform method node on usingopenkeyword withsuspendfor a top-level functionKT-21759Compiler crashes on two subsequent return statements in suspend functionKT-22029Fold list to pair with destructuring assignment and inner when results in ExceptionKT-22345OOM in ReturnUnitMethodReplacerKT-22410invalid compiler optimization for nullable cast to reified typeKT-22577Compiler crashes when coroutineContext is used inside of inlined lambda
IDE
New Features
KT-8352Pasting Kotlin code into package could create .kt fileKT-16710Run configuration to run main() as a Node CLI appKT-16833Allow mixing Java and Kotlin code in "Analyze Data Flow..."KT-21531JS: add support for running specific test from the gutter icon with Jest testing framework
Performance Improvements
Fixes
KT-7316Go to declaration in Kotlin JavaScript project navigates to JDK source in some casesKT-8563Refactor / Rename inserts line breaks without reasonKT-11467Editor:varproperty in primary constructor is shown not underscored, same asvalKT-13509Don't show run line markers for top-level functions annotated with @testKT-13971Kotlin Bytecode tool window: Decompile is available for incompilable code, CE at MemberCodegen.genFunctionOrProperty()KT-15000Do not spell check overridden declaration namesKT-15331"Kotlin not configured" notification always shown for common module in multiplatform projectKT-16333Cannot navigate to super declaration via shortcutKT-16976Introduce special SDK for Kotlin JS projects to avoid using JDKKT-18445multiplatform project: provide more comfortable way to process cases when there are missed method implemenation in the implementation classKT-19194Some Live Templates should probably be enabled also for "expressions" not only "statements"KT-20281multiplatform:Unresolved service JavaDescriptorResolver on a file with several header declarations and gutters not shownKT-20470IntelliJ indent guide/invisible brace matching hint tooltip doesn't show contextKT-20522Add "Build" action in "Before launch" block when create new JS run configuration (for test)KT-20915Add quickfix for ‘Implicit (unsafe) cast from dynamic type’KT-20971Cannot navigate to sources of compiled common dependencyKT-21115Incomplete actual class should still have navigation icon to expect classKT-21688UIdentifier violates JvmDeclarationElement contractKT-21874Unexpected IDE error "Unknown type [typealias ...]"KT-21958Support "Alternative source available" for Kotlin filesKT-21994Collapsed comments containing*get removed in the summary line.KT-22179For properties overridden in object literals, navigation to inherited properties is missing indication of a type they are overriddenKT-22214Front-end Internal error: Failed to analyze declarationKT-22230Reformatting code to Kotlin style indents top-level typealiases with commentsKT-22242Semantic highlighting uses different colors for the same 'it' variable and same color for different 'it'sKT-22301Don't require space after label for lambdaKT-22346Incorrect indentation for chained context extension functions (lambdas) when using Kotlin style guideKT-22356Update status of inspection "Kotlin JVM compiler configured but no stdlib dependency" after pom file update, not on re-importKT-22360MPP: with "Create separate module per source set" = NoexpectedBydependency is imported not transitivelyKT-22374"Join lines" works incorrectly in case of line containing more than one string literalKT-22473Regression in IntelliJ Kotlin Plugin 1.2.20, settings.gradle.kts script template is wrongKT-22508Auto-formatting should insert an indentation for default parameter valuesKT-22557Dead 'Apply' button, when setting code styleKT-22565Cant doPsiAnchor.createon annotation in annotationKT-22570Can't add import in "Packages to Use Import with '*'" section on "Import" tab in Code Style -> KotlinKT-22641Auto-formatting adds extra indent to a closing square bracket on a separate lineKT-22734LinkageError: "loader constraint violation: when resolving method PsiTreeUtilKt.parentOfType()" at KotlinConverter.convertPsiElement$uast_kotlin()
IDE. Debugger
KT-20351Stepping over a line with two inline stdlib functions steps into the second functionKT-21312Confusing Kotlin (JavaScript) run configurationKT-21945Double stop on same line during step over if inline call is present
IDE. Inspections and Intentions
New Features
KT-18124Inspection to get rid of unnecessary ticks in referencesKT-22038Inspection to replace the usage of Java Collections methods on subtypes of MutableList with the methods from Kotlin stdlibKT-22152"Create Class" quickfix should support creating the class in a new file and selecting the package for that fileKT-22171Add Intention for single character substringKT-22303Inspection to detectType!.inlineWithNotNullReceiver()callsKT-22409Intention for changing property setter accessibility
Performance Improvements
KT-21137Kotlin instantiates something expensive via reflection when highlighting Java file
Fixes
KT-15176Remove "Create type alias" intention when called on java classKT-18007Inspection doesn't suggest Maven Plugin for kotlin-stdlib-jre8KT-18308'Remove braces from else statement' intention breaks codeKT-18912multiplatform project: Convert to enum class: header sealed class cannot convert nested objects to enum valuesKT-21114IOE: create actual members for expected with companionKT-21600suspendmodifier should go afteroverridein overridden suspend functionsKT-21881Replace "If" with safe access intention false positiveKT-22054Replace '!=' with 'contentEquals' should be replace '==' with 'contentEquals'KT-22097Redundant Unit inspection false positive for single expression functionKT-22159"Replace return with 'if' expression" should not place return before expressions of type NothingKT-22167"Add annotation target" quick fix does nothing and disappears from menuKT-22221QuickFix to remove unused constructor parameters shouldn't delete parenthesisKT-22335IOE from KotlinUnusedImportInspection.scheduleOptimizeImportsOnTheFlyKT-22339Remove setter parameter type: error while creating problem descriptorKT-22364Redundant setter is not reported for overridden fieldsKT-22484The warning highlight for redundant!ischeck for object types isn't extended to the full operatorKT-22538"Redundant type checks for object" inspection application breaks smart cast for an object's field or function
IDE. Refactorings
New Features
KT-17047Refactorings for related standard "scoping functions" conversion: 'let' <-> 'run', 'apply' <-> 'also'
Fixes
KT-12365Renaminginvokefunction should removeoperatormodifier and insert function call for implicit usagesKT-17977Move class to upper level creates file with wrong file nameKT-21719Actual typealias not renamed on expected declaration renameKT-22200Overriden function generated from completion is missing suspend modifierKT-22359Refactor / Rename file: Throwable at RenameProcessor.performRefactoring()KT-22461Rename doesn't work on private top-level members of multi-file partsKT-22476Renameitparameter fails after replacing for-each with mapNotNullKT-22564Rename doesn't warn for conflictsKT-22705Refactor/Rename: rename ofinvokefunction with lambda parameter togetbreaks an implicit callKT-22708Refactor/Rename function using some stdlib name leads to incompilable code
JavaScript
KT-20735JS: kotlin.test-js integration tests terminate build on failureKT-22638Function reference not working in js from extension
Libraries
KT-22620Add support for TestNG in kotlin.testKT-16661Performance overhead in string splitting in Kotlin versus Java?KT-22042SuboptimalStrings#findAnyOfKT-21154kotlin-test-junit doesn't provide JUnitAsserter when test body is run in another thread
Tools
KT-22196kotlin-compiler-embeddable bundles outdated kotlinx.coroutines since 1.1.60KT-22549Service is dying during compilation
Tools. CLI
KT-19051Suppress Java 9 illegal access warnings
Tools. Gradle
KT-18462Add 'org.jetbrains.kotlin.platform.android' plugin.KT-18821Gradle plugin should not resolve dependencies at configuration time
Tools. Incremental Compile
KT-22192Make precise java classes tracking in Gradle enabled by default
Tools. J2K
KT-21635J2K: create "inspection based post-processing"
Tools. REPL
KT-12037REPL crashes when trying to :load with incorrect filename
Tools. kapt
KT-22350kdoc comment preceding enum method causes compilation failureKT-22386kapt3 fails when project has class named SystemKT-22468Kapt fails to convert array type to anonymous array element typeKT-22469Kapt 1.2.20+ may fail to process classes with KDocKT-22493Kapt: NoSuchElementException in KotlinCliJavaFileManagerImpl if class first character is dollar signKT-22582Kapt: Enums inside enum values should be forbiddenKT-22711Deprecate original kapt (aka kapt1)
Previous releases
This release also includes the fixes and improvements from the previous
1.2.21 release.