1017 KiB
CHANGELOG
1.4-M2
Compiler
New Features
KT-37432Do not include annotations fields into 'visibility must be explicitly specified' check in api mode
Performance Improvements
KT-27362Anonymous classes representing function/property references contain rarely used methodsKT-35626NI: Performance problem with many type parametersKT-36047Compiler produces if-chain instead of switch when when subject captured as variableKT-36638Use 'java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;' when appending single character in JVM_IRKT-37389Avoid type approximation during generation constraints with EQUALITY kindKT-37392Avoid substitution and type approximation for simple callsKT-37546NI: high memory and CPU consumption due to creating useless captured types (storing in approximated types cache, unneeded computations)
Fixes
KT-11265Factory pattern and overload resolution ambiguityKT-27524Inline class is boxed when used with suspend modifierKT-27586ClassCastException occurs if the Result (or any other inline class) is returned from a lambdaKT-30419Use boxed version of an inline class in return type position for covariant and generic-specialized overridesKT-31163FIR: consider replacing comparisons with compareTo calls and some additional intrinsicsKT-31585ClassCastException with derived class delegated to generic class with inline class type argumentKT-31823NI: Type mismatch with a star projection andUnsafeVarianceKT-33119Pre-increment for inline class wrapping Int compiles to direct increment instead of inc-implKT-33715Kotlin/Native: metadata compilerKT-34048IllegalAccessError when initializing val property in EXACTLY_ONCE lambdaKT-34433NI: Type mismatch with a star projection andUnsafeVarianceKT-35133FIR Java: don't set 'isOperator' for methods with non-operator namesKT-35234ClassCastException with creating an inline class from a function reference of covariant or generic-specialized overrideKT-35406Generic type implicitly inferred as Nothing with no warningKT-35587Plain namespace strings in JvmNameResolver.PREDEFINED_STRINGS are prone to namespace changes during jar relocation.KT-36044NI: premature fixation a type variable if there were nested lambdas (constraint source was the deepest lambda)KT-36057[FIR] Incorrect smartcastKT-36069NI: TYPE_MISMATCH caused by incorrect inference to NothingKT-36125Callable reference resolution ambiguity error is not displayed properly in the IDEKT-36191IDE locks loading packages and editing file containingtrykeyword inside string templateKT-36222NI: Improve error message about nullability mismatch for a generic callKT-36249NI doesn't use upper bound for T of called function during infer return type and as a result infer it toAny?if the resulting type was intersection typeKT-36345FIR: record argument mapping for use in back-endKT-36446NI: "UnsupportedOperationException no descriptor for type constructor of IntegerLiteralType[Int,Long,Byte,Short]" with BuilderInference and delegateKT-36758[FIR] Unresolved callable reference to member of local classKT-36759[FIR] Unsupported callable reference resolution for methods with default parametersKT-36762[FIR] Unresolvedarray.clone()KT-36764[FIR] Bug in inference with DefinitelyNotNull typesKT-36816NI: definitely not-null (T!!) types in invariant positions don't approximate to T inside inference processKT-36819NI: premature completion of lambdas, which are passed somewhereKT-36850Incorrect private visibility of sealed class constructorsKT-36856Throwing exception when there is inheritance in Kotlin from Java class, which contains methods with the same JVM descriptorsKT-36879Introduce FIR_IDENTICAL in diagnostic testsKT-36881FIR: completion don't runs for return expressionsKT-36887[FIR] Unresolved member in nested lambda in initializerKT-36905[FIR] Unresolved in lambda in default argument positionKT-36953AssertionError: "Unsigned type expected: null" when there is a range with an unsigned typeKT-37009FIR: Bound smart-cast lostKT-37027FIR: Wrong projection on spread + varargs on non-final typesKT-37038NI: redundant lambda's arrow breaks CST calculation for extension lambdasKT-37043NI: inference T to Any? if there was elvis between Java out-type and reifiedmaterializefor this type without out projectionKT-37066[FIR] Wrong type inference for lambdasKT-37070[FIR] Unresolved parameters of outer lambda in scope of inner lambdaKT-37087"IllegalStateException: Can't find method 'invoke()'" for mutable property reference in default value of an inline function parameterKT-37091[FIR] Wrong inferred type of when-expression if when-argument is not-null-asserted and type is not specifies explicitlyKT-37176[FIR] Incorrect resolution mode for statements of blockKT-37302Unexpected conversion:Intconstant inferred toLongin when expressionKT-37327FIR: Smartcast problemKT-37343NI: definitely not null types pre-approximation is inconsistent with OIKT-37380NI: broken some code with def not null types due to skip needed constraintsKT-37419NI: UNRESOLVED_REFERENCE_WRONG_RECEIVER is reported in case lambda with receiver is returned fromwhenexpressionKT-37434Kotlin/JS, Kotlin/Native: fun interfaces: SAM conversion to Kotlin interface is not compiled with RESOLUTION_TO_CLASSIFIERKT-37447Expression from annotation entry in value parameter inside value parameter should be marked as USED_AS_EXPRESSIONKT-37453Type arguments not checked to be empty for candidates with no declared parametersKT-37488[FIR] Incorrect exhaustiveness checking for branches with equals to object that implements sealed classKT-37497NI: 'super' is not an expression, it can not be used as a receiver for extension functionsKT-37530NI: instantiation of abstract class via callable reference argument causes run time InstantiationErrorKT-37531NI: callable reference argument with left hand side type parameter causes frontend exceptionKT-37554NI: Nothing is inferred incorrectly with elvis returnKT-37579NI: inconsistent behaviour with OI around implicit invoke convention after safe call with additional implicit receiverKT-37604"VerifyError: Call to wrong method" in 'invoke' for adapted callable reference to constructor with coercion to UnitKT-37621NI: type variable is inferred to Nothing if the second branch was Nothing and there was upper bound for a type parameterKT-37626NI: builder inference with expected type breaks class references resolution for a class with parametersKT-37627NI: wrong order of the type variable fixation (Nothing? against a call with lambda)KT-37628NI: wrong approximation of type argument to star projection during common super type calculationKT-37644NI: appeared exception during incorporation of a captured type into a type variable for elvis resolveKT-37650NI: it's impossible to infer a type variable with the participation of a wrapped covariant typeKT-37718False positive unused parameter for @JvmStatic main function in objectKT-37779ClassCastException: Named argument without spread operator for vararg parameter causes code to crash on runtimeKT-37832In MPP, subtypes of types defined in legacy libraries, like stdlib, cannot properly resolve on the consumer side receviing bothKT-37861Capturing an outer class instance in a default parameter of inner class constructor causes VerifyErrorKT-37986Return value of function reference returning inline class mapped to 'java.lang.Object' is not boxed properlyKT-37998'!!' operator on safe call of function returning inline class value causes CCE at runtimeKT-38042Allow kotlin.Result as a return type only if one enabled inline classes explicitlyKT-38134NI: Type mismatch with a star projection andUnsafeVarianceKT-38298Inconsistent choice of candidate when both expect/actual are available (affects onlyenableGranularSourceSetMetadata)KT-38661NI: "Cannot infer type variable TypeVariable" with lambda with receiverKT-38668Project with module dependency in KN, build fails with Kotlin 1.3.71 and associated libs but passes with 1.3.61.KT-38857Class versions V1_5 or less must use F_NEW frames.KT-39113"AssertionError: Uninitialized value on stack" with EXACTLY_ONCE contract in non-inline function and lambda destructuringKT-28483Override of generic-return-typed function with inline class should lead to a boxingKT-37963ClassCastException: Value of inline class represented as 'java.lang.Object' is not boxed properly on return from lambda
Docs & Examples
KT-35231toMutableList documentation is vague
IDE
Performance Improvements
KT-30541EDT Freeze after new Kotlin Script creationKT-35050Significant freezes due to findSdkAcrossDependencies()KT-37301Freeze when "Optimize Imports" in KotlinImportOptimizerKT-37466Invalidate partialBodyResolveCache on OCBKT-37467PerFileAnalysisCache.fetchAnalysisResultsKT-37993Do not resolve references if paste code is located in the same originKT-38318Freezes in IDEA
Fixes
KT-27935Functional typealias with typealias in type parameters causes UnsupportedOperationException in TypeSignatureMappingKt (IDEA analysis)KT-31668Complete statement for class declaration: add '()' to supertypeKT-33473UAST: References to local variable are resolved to UastKotlinPsiVariableKT-34564Kotlin USimpleNameReferenceExpression for annotation parameter resolves to null for compiled Kotlin classesKT-34973Light class incorrectly claiming ambiguous method call from Java when one overload is syntheticKT-35801UAST: UnknownKotlinExpression for valid Kotlin annotated expressionKT-35804UAST: Annotations missing from catch clause parametersKT-35848UAST: ClassCastException when trying to invoke UElement for some wrapped PsiElementsKT-36156Kotlin annotation attributes have blue color whereas white in JavaKT-36275UAST: UCallExpression::resolve returns null for local function callsKT-36717Fix failing light class tests after switching plugin to language version 1.4KT-36877Message bundles for copy paste are missed in 201KT-36907IDE:-Xuse-irsetting on facet level does not affect highlightingKT-37133UAST: Annotating assignment expression sometimes leads to UnknownKotlinExpressionKT-37312"Implement members" intention put function in the primary constructor if there are unused brackets in classKT-37613Uast: no parameters in reified methodKT-37933Rare NPE in ProjectRootsUtilKt.isKotlinBinary [easy fix]KT-38081Configure kotlin in project produces IDE error "heavy operation and should not be call on AWT thread"KT-38354HMPP. IDE. Dependency leakage from leaf native to shared native moduleKT-38634IDE: Error on opening MPP project in 1.3.72 after opening it in 1.4-M2
IDE. Code Style, Formatting
KT-37870"Remove trailing comma" action stops working after applying and cancelling it
IDE. Completion
KT-36808Delete Flow.collect from autocompletion list or make it least prioritizedKT-36860Provide convenient completion of extension functions from objectsKT-37395Invalid callable reference completion of member extension
IDE. Debugger
KT-34906Implement Coroutine DebuggerKT-35392Debugger omits meaningful part of the stacktrace even with disabled filterKT-36215Coroutines debugger tab is empty in Android StudioKT-37238Coroutines Debugger: dump creation fails every timeKT-38047Coroutines Debugger: Assertion failed: “Should be invoked in manager thread, use DebuggerManagerThreadImpl” on moving to source code from suspended coroutine in project without debugger jar in classpathKT-38049Coroutines Debugger: NPE “null cannot be cast to non-null type com.sun.jdi.ObjectReference” is thrown by calling dumpCoroutinesKT-38487Any Field Watch interaction causes a MissingResourceException
IDE. Decompiler, Indexing, Stubs
KT-37896IAE: "Argument for @NotNull parameter 'file' of IndexTodoCacheManagerImpl.getTodoCount must not be null" through KotlinTodoSearcher.processQuery()
IDE. Gradle Integration
KT-33809Withkotlin.mpp.enableGranularSourceSetsMetadata=true, IDE misses dependsOn-relation between kotlin and android sourceSets, leading to issues with expect/actual matchingKT-36354IDE: Gradle import from non-JVM projects: dependency to output artifact is created instead of module dependencyKT-38037UnsupportedOperationException on sync gradle Kotlin project with at least two multiplatform modules
IDE. Gradle. Script
KT-36763Drop modification stamp for scripts after project importKT-37237Script configurations should be loaded during project import in case of errorsKT-38041Do not request for script configuration after VCS update
IDE. Inspections and Intentions
New Features
KT-3262Inspection "Inner class could be nested"KT-15723Add 'Convert to value' quickfix for property containing only getterKT-34026Add "Remove argument" quick fix for redundant argument in constructor callKT-34332Add "Remove argument" quick fix for redundant argument in function callKT-34450Convert function to propertyintention should be also displayed onfunkeywordKT-34593Invert 'if' condition: InvertString.isNotEmptyshould beString.isEmptyKT-34819Inspection: report useless elvis "?: return null"KT-37849SupportReplaceWithfor supertypes call
Performance Improvements
KT-37515Deadlock
Fixes
KT-12329"invert if" inserts unnecessary 'continue' for statement inside a loop with 'continue'KT-17615"Convert parameter to receiver" changesthistothis@ < no name provided >KT-20868IntelliJ says method from anonymous inner class with inferred interface type is not used even though it isKT-20907Secondary constructor is marked as unused by IDE when called by typealiasKT-22368"Convert to block body" intention incorrectly formats closing braceKT-23510"Remove parameter" quick fix keeps lambda argument when it's out of parenthesesKT-27601False positive "Unused import directive" for extension function used in KDocKT-28085"Convert receiver to parameter" introduces incorrect this@class in lambdaKT-30028"Convert parameter to receiver" introduces wrong 'this' qualifier for extension lambda receiverKT-31601"Remove redundant let call" changes semantics by introducing multiple safe callsKT-31800False positive "never used" with function in private val object expressionKT-31912QF “Convert to anonymous object” do nothing on SAM-interfacesKT-32561"Property can be declared in constructor" causes another warningKT-32809Convert parameter to receiver inserts wrong qualifiers for this (when nothing needs to be changed)KT-34371"Surround with lambda" quickfix is not available for suspend lambda parameters.KT-34640Replace 'if' with 'when' leads to copy comment line above when from another ifKT-36225KNPE: CodeInliner.processTypeParameterUsages withReplaceWithfor inline reified generic functionKT-36266NPE when invoking Lift return out of if/when after intention becomes inapplicable but still beeing shownKT-36296False negative "Redundant SAM-constructor" with multiple SAM argumentsKT-36367False negative "Redundant SAM-constructor" for kotlin functionsKT-36368False negative "Redundant SAM-constructor" for fun interfaces in kotlinKT-36395False positive "Redundant SAM-constructor" with two java interfaces extending one anotherKT-36411"Put parameters on separate lines" and "Put parameters on one line" actions do not respect trailing commaKT-36482"Add JvmOverloads annotation" intention is still suggested for annotation's parametersKT-36686Implement members quickfix puts the implementation before the data class if it already has a bodyKT-36685"Convert to a range check" transform hex range to int if it is compared with "Less" or "Greater"KT-36707False positive redundant companion object on calling companion object membersKT-36735Inspection 'Replace 'toString' with string template' miss curly braces and generates wrong code for constructor callsKT-36834Convert use-site targets and usages with convert property to fun intentionKT-37213"Move to top level" intention does not update imports for extension functionsKT-37496False positive "Remove redundant backticks" for multiple underscores variable nameKT-37502False positive "redundant lambda arrow" with inline generic function with reified type in object and anonymous parameter nameKT-37508"Convert receiver to parameter" breaks code in anonymous objects (this@ < no name provided >)KT-37576Kotlin InspectionSuppressor not being called for the kotlin's inspectionsKT-37749"Convert to anonymous object" intention is suggested for Java SAM conversion, but not for KotlinKT-37781"Add modifier" intention/quickfix works incorrectly with functional interfacesKT-37893i18n: Incorrect quickfix name "Lift return out of '"
IDE. KDoc
KT-37361Support for showing rendered doc comments in editor
IDE. Libraries
KT-36276IDE: references to declarations in JavaScript KLib dependency are unresolvedKT-37562IDE: references to JavaScript KLib dependency are unresolved, when project and library are compiled with "both" mode
IDE. Navigation
KT-18472UI lockup on find usagesKT-18619Find Usages of element used via import alias does not show actual usage locationKT-34088Navigate | Implementations action doesn't show implementations of Java methods in Kotlin files if method has parameters referring to generic typeKT-35006IDE: "Navigate to inline function call site" from stack trace for nested inline call navigates to outer inline callKT-36138628 second freeze when doing Find Usages on data class propertyKT-36218Show Kotlin file members in navigation barKT-37494AnnotatedElementsSearch unable to find annotated property accessor
IDE. Project View
KT-32886Project tool window: Show Visibility Icons does nothing for Kotlin classesKT-37632IDE error on project structure opening
IDE. Refactorings
Performance Improvements
KT-37801Renaming private property with common name is very slow
Fixes
KT-22733Refactor / Inline Function: fun with type parameter: KNPE at CodeInliner.processTypeParameterUsages()KT-27389MPP: Refactoring "Move Class" does not change the package declarationKT-29870Inline variable doesn't handle 'when' subject val correctlyKT-33045Cover Move Refactoring by statistics (FUS)KT-36071Refactoring: Move top declaration implementation refactoringKT-36072Empty files are removed on Refactor/Move action with turned off "Delete empty source files" optionKT-36114java.lang.NoClassDefFoundError exception on Refactor/Move of kotlin function if it is referenced in javaKT-36129java.lang.Throwable: Invalid file exception occurs on Refactor/Move of class from kotlin scriptKT-36382Move file refactoring breaks ktor application configKT-36504"Extract property" suggests potentially invalid name for new propertyKT-37637KotlinChangeSignatureUsageProcessor broke Change Signature in Python pluginKT-37797Useless "Value for new paramater" step in 'Update usages to reflect signature changes' for method with default parameter valueKT-37822Improve message "Inline all references and remove the kind"KT-38348UL methods return signature without generic type parametersKT-38527Move nested class to upper level fails silently: MissingResourceException
IDE. Script
KT-37765NCDFE KJvmCompiledModuleInMemory on running*.main.ktsscript
IDE. Tests Support
KT-36716Withkotlin.gradle.testing.enabled=true, gradle console output gets extra ijLog messagesKT-36910There are no Run/Debug actions in context menu for non-JVM platform-specific test resultsKT-37037[JS, Debug] Node.JS test debug doesn't stop on breakpoints
IDE. Wizards
New Features
KT-36150New Project Wizard: provide a way to connect with "dependsOn" relation the added project modulesKT-36179New Project Wizard: it's impossible to make a JVM target friendly to Java code in a multiplatform project
Fixes
KT-35583New Project wizard: don't suggest build systems which cannot be usedKT-35585New Project wizard: remember choices which have sense for many projectsKT-35691New Project wizard: artifact and group values are effectively ignoredKT-35693New Project wizard creates pom.xml / build.gradle referring to release Kotlin version onlyKT-36136New Project Wizard: generated projects are missing m2 Gradle repositoryKT-36137New Project Wizard: "multiplatform" shall be written as a single word, without the capital P in the middleKT-36155New Project Wizard: show warning "Multiplatform project cannot be generated" only for MPP projectsKT-36162New Project Wizard: make the error messages in modules editor actionableKT-36163New Project Wizard: remove trailing spaces in Android SDK Path automaticallyKT-36166New Project Wizard: addition of Android target into a multiplatform project doesn't add a necessary minimal Android configurationKT-36169New Project Wizard: Android-related projects failed to buildKT-36176New Project Wizard: module templates doesn't work for multiplatform projectsKT-36177New Project Wizard: it's impossible to add more than one target of JVM kind to a multiplatform projectKT-36180New Project Wizard: it's impossible to set target JVM version for a JVM moduleKT-36226New Project Wizard: add Mobile Android/iOS project templateKT-36267New Project Wizard: flatten JVM targets list for multiplatform projectsKT-36328New Project wizard fails for certain templates with AE: "Wrong line separators" at KotlinFormattingModelBuilder.createModel()KT-37599New Project Wizard: Open Kotlin Wizard via hyperlinkKT-37667New project wizard: implement new UI designKT-37674Kotlin version in build files includes the IDEA versionKT-38061New Project wizard 1.4: do not allow choosing build system if corresponding IJ plugin is disabledKT-38567New Project wizard 1.4+: Improve processing case when project with required path already existsKT-38579New Project wizard 1.4+: multiplatform mobile application: build fails on lint task: Configuration with name 'compileClasspath' not foundKT-38929New project wizard: update libraries in project template according to kotlin IDE plugin versionKT-38417Enable new project wizard by-defaultKT-38158java.lang.NullPointerException when try to create new project via standard wizard on Mac os
JS. Tools
KT-36484KotlinJS, MPP: Compilation throws "TypeError: b is not a function" only in production mode
JavaScript
KT-31126Invalid JS constructor call (primary ordinary -> secondary external)KT-35966Make @JsExport annotation usable in common codeKT-37128KJS: StackOverflowException when using reified recursive bound for type parameterKT-37163KJS: NullPointerException on using intersection type as a reified oneKT-37418SupportAssociatedObjectKeyandfindAssociatedObjectin JS IR BE
Libraries
New Features
KT-8658Add property delegates which call get/set on the given KProperty instance, e.g. a property referenceKT-12448Make@Suppressapplicable for type parametersKT-22932String.format should support null localeKT-23514assertFailsWith should link unexpected exception as causeKT-23737JS & MPP: Support exception cause and addSuppressedKT-25651Add shuffle() to Array, ByteArray, IntArray, etc to match MutableListKT-26494Create an interface with provideDelegate()KT-27729InheritReadWritePropertyfromReadOnlyPropertyKT-28290Add the onEach extension function to the ArrayKT-29182SIZE_BYTES/BITS for Float and DoubleKT-30372Add associateWith to ArrayKT-33906Add vararg overloads for maxOf/minOf functionsKT-34161Array.contentEquals/contentHashCode/contentToString should allow null array receiver and argumentKT-35851Add setOfNotNull functionKT-36866reduceIndexedOrNullKT-36955stdlib: Reverse range and sortDescending rangeKT-37161Add #onEachIndexed similar to #forEachIndexedKT-37603Throwable.stackTraceToString: string with detailed information about exceptionKT-37751Implement shuffled() method SequencesKT-37804Add 'fail' in kotlin-test that allows to specify causeKT-37839StringBuilder.appendLine in stdlib-commonKT-37910Support Media Source Extension (MSE) and Encrypted Media Extensions (EME) in Kotlin/JsKT-38044Common Throwable.printStackTrace
Performance Improvements
KT-37416readLine() is very slow
Fixes
KT-13887Double/Float companion values such as NaN should be constantsKT-14119String.toBoolean()should beString?.toBoolean()KT-16529Names of KProperty's type parameters are inconsistent with ReadOnlyProperty/ReadWritePropertyKT-36356Specify which element Iterable.distinctBy(selector) retainsKT-38060runningFold and runningReduce instead of scanReduceKT-38566Kotlin/JS IR: kx.serialization & ktor+JsonFeature: SerializationException: Can't locate argument-less serializer for class
Reflection
KT-29969Support optional vararg parameter inKCallable.callByKT-37707"IllegalStateException: superInterface.classLoader must not be null" on class, which implements "AutoCloaseable" interface, "isAccessible" property changing
Tools. CLI
KT-37090file does not exist:C:\Users\NK\DOWNLO~1\kotlin-compiler-1.3.61\kotlinc\bin\..\lib\kotlin-compiler.jar" from standalone compiler on Windows
Tools. Gradle
KT-35447Warnings should be piped to stderr when using allWarningsAsErrors = trueKT-35942User test Gradle source set code cannot reach out internal members from the production codeKT-36019Implement Gradle DSL for explicit API mode
Tools. Gradle. JS
New Features
KT-32017Kotlin/JS in MPP: support changing the generated JS file name in Gradle DSLKT-32721[Gradle, JS] CSS Support for browserKT-36843[Gradle, JS, IR] Configure JS Compiler Type through DSLKT-37207Allow to use npm dependency from a local directoryKT-38056[Gradle, JS] Group tasks by browser and node
Fixes
KT-32466kotlinNpmResolve fails in the case of composite buildKT-34468Consider custom versions while parsing yarn.lockKT-36489[Gradle, JS, IR]: Correct naming for both compilersKT-36784Kotlin. JS. MPP – Cannot find project :js when using Gradle composite buildsKT-36864KJS. Composite build require JS plugin in root projectKT-37240KJS. Nondeterministic execution order for webpack scripts (from folder 'webpack.config.d')KT-37582Kotlin/JS: KotlinWebpack non-nullable properties are shown as nullable in Gradle configurationKT-37587KJS. Karma ignore dynamically created webpack patchesKT-37635[Gradle, JS] Webpack devtool provide enum for only 2 variantsKT-37636[Gradle, JS] Extract package.json from klibKT-37762[Gradle, JS] Actualize Node and Yarn versions in 1.4KT-37988[Gradle, JS] Bump NPM versions on 1.4-M2KT-38051[Gradle, JS] browserDistribution doesn't provide outputsKT-38519JS Compiler per project without additional import
Tools. Gradle. Multiplatform
KT-36674allMetadataJartask fails if there is an empty intermediate source set in a multiplatform project with native targetsKT-38746In HMPP, compilation of a shared-native source set could be mistakenly disabledKT-39094Provide a way to pass custom JVM args to commonizer from Gradle
Tools. Gradle. Native
KT-25887Kotlin Native gradle build fail withendorsed is not supported. Endorsed standards and standalone APIson jdk > 8 & CLionKT-36721Deduce a fully qualified unique_name in klib manifest from something like group nameKT-37730Native part of multiplatform build fails with "unresolved reference" errors if there is a local and external module with the same nameKT-38174Kotlin/Native: Disable platform libraries generation at the user side by default
Tools. J2K
Fixes
KT-34965Convert function reference copied from function callKT-35593New J2K: method's names don't change between functions declared in Number.java and Number.ktKT-35897J2K converts private enum constructors to internal constructors and produces NON_PRIVATE_CONSTRUCTOR_IN_ENUM errorKT-36088J2K: StackOverflowError when trying to convert Java class with recursive type boundKT-36149J2K: PsiInvalidElementAccessException: Element class com.intellij.psi.impl.source.tree.CompositeElement of type DOT_QUALIFIED_EXPRESSIONKT-36152J2K: RuntimeException: Couldn't get containingKtFile for ktElementKT-36159J2K: ClassCastException if constructor contains a super() call and class extends from Kotlin classKT-36190J2K: Wrong property name generation when getter for non-boolean value starts with 'is'KT-36891j2k: Fail with java.lang.NoClassDefFoundError when converting arrayKT-37052new J2K: Java private function is converted toprivate opentop-level functionKT-37620new J2K: IndexOutOfBoundsException (DefaultArgumentsConversion.applyToElement) with overloaded function with vararg parameterKT-37919new J2K: Redundant line feeds when converting function
Tools. JPS
KT-37159A Typo (forgotten space) in build output in Circular dependencies warning description
Tools. Scripts
KT-30086ThreadDeath when running kotlin scripts using jsr223KT-37558Scripts: implicit receivers don't work correctly when using CompiledScriptJarsCacheKT-37823Consecutive invocations of main.kts throw a KotlinReflectionNotSupportedError
1.4-M1
Compiler
New Features
KT-4240Type inference possible improvements: analyze lambda with expected type from the outer callKT-7304Smart-casts and generic calls with multiple bounds on type parametersKT-7745Support named arguments in their own position even if the result appears as mixedKT-7770SAM for Kotlin classesKT-8834Support function references with default values as other function typesKT-10930Expected type isn't taken into account for delegated propertiesKT-11723Support coercion to Unit in callable reference resolutionKT-14416Support of @PolymorphicSignature in Kotlin compilerKT-16873Support COERSION_TO_UNIT for suspend lambdasKT-17643Inferring type of Pair based on known Map typeKT-19869Support function references to functions with vararg if expected type ends with repeated vararg element typeKT-21178Prohibit access of protected members inside public inline membersKT-21368Improve type inferenceKT-25866Iterable.forEach does not accept functions that return non-Unit valuesKT-26165Support VarHandle in JVM codegenKT-27582Allow contracts on final non-override membersKT-28298Allow references to generic (reified) type parameters in contractsKT-31230Refine rules for allowed Array-based class literals on different platforms: allowArray::classeverywhere, disallowArray<...>::classon non-JVMKT-31244Choose Java field during overload resolution with a pure Kotlin propertyKT-31734Empty parameter list required on Annotations of function typesKT-33990Type argument isn't checked during resolution partKT-33413Allow 'break' and 'continue' in 'when' statement to point to innermost surrounding loopKT-34743Support trailing comma in the compilerKT-34847Lift restrictions fromkotlin.Result
Fixes
KT-2869Incorrect resolve with 'unsafe call error' and genericsKT-3630Extension property (generic function type) does not workKT-3668Infer type parameters for extension 'get' in delegated propertyKT-3850Receiver check fails when type parameter has another parameter as a boundKT-3884Generic candidate with contradiction is preferred over matching global functionKT-4625Poor error highlighting when assigning not matched type to index operatorKT-5449Wrong resolve when functions differ only in the nullability of generic typeKT-5606"Type mismatch" in Java constructor call with SAM lambda andvarargparameterKT-6005Type inference problem in sam constructorsKT-6591Overloaded generic extension function call with null argument resolved incorrectlyKT-6812Type inference fails when passing a null instead of a generic typeKT-7298Bogus type inference error in generic method call translated from JavaKT-7301Type inference error in Kotlin code translated from JavaKT-7333Type inference fails with star-projections in code translated from JavaKT-7363Kotlin code with star-projections translated from Java does not typecheckKT-73783-dimension array type inference failKT-7410Call resolution error appears only after adding non-applicable overloadKT-7420Type inference sometimes infers less specific type than in JavaKT-7758Type of lambda can't be inferedKT-8218Wrong 'equals' for generic types with platform type and error typeKT-8265Non-typesafe program is compiled without errorsKT-8637Useless diagnostics for type parameters with unsafe nullabilityKT-8966Smart casts don't work with implicit receiver and extension on type parameter with boundsKT-10265Type inference problem when using sealed class and interfacesKT-10364Call completeCall on variable before invoke resolutionKT-10612java.util.Comparator.comparing type inferenceKT-10628Wrong type mismatch with star projection of inner class inside use-site projected typeKT-10662Smartcast with not-null assertionKT-10681Explicit type arguments not taken into account when determining applicable overloads of a generic functionKT-10755Not "least" common super-type is selected for nested 'if' result in presence of multiple inheritanceKT-10929Type inference based on receiver type doesn't work for delegated properties in some casesKT-10962Wrong resolution when argument has unstable DataFlowValueKT-11108RxJava failed platform type inferenceKT-11137Java synthetic property does not function for a type with projectionKT-11144UninferredParameterTypeConstructor exception during buildKT-11184Type inference failed for combination of safe-call, elvis, HashSet and emptySetKT-11218Type inference incorrectly infers nullable type for type parameterKT-11323Type inference failed in call with lambda returning emptyListKT-11331Unexpected "Type inference failed" in SAM-conversion to projected typeKT-11444Type inference failsKT-11664Disfunctional inference with nullable type parametersKT-11894Type substitution bug related platform typesKT-11897No error REIFIED_TYPE_FORBIDDEN_SUBSTITUTION on captured typeKT-11898Type inference error related to captured typesKT-12036Type inference failedKT-12038non-null checks and inferenceKT-12190Type inference for TreeMap type parameters from expected type doesn't work when passing comparator.KT-12684A problem with reified type-parameters and smart-castsKT-12833'it' does not work in typed containers of lambdasKT-13002"Error type encountered: UninferredParameterTypeConstructor" with elvis and whenKT-13028cast with star on on type with contravariant generic parameter makes the compiler crashKT-13339Type inference failed for synthetic Java property call on implicit smart cast receiverKT-13398"Type T is not a subtype of Any"KT-13683Type inference incorporation error when passed null into not-null parameterKT-13721Type inference fails when function arguments are involvedKT-13725Type inference fails to infer type with array as a generic argumentKT-13800Type inference fails when null passed as argument (related to common system)KT-13934Callable reference to companion object member via class name is not resolvedKT-13964Unknown descriptor on compiling invoke operator call with generic parameterKT-13965Invoke operator called on extension property of generic type has incorrect parameter typeKT-13992Incorrect TYPE_INFERENCE_UPPER_BOUND_VIOLATEDKT-14101Type inference failed on nullKT-14174Compiler can't infer type when it should be able toKT-14351Internal error with uninferred types for compiling complicated when expressionKT-14460Smartcast isn't considered as necessary in the last expression of lambdaKT-14463Missing MEMBER_PROJECTED_OUT error after smartcast with invokeKT-14499Type inference fails even if we specifyTexplicitlyKT-14725kotlin generics makes agera's compiled repositories unusableKT-14803Weird smart cast absence in lazy delegateKT-14972Type inference failed: wrong common supertype for types with several subtypesKT-14980Type inference for nullable type in if statementKT-15155False "No cast needed" warning for conversion to star-projected typeKT-15185Inference for coroutines not work in case where we have suspend function with new coroutine insideKT-15263Kotlin can't infer the type of a multiple bounded methodKT-15389Type inference for coroutines in 1.1-M04KT-15394Support coercion to Unit for last statement for suspend lambdaKT-15396Type inference for last statement in coroutineKT-15488Type inference not working on generic function returning generic type in lambda resultKT-15648Better use of overladed functions with nullablesKT-15922TYPE_INFERENCE_CONFLICTING_SUBSTITUTION for function referenceKT-15923Internal error: empty intersection for typesKT-16247Overload resolution ambiguity with intersection types and method referencesKT-16249Can't call generic method with overloaded method reference when non-generic overload existsKT-16421Remove @ParameterName annotation from diagnostic messagesKT-16480Wrong "Type mismatch" for variable as function callKT-16591Type inferencing doesn't consider common base class of T of multiple Foo function parametersKT-16678Overload resolution ambiguity on println()KT-16844Recursive dependency] (DeferredType) error on code generation.KT-16869Cannot infer type parameter S in fun <S, T : S?> f(x: S, g: (S) -> T): TKT-17018"Rewrite at slice LEXICAL_SCOPE" for 'when' with function reference inside lambdaKT-17048Compilation exception: error type encountered in some combination of when/elvis with multiple inheritanceKT-17340Type inference failed on overloaded method reference with expected KFunctionKT-17386Smart cast on LHS of callable reference doesn't work if expected type is nullableKT-17487ReenteringLazyValueComputationException for interface with a subclass that has a property of interface typeKT-17552Call completed not running for elvis as last expression in lambdaKT-17799Smart cast doesn't work for callable reference (colon-colon operator)KT-17968More type inference problems with Streams.collectKT-17995No type mismatch with emptywhenexpression inside lambdaKT-18002Issue with star projection for generic type with recursive upper boundKT-18014Cannot use Comparator.comparingKT-18080Type inference failed for generic method reference argumentKT-18192Type inference fails for some nested generic type structuresKT-18207Unexpected attempt to smart cast causes compile errorKT-18379Type inference failed although explicit specifiedKT-18401Type mismatch when inferring out type parameter (related to callable reference)KT-18481ReenteringLazyValueComputationException for recursive const declaration without explicit typeKT-18541Prohibit "tailrec" modifier on open functionsKT-18790function take the parameterized type with multi-bounds can't workingKT-19139Kotlin build error in Android Studio on << intent.putExtra(“string”, it.getString(“string”) >> inside "else if" blockKT-19751Nested conditionals break type inference when multiple types are possible for the expressionKT-19880An overload with nullable parameter is not resolved due to a smart cast attempt after assignmentKT-19884type inference with type parameterKT-20226Return type 'Any' inferred for lambda with early return with integer literal in one of possible return valuesKT-20656Callable reference breaks smart cast for next statementKT-20734Invalid "Smart-cast impossible" when there are applicable extension and semi-applicable memberKT-20817Coroutine builder type inference does not take smart casts into account (confusing)KT-21060ReenteringLazyValueComputationException during type inferenceKT-21396if-else with a branch of type Nothing fails to infer receiver typeKT-21463Compiler doesn't take into accout a type parameter upper bound if a corresponding type argument is in projectionKT-21607Type inference fails with intermediate functionKT-21694Type inference failed for ObservableListKT-22012Kotlin type deduction does not handle Java's <? super T> constructsKT-22022ReenteringLazyValueComputationException when having cyclic references to static variablesKT-22032Multiple type parameter bounds & smart castsKT-22043Report an error when comparing enum (==/!=/when) to any other incompatible type since 1.4KT-22070Type inference issue with platform types and SAM conversionKT-22474Type safety problem because of incorrect subtyping for intersection typesKT-22636Anonymous function can be passed as a suspending one, failing at runtimeKT-22723Inconsistent behavior of floating-point number comparisonsKT-22775Type inference failed when yielding smartcasted not null value fromsequenceKT-22885Broken type safety with function variables caused by wrong subtyping check that includes intersection typesKT-23141Cannot resolve between two functions when only one of them accepts nullable parameterKT-23156IDEA asking me to remove uninferable explicit type signatureKT-23391Bogus type inference error with smart cast, synthetic property and star projectionKT-23475Implicit invoke on property with generic functional return type resolves incorrectlyKT-23482Incorrect frontend behaviour for not inferred type for generic property with function type as resultKT-23677Incorrect error diagnostic for return types that coerced to 'Unit' inside lambdaKT-23748Erroneous type mismatch when call with @Exact annotation depends on non-fixed type variableKT-23755Nested lambdas with nested types can cause false USELESS_CAST warningKT-23791Explicit type argument leads to an error, while candidate is picked correctly without itKT-23992Target prefixes for annotations on supertype list elements are not checkedKT-24143Type-checking error for generic functionsKT-24217Type inference for generic functions reference problem.KT-24237Uninferred type parameter on variable with multiple smart casts in elvisKT-24317Unnecessary non-null assertion inspection shownKT-24341Compiler exception instead of error about "upper bound violated"KT-24355Overload resolution ambiguity due to unstable smartcastKT-24458Cannot solve “Conditional branch result is implicitly cast to Any” with ListKT-24493Incorrect error about Array unsupportedKT-24886Type inference failure in an if-else_if-elseKT-24918type inference not good enough for return type with involved if statementKT-24920Type inference failure when using RxJava composeKT-24993Inference for buildSequence/yield doesn't work for labeled lambdasKT-25063List of Arrays - wrong type inferred if nullable involvedKT-25268Incorrect type inference (least upper bound of the types) in exhaustive when for NumberKT-25294Reactors Mono map function with KotlinKT-25306Make f(a = arrayOf(x)) equivalent to f(a = *arrayOf(x))KT-25342Type inference: lazy with generic fails to inferKT-25434Too eager smartcast cause type mismatchKT-25585"Rewrite at slice LEXICAL_SCOPE" forifexpression with callable reference inside lambdaKT-25656Short-hand array literal notation type inference fails in nested annotationsKT-25675return whenleads to compiler errorKT-25721Type inference does not work in nested try catchKT-25827NullPointerException in setResultingSubstitutor with a generic base classKT-25841Collection type is inferred as Collection if the values returned frommapfunction have an intersection common typeKT-25942Pass a parameter to generic function with several upper boundsKT-26157Failed type inference forDelegates.observableparameter with a nullable propertyKT-26264No smart cast on implicit receiver extension function callKT-26638Check for repeatablilty of annotations doesn't take into account annotations with use-site targetKT-26698OnlyInputTypes doesn't work in presence of upper bound constraintKT-26704Correct variable-as-function call fails to compile in case of function type dependent on variable typeKT-27440Infer lambda parameter type before lambda analysis in common systemKT-27464False negative type mismatch when a non-null assertion is used on a top-levelvarmutable variableKT-27606Incorrect type inference when common supertype of enum classes is involvedKT-27722mapNotNull on List<Result> fails if T is not subtype of AnyKT-27781ReenteringLazyValueComputationException for anonymous object property referring to itself in overridden methodKT-27799Prohibit references to reified type parameters in annotation arguments in local classes / anonymous objectsKT-28083Nothing-call smart cast of a variable that a lambda returns does not affect the lambda's return typeKT-28111Type inference fails for return type of lambda with constrained genericKT-28242Not-null assertion operator doesn't affect smartcast typesKT-28264Resulting type of a safe call should produce type that is intersected with AnyKT-28305"Error type encountered" with elvis operator, type argument and explicitAnytypeKT-28319"resultingDescriptor shouldn't be null" for a star projection base classKT-28334Smartcast doesn't work if original type is type with star projection and there was already another smartcastKT-28370Var not-null smartcasts are wrong if reassignments are used inside catch section (in try-catch) or try section (in try-finally)KT-28424Type annotations are not analyzed properly in several casesKT-28584Complex condition fails smart castKT-28614"Error type encountered: UninferredParameterTypeConstructor"KT-28726Recursion in type inference causes ReenteringLazyValueComputationExceptionKT-28837SAM conversion doesn't work for arguments of members imported from objectKT-28873Function reference resolution ambiguity is not reportedKT-28999Prohibit type parameters for anonymous objectsKT-28951"Error type encountered" with elvis operator, type argument and explicitAnytypeKT-29014Unclear diagnostic for conditional branches coercion with multiple root interfaces and no common superclassKT-29079ByteArray.let(::String)can not compile as the callable reference is resolved before the outer callKT-29258Incorrect return type is used for analysis of an extension lambda (if its type is used as a generic parameter)KT-29330NI: Multiple duplicate error messages in IDE popup with lambda argumentKT-29402Missed INLINE_FROM_HIGHER_PLATFORM diagnostic if inline function called from Derived classKT-29515type inference fails to infer T of KFunction0 for most typesKT-29712Incorrect compiler warning, "No cast needed" for recursive type boundKT-29876ReenteringLazyValueComputationException with usage of property inside lambda during assignment to that propertyKT-29911Not-null smart cast fails inside inline lambda after safe call on generic variable with nullable upper boundKT-29943Callable reference resolution ambiguity between a property and a function is reported incorrectly in function calls expecting KProperty1KT-29949Cannot chose among overload as soon as nullable type is involvedKT-30151Any instead of Number is inferred as common super type of Int and DoubleKT-30176Compiler can't infer correct type argument which blocks overload resolutionKT-30240Can't infer intersection type for a type variable with several boundsKT-30278Retain star projections in typeOfKT-30394Different behaviour in type inferences (bug in the old inference) when cast of variable of nullable type parameter to not-null is usedKT-30496Wrong infix generic extension function is chosen fornullreceiverKT-30550Suspend modifier on a functional type changes resolution of return typeKT-30892IllegalStateException(UninferredParameterTypeConstructor) with return references to local function from if-else expressionKT-30947No smart cast on accessing generic class member with upper-bounded type argumentKT-31102Type mismatch in mixing lambda and callable referenceKT-31151"IllegalStateException: Error type encountered" with elvis, when and inheritanceKT-31219Type mismatch for delegated property depending on anonymous objectKT-31290overload resolution ambiguity with Iterable.mapTo()KT-31352JvmName can't eliminate platform declaration clash of annotated propertiesKT-31532Type inference for complex last expression in lambdaKT-31540Change initialization order of default values for tail recursive optimized functionsKT-31594No SETTER_PROJECTED_OUT diagnostic on synthetic properties from JavaKT-31630TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR for generic function with callable reference argumentKT-31654False unnecessary non-null assertion (!!) warning inside yield callKT-31679NI: Unresolved reference with delegated property and anonymous objectKT-31739Overload resolution ambiguity in generic function call with lambda arguments that take different parameter typesKT-31923Outer finally block inserted before return instruction is not excluded from catch interval of inner try (without finally) blockKT-31968New inference is using a more common system to infer types from nested elvis call than OIKT-31978NI: changed precedence of elvis operator relative to equality operatorKT-32026Infer return type of @PolymorphicSignature method to void if no expected type is givenKT-32087"Remove explicit type arguments" inspection when function creates a lambda that calls a function with type argumentKT-32097NI: NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE when using awaitClose in channelFlow builderKT-32098Kotlin 1.3.40 type inference mismatch between the IDE and the compilerKT-32151Return arguments of lambda are resolved in common system while in OI aren'tKT-32165Cannot use 'Nothing' as reified type parameter,KT-32196Inconsistency between compiler and inspection with mapNotNullKT-32203NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE warning false-positiveKT-32249New inference breaks generic property delegate resolutionKT-32250New Type Inference fails for nullable fieldKT-32262Type inference failed in presence of @JvmSuppressWildcardsKT-32267NI: "Overload resolution ambiguity. All these functions match." with KFunctionKT-32284False positive "Redundant lambda arrow" with extension function returning generic with lambda type argumentKT-32290New Inference: old inference fails on nullable lambda from if-expressionKT-32306False positiveRemove explicit type argumentswhen using generic return argument from lambda for delegated propertyKT-32358NI: Smart cast doesn't work with inline function after elvis operatorKT-32383NI: listOf(…) infers to invalid type if different enums implementing the same interface are involvedKT-32397OI can't infer types when there are different lower and upper bounds in common systemKT-32399OI can't choose candidate with different lower and upper boundsKT-32425No coercion to Unit by a return type of callable expression argumentKT-32431Nothing inferred for upper bound in parametric classKT-32449IDE fails to report error: Expected type mismatchKT-32462NI: "AssertionError: No resolved call" with callable referenceKT-32497Compiler Type inference fails when inferring type parameters ("Generics") - IDE inference worksKT-32507IntelliJ Kotlin plugin not recognizing smart cast to non-nullable typeKT-32501type inference should infer nullable type if non-nullable doesn't workKT-32527Cast required for Sequence.map when mapping between disjoint typesKT-32548OVERLOAD_RESOLUTION_AMBIGUITY with platform generic typesKT-32595NI: Overload resolution ambiguity for member function with type parameter with upper bounds and lambda parameterKT-32598Kotlin 1.3.41 type inference problemKT-32654Non-applicable call for builder inference with coroutinesKT-32655Kotlin compiler and IDEA plugin disagree on typeKT-32686New type inference algorithm infers wrong type when return type ofwhenexpression has a type parameter, and it's not specified in all casesKT-32788No smartcast for an implicit "this" in old inferenceKT-32792Bug in new type inference algorithm for Android StudioKT-32800Problem with inlined getValue in Delegates, IDEA does not detect problem, but code doesn't compileKT-32802Odd behaviour with smart-casting in exception blockKT-32850Invalid suggestion in Kotlin codeKT-32866tests in Atrium do not compile with new type inferenceKT-33012Proper capturing of star projections with recursive typesKT-33102Fake overrides aren't created for propertiesKT-33152Type inference fails when lambda with generic argument type is presentKT-33166NI: TYPE_MISMATCH for specific case withwhenexpression and one branch throwing exceptionKT-33171TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER with object convention invoke direct call on property delegationKT-33240Generated overloads for @JvmOverloads on open methods should be finalKT-33545NI: Error type encountered: NonFixed: TypeVariable(T) (StubType)KT-33988Low priority candidates doesn't match when others failKT-34128Internal compiler error ReenteringLazyValueComputationException in the absence of right parenthesisKT-34140Function with contract doesn't smartcast return value in lambdaKT-34314There is no an error diagnostic about type inference failed (impossible to infer type parameters) on callable referencesKT-34335A lambda argument without a type specifier is inferred to Nothing, if it's passed to a function, declaration of which contains vararg (e.g. Any)KT-34501if-expression infersAnywhenNumber?is expectedKT-34708Couldn't transform method node: emit$$forInline (try-catch in a Flow.map)KT-34729NI: type mismatch error is missed for generic higher-order functionsKT-34830Type inference fails when using an extension method with "identical JVM signature" as method referenceKT-34857"Illegal resolved call to variable with invoke" with operator resolved to extension propertyinvokeKT-34891CompilationException: Failed to generate expression: KtLambdaExpression (Error type encountered)KT-34925MPP, IDE: False positive warning NO_REFLECTION_IN_CLASS_PATH in common codeKT-35020"Type checking has run into a recursive problem" for overloaded generic function implemented using expression body syntaxKT-35064NI: The new inference has overload resolution ambiguity on passing a callable reference for extension functions (> 1 candidates)KT-35207Incorrect generic signature in annotations when KClass is used as a generic parameterKT-35210NI: OnlyInputTypes check fails for types with captured onesKT-35213NI: overload resolution ambiguity for callable reference with defined LHSKT-35226Forbid spread operator in signature-polymorphic callsKT-35306Non-applicable call for builder inferencefor nested builder functions which return generic types that are wrapped.KT-35337IllegalStateException: Failed to generate expression: KtLambdaExpressionKT-35398NI, IDE: Duplicate warning message JAVA_CLASS_ON_COMPANION in argument positionKT-35469Change behavior of signature-polymorphic calls to methods with a single vararg parameter, to avoid wrapping the argument into another arrayKT-35487Type safety problem because of lack of captured conversion against nullable type argumentKT-35494NI: Multiple duplicate error diagnostics (in IDE popup) with NULL_FOR_NONNULL_TYPEKT-35514Type inference failure withouttype and if-else inside lambdaKT-35517TYPE_MISMATCH error duplication for not Boolean condition in if-expressionKT-35535Illegal callable reference receiver allowed in new inferenceKT-35578Diagnostics are sometimes duplicatedKT-35602NI doesn't approximate star projections properly for self typesKT-35658NI: Common super type between Inv<A!>, Inv<A?> and Inv is Inv<out A?>, not Inv<A!> (as old inference)KT-35668NI: the lack of fixing to Nothing problem (one of the bugs: the lack of smartcast through cast of Nothing? to Nothing after elvis)KT-35679Type safety problem because several equal type variables are instantiated with a different typesKT-35684NI: "IllegalStateException: Expected some types" from builder-inference about intersecting empty types on trivial codeKT-35814Inference fails to infer common upper type for java typesKT-35834Do not declare checked exceptions in JVM bytecode when using delegation to Kotlin interfacesKT-35920NI allows callable references prohibited in old inferenceKT-35943NI: IllegalStateException: No error about uninferred type parameterKT-35945Using Polymorphism and Type Inference the compiler fails having a Type with Type with TypeKT-35992Wrong overload resolution with explicit type arguments if KFunction and type parameter once nullable and once non-nullableKT-36001"IllegalStateException: Error type encountered" with elvis in generic functionKT-36002KotlinFrontEndException: Exception while analyzing expressionKT-36065Type inference failed for generic function invoked on implicitly nullable variable created from JavaKT-36066Type inference problem in compilerKT-36101False positive IMPLICIT_NOTHING_AS_TYPE_PARAMETER with suspend lambdasKT-36146Drop support of language version 1.0/1.1, deprecate language version 1.2KT-36192Redundant smart cast for overloaded functionsKT-36202NI: false positive "NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE" with elvis operator in lambdaKT-36220NI: false positive NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE if one use cannot resolveKT-36221NI: UnsupportedOperationException: "no descriptor for type constructor" with vararg parameter whensetorgetmethods of element passed as function referenceKT-36264NI: unstable smart cast changes results of call resolutionKT-36279OI: Type inference fails when omitting explicit name of the lambda parameterKT-36298Failure to resolve return type of extension property on function literalKT-36317TYPE_MISMATCH diagnostic error duplication for not Boolean condition in do-while-loop-statementKT-36338Forbid IR backend usage with unsupported language / API versionKT-36371Incorrect null check with NI and builder inference in generic contextKT-36644Stop discrimination of prerelease compiler version in Kotlin pluginKT-36745NI: "Expected some types" with unresolved class referenceKT-36776Treat special constructions (if, when, try) as a usual calls when there is expected typeKT-36818NI: the lack of smartcast from Nothing returning "when" branchKT-37123Cycling lambda signature errors in Observable.combineLatestKT-37146Type inference can't resolve plus operatorKT-37189Wrong type inferred with class with two types as argumentKT-37295NI: Passing function with wrong returning type by reference is not shown as errorKT-37345Wrong non-null type assertion when using Sequence and yieldKT-37429Type inference failed: Not enough information to infer parameter with java streamsKT-37480"None of the following candidates can be called" when compiling but no error in IDEA
IDE
KT-33573IDE runs platform-specific checkers on common code even if the project doesn't target the corresponding platformKT-35823IDE settings: deprecated values of language / API version look like regular onesKT-35871NPE in LightMethodBuilderKT-36034Kotlin 1.3.70 creates filekotlinCodeInsightSettings.xmlwith user-level settings under .ideaKT-36084"Join lines" should remove trailing commaKT-36460IDE highlighting: Undo on inspection breaks analysis inside top-level property initializerKT-36712Use new annotation highlighting APIKT-36917Caret has incorrect position after pressing enter on line with named argument
IDE. Code Style, Formatting
KT-36387Formatter: "Chained Function Calls" formats property chainsKT-36393Incorrect trailing comma insertion for boolean operator expressionKT-36466Formatter: "Chained Function Calls" with "Wrap first call" wrap single method call
IDE. Completion
KT-16531Error type displayed in completion for the result of buildSequenceKT-32178Autocompletion of 'suspend' should not add the 'fun' keyword when writing a function typeKT-34582Remove kotlin.coroutines.experimental from autocompletionKT-35258Completion problems with enabledMixedNamedArgumentsInTheirOwnPositionfeature
IDE. Debugger
KT-12016Step over inside inline function lambda argument steps into inline function bodyKT-14296Can't step over inlined functions of iteratorKT-14869Debugger: always steps into inlined lambda after returning from functionKT-15652Step over inline function call stops at Thread.dispatchUncaughtException() in case of exceptionsKT-34905Debugger: "Step over" steps into inline function body if lambda call splitted on several linesKT-35354ClassCastException in evaluate window
IDE. Gradle. Script
KT-36703.gradle.kts: Change text for out of project scripts
IDE. Hints
KT-37537IDE is missing or swallowing keystrokes when hint popups are displayed
IDE. Hints. Parameter Info
KT-14523Weird parameter info tooltip for map.getValue type arguments
IDE. Inspections and Intentions
New Features
KT-33384Intention to switch between single-line/multi-line lambdaKT-34690Support intentionConvert lambda to referencefor qualified referencesKT-35639False negative inspection "redundant internal modifier" inside private classKT-36256Implement migration for WarningOnMainUnusedParameterKT-36257Implement migration for ProhibitRepeatedUseSiteTargetAnnotationsKT-36258Implement migration for ProhibitUseSiteTargetAnnotationsOnSuperTypesKT-36260Implement migration for ProhibitJvmOverloadsOnConstructorsOfAnnotationClassesKT-36261Implement migration for ProhibitTypeParametersForLocalVariablesKT-36262Implement migration for RestrictReturnStatementTarget
Fixes
KT-14001"Convert lambda to reference" results in failed type inferenceKT-14781Import of aliased type is inserted when deprecation replacement contains typealiasKT-16907"Convert to lambda reference" intention is erroneously shown for suspending lambda parameters, producing bad codeKT-24869False positive inspection "Redundant 'suspend' modifier"KT-24987Implicit (unsafe) cast from dynamic to DONT_CAREKT-27511"Remove explicit type arguments" suggestion creates incorrect codeKT-28415False positive inspection "Remove explicit type arguments" with a callable referenceKT-30831False positiveRemove explicit type argumentswith generic type constructor with init blockKT-31050False positive "Boolean literal argument without parameter name" inspection using expect classKT-31559Type inference failed: Not enough information to infer parameter KKT-32093NI: IDE suggests to use property access syntax instead of getter methodKT-33098False positive "Remove explicit type arguments" with "Enable NI for IDE" and Java generic class constructor invocation with nullable argumentKT-33685ReplaceWith does not add type parameter for function taking generic lambda with receiverKT-34511kotlin.KotlinNullPointerException after using intention Replace Java Map.forEach with Kotlin's forEach for Map with Pairs as keysKT-34686False positive "Constructor parameter is never used as a property" if property is used as a referenceKT-35451Type inference fails after applying false positive inspection "Remove explicit type arguments "KT-35475Applying intention "Redundant curly braces in string template" for label references change semanticKT-35528IntentionReplace 'when' with 'if'produces wrong code if expression subject is a variable declarationKT-35588Applying "Lift assignment out of 'if'" for if statement that has lambda plus assignment and 'return' leads to type mismatchKT-35604Too long quickfix message for "modifier 'open' is not applicable to 'companion object'"KT-35648False negative intention "Remove argument name" on named positional argumentsKT-36160False positive "Constructor has non-null self reference parameter" with vararg parameter of classKT-36171intention "Replace 'get' call with indexing operator" works incorrectly with spread operatorKT-36255Implement migration tool for 1.4KT-36357"Lift assignment out of 'if'" breaks code for oneliner functionKT-36360OI: False positive "remove explicit type arguments" for SequenceScope leads to compiler failure with "Type inference failed"KT-36369"To raw string literal" intention is not available if string content starts with newline symbol \n
IDE. Multiplatform
KT-36978Infinite "org.jetbrains.kotlin.idea.caches.resolve.KotlinIdeaResolutionException: Kotlin resolution encountered a problem while analyzing KtFile" exceptions in hierarchical multiplatform projects
IDE. Navigation
KT-30628Navigation from Java sources to calls on Kotlin function annotated with @JvmOverloads that have optional arguments omitted leads to decompiled code
IDE. Refactorings
New Features
KT-26999Inspection for unused main parameter in Kotlin 1.3KT-33339Refactor / Move is disabled for Kotlin class selected together with Kotlin file
Fixes
KT-22131"Extract method" refactoring treats smart casted variables as non-localKT-24615"Extract property" generates useless extension propertyKT-26047Refactor -> Rename: Overridden method renaming in generic class doesn't rename base methodKT-26248"Refactor -> Inline variable" breaks callable referencesKT-31401Refactor / Inlining function reference in Java method with Runnable argument produces compile errorKT-33709Inline variable: NONE_APPLICABLE with overloaded generic Java method with SAM conversionKT-34190Inline Function: False positive error "not at the end of the body" with anonymous objectKT-35235Unable to move multiple class files to a different packageKT-35463ClassCastException during moving .kt file with one single class to the other folder in Android StudioKT-36312Refactor Move refactoring to get it ready for MPP-related fixes
IDE. Run Configurations
KT-34503"Nothing here" is shown as a drop-down list for "Run test" gutter icon for a multiplatform test with expect/actual parts in platform-agnostic codeKT-36093Running Gradle java tests are broken for Gradle older than 4.0 (Could not set unknown property 'testClassesDirs' for task ':nonJvmTestIdeSupport')
JavaScript
KT-23284Reified type arguments aren't substituted when invoking inline val value
Libraries
KT-26654Remove deprecated 'mod' operatorsKT-27856Add contracts to Timing.kt lambdasKT-28356Fail fast in Regex.findAll on an invalid startIndexKT-29748Declare kotlin.reflect.KType in kotlin-stdlib-commonKT-30360Deprecate conversions of floating point types to integral types lesser than IntKT-32855KTypeParameter is available in common code, but not available in NativeKT-35216<T : AutoCloseable?, R> T.use and <T : Closeable?, R> T.use should have contractsKT-36082JS Regex.find does not throw IndexOutOfBoundsException on invalid start indexKT-36083Extract kotlin.coroutines.experimental.* packages to a separate compatibility artifact
Reflection
KT-30071Implement KTypeProjection.toStringKT-35991Embed Proguard/R8 rules in kotlin-reflect artifact jar
Tools. CLI
KT-28475java.sql module not available in kotlinc scripts on Java 9+ due to use of Bootstrap Classloader
Tools. Gradle. JS
KT-34989NodeJs is not re-downloaded if the node binary gets accidentally deletedKT-35465Gradle, JS: Gradle tooling for IR compilerKT-36472Kotlin/JS Gradle plugin iterates over all Gradle tasks, triggering their lazy configurationKT-36488Gradle, JS, IR: Publishing from JS plugin
Tools. Gradle. Multiplatform
KT-37264In intermediate common source sets, internals are not visible from their dependsOn source sets during Gradle build
Tools. Gradle. Native
KT-36804In a project with Kotlin/Native targets and kotlinx.serialization, IDE import fails: Could not create task '...'. / Cannot change dependencies of configuration after it has been resolved.
Tools. J2K
KT-20120J2K: Java 9forRemovalandsincemethods ofDeprecatedare not processed
Tools. Scripts
KT-35414Switch for-Xexpressionto-expression/-ecli argument syntax for JVM cli compiler in 1.4
1.3.72
Compiler
KT-37107kotlinc allows calling default constructor of class with no constructorsKT-37406NI: "UnsupportedOperationException: no descriptor for type constructor of TypeVariable(T)" when compiling*.gradle.ktsfile
IDE
KT-37483Kotlin localisationKT-37629False positive "Unsupported [literal prefixes and suffixes]" for infix functionKT-37808"Resolve pasted references" dialog freezes UI for 20 seconds when pasting kotlin code
IDE. Completion
KT-37144Completion goes into an infinite loop with Arrow 0.10.4 dependency
IDE. Debugger
KT-37767Debugger, NPE happens while stepping.
IDE. Editing
KT-35135UI freeze: not enough checkCancelled on resolve path
IDE. Inspections and Intentions
KT-37217Replace UseExperimental with OptIn intention removes target prefixes for annotations
IDE. Native
KT-38079IDEA navigates to wrong line of source code from Native stack trace
IDE. Navigation
KT-37487Destructuring declarations are called "destruction declarations" in UI
Tools. Gradle. Native
KT-37696MPP Gradle plugin: False positive parallel execution detection if build started with --continue
1.3.71
Compiler
KT-36095201: False positive OVERLOAD_RESOLUTION_AMBIGUITY with JavaEnum.valueOfandEnum.values()referenceKT-37040'No explicit visibility in API mode' should not be reported on enum membersKT-37204AssertionError: "No delegated property metadata owner for" with lazy inside inline function
Docs & Examples
KT-37029Kotlin full stack app demo: update all involving versions to work with 1.3.70 release
IDE
KT-34759"PSI and index do not match" and high CPU usage when the library hasenumwith elements in quotes andinternal lazy valin another part of codeKT-37200StackOverflowError in LightMethodBuilder.equals when analysing Kotlin filesKT-37229java.lang.NoSuchMethodError: 'com.intellij.psi.impl.light.LightJavaModule, com.intellij.psi.impl.light.LightJavaModule.findModule after updating kotlin plugin to 1.3.70KT-37273No error in editor when typing unresolved reference in super constructor lambdaKT-37414Not all imports are added on paste if code is formatted after pasteKT-37553Run inspections after general highlight pass
IDE. Code Style, Formatting
KT-37545Continuation indent for method's parameter changes in call chain
IDE. Hints
KT-37537IDE is missing or swallowing keystrokes when hint popups are displayed
IDE. Inspections and Intentions
KT-36478IDE suggests to use 'OptIn' annotation when it is not available in the used version of kotlin-stdlibKT-37294False positive "Unused unary operator" on negative long annotation value
IDE. Navigation
KT-36657KotlinFindUsagesHandler#processElementUsages always return false if options.isSearchForTextOccurrences is false
IDE. Refactorings
KT-37451Change of signature error: Type of parameter cannot be resolvedKT-37597Support Suggest rename and change signature refactorings in Kotlin for IDEA 2020.1
IDE. Run Configurations
KT-36781Override ConfigurationFactory::getId method in Kotlin plugin to avoid problems with localizations
JavaScript
KT-37386Incorrect JS generated by the compiler: function is erased by the function parameter
Tools. Gradle. JS
KT-36196Investigate performance problems while resolving in projects with npm dependencies
Tools. Gradle. Multiplatform
KT-37264In intermediate common source sets, internals are not visible from their dependsOn source sets during Gradle build
Tools. Gradle. Native
KT-37565MPP plugin: Forbid parallel in-process execution of the Kotlin/Native compiler
Tools. kapt
KT-37241Kapt: Classpath entry points to a non-existent location: ...build/intermediates/javac/debug/classes...
1.3.70
Compiler
New Features
KT-34648Support custom messages for @RequiresOptIn-marked annotations
Performance Improvements
KT-14513Suboptimal compilation of lazy delegated properties with inline getValue
Fixes
KT-19234Improve "Supertypes of the following classes cannot be resolved" diagnosticKT-21178Prohibit access of protected members inside public inline membersKT-24461Expect interface with suspend function with default arguments causes runtime errorKT-25514Support usage of function reference with vararg where function of array is expected in new inferenceKT-26435Bad frame merge after inlineKT-27825Gradually prohibit non-abstract classes containing abstract members invisible from that classes (internal/package-private)KT-27999Generic type is fixed too early for lambda argumentsKT-28940Concurrency issue for lazy values with the post-computation phaseKT-29242Conditional with generic type Nothing inside inline function throwsjava.lang.VerifyError: Bad return typeKT-30244Unable to infer common return type for two postponed argumentsKT-30245Wrong type is inferred for lambda if it has expected type with an extension receiverKT-30277Relax the "no reflection found in class path" warning for KType and related APIKT-30744Invoking Interface Static Method from Extension method generates incorrect jvm bytecodeKT-30953Missing unresolved if callable reference is used in the place in which common super type is computingKT-31227Prohibit using array based on non-reified type parameters as reified type arguments on JVMKT-31242"Can't find enclosing method" proguard compilation exception with inline and crossinlineKT-31411Support mode of compiler where it analyses source-set as platform one, but produces only metadata for that specific source-setKT-31653Incorrect transformation of the try-catch cover when inliningKT-31923Outer finally block inserted before return instruction is not excluded from catch interval of inner try (without finally) blockKT-31975No diagnostic on error typeKT-32106New type inference: IDE shows error but the code compiles succesfullyKT-32138New type inference: Invoking type-aliased extension function red in IDE, but compilesKT-32168Problem in IDE with new type inference and delegate providerKT-32243New type inference: Type mistmatch in collection type usageKT-32345New type inference: Error when using helper method to create delegate providerKT-32372Type inference errors in IDEKT-32415Type mismatch on argument of super constructor of inner class callKT-32423New type inference: IllegalStateException: Error type encountered: org.jetbrains.kotlin.types.ErrorUtils$UninferredParameterTypeConstructor@211a538e (ErrorType)KT-32435New inference preserves platform types while old inference can substitute them with the nullable result typeKT-32456New type inference: "IllegalStateException: Error type encountered" when adding emptyList to mutableListKT-32499Kotlin/JS 1.3.40 - new type inference with toTypedArray() failureKT-32742Gradle/JS "Unresolved Reference" when accessing setting field of Dynamic object w/ ReactKT-32818Type inference failed with elvis operatorKT-32862New type inference: Compilation error "IllegalArgumentException: ClassicTypeSystemContextForCS couldn't handle" with overloaded generic extension function reference passed as parameterKT-33033New type inference: Nothing incorrectly inferred as return type when null passed to generic function with expression if statement bodyKT-33197Expression with branch resolving to List<…> ultimately resolves to MutableList<…>KT-33263"IllegalStateException: Type variable TypeVariable(T) should not be fixed!" with generic extension function and in varianceKT-33542Compilation failed with "AssertionError: Suspend functions may be called either as suspension points or from another suspend function"KT-33544"UnsupportedOperationException: no descriptor for type constructor of TypeVariable(R)?" with BuilderInference and elvis operatorKT-33592New type inference: Missed error in IDE — Unsupported [Collection literals outside of annotations]KT-33932Compiler fails when it encounters inaccessible classes in javac integration modeKT-34029StackOverflowError for access to nested object inheriting from containing generic class atorg.jetbrains.kotlin.descriptors.impl.LazySubstitutingClassDescriptor.getTypeConstructorKT-34060UNUSED_PARAMETER is not reported on unused parameters of non-operator getValue/setValue/prodiveDelegate functionsKT-34282Missing diagnostic of unresolved for callable references with overload resolution ambiguityKT-34391New type inference: False negative EXPERIMENTAL_API_USAGE_ERROR with callable referenceKT-34395KtWhenConditionInRange.isNegated() doesn't workKT-34500CompilationException when loop range is DoubleArray and loop parameter is casted to super-type (e.g. Any, Number, etc.)KT-34647Gradually rename experimentality annotationsKT-34649Deprecate-XexperimentalflagKT-34779JVM: "get()" is not invoked in optimized "for" loop over CharSequence.withIndex() with unused variable ("_") for the element in destructuring declarationKT-34786Flaky type inference for lambda expressionsKT-34820New type inference: Red code when expanding type-aliased extension function in LHS position of elvisKT-34888Kotlin REPL ignores compilation errors in class declarationKT-35035Incorrect state-machine generated for suspend lambda inside inline lambdaKT-35101"AssertionError: Mapping ranges should be presented in inline lambda" with a callable reference argument to inline lambdaKT-35168New type inference: "UninitializedPropertyAccessException: lateinit property subResolvedAtoms has not been initialized"KT-35172New type inference: False positive type mismatch if nullable type after elvis and safe call inside lambda is returning (expected type is specified explicitly)KT-35224New type inference: Java call candidate with varargs as Array isn't present if SAM type was used in this callKT-35262Suspend function with Unit return type returns non-unit value if it is derived from function with non-unit return typeKT-35426IncompatibleClassChangeError: Method 'int java.lang.Object.hashCode()' must be Methodref constantwhen invoking on super with explicit generic typeKT-35843Emit type annotations in JVM bytecode with target 1.8+ on basic constructionsKT-36297New type inference: ClassNotFoundException: compiler emits reference to nonexisting class for code with nested inline lambdasKT-36719Enable new inference in IDE since 1.3.70
Docs & Examples
KT-31118Provide missing documentation for StringBuilder members
IDE
New Features
KT-27496Color Scheme: allow changing style for suspend function callsKT-30806Add IntelliJ Color Scheme rules for property declarationsKT-34303IDE should suggest to import an extension iterator function when using for loop with a rangeKT-34567Feature: Auto add val keyword on typing data/inline class ctor parametersKT-34667Add auto-import quickfix for overloaded generic function
Performance Improvements
KT-30726Editor is laggy if the code below a current line has unresolved referenceKT-30863IDE freeze on editing with "Add unambiguous imports on the fly" turned onKT-32868Provide incremental analysis of file when it is applicableKT-33250KtLightClassForSourceDeclaration.isFinal() can be very slow (with implications for class inheritor search)KT-33905Optimize imports under reasonable progressKT-33939Copy action leads to freezesKT-34956UI Freeze: PlainTextPasteImportResolverKT-35121Add support for KtSecondaryConstructors into incremental analysisKT-35189Support incremental analysis of comment and kdocKT-35590UI freeze in kotlin.idea.core.script.ScriptConfigurationMemoryCache when editing file
Fixes
KT-10478Move-statement doesn't work for methods with single-expression body and lambda as returning typeKT-13344Reduce visual distraction of val keywordKT-14758Move statement up shouldn't move top level declarations above package and import directivesKT-23305We should be able to see platform-specific errors in common moduleKT-24399No scrollbar in Kotlin compiler settingsKT-27806UAST: @Deprecated(level=DeprecationLevel.HIDDEN) makes method disappearKT-28708Java IDE fails to understand @JvmDefault on properties from binariesKT-30489Kotlin functions are represented in UAST as UAnnotationMethodsKT-31037Lambda expression default parameter 'it' sometimes is not highlighted in a call chainKT-31365IDE does not resolve references to stdlib symbols in certain packages (kotlin.jvm) when using OSGi bundleKT-32031UAST: Method body missing for suspend functionsKT-32540Ultra light class support for compiler pluginsKT-33820Stop usingcom.intellij.codeInsight.AnnotationUtil#isJetbrainsAnnotationKT-33846Stop usingcom.intellij.openapi.vfs.newvfs.BulkFileListener.AdapterKT-33888Bad indentation when copy-paste to trimIndent()KT-34081Kotlin constants used in Java annotation attributes trigger "Attribute value must be constant" errorKT-34316UAST: reified methods no longer visible in UASTKT-34337Descriptors Leak in UltraLightClassesKT-34379"Implement members" with unspecified type argument: "AssertionError: 2 declarations in override fun"KT-34785Enter handler: do not add 'trimIndent()' in constKT-34914Analysis sometimes isn't rerun until an out of code block changeKT-35222SQL language is not injected to String array attribute of Java annotationKT-35266Kotlin-specific setting "Optimize imports on the fly" is uselessKT-35454Weird implementation of KtUltraLightFieldImpl.isEquivalentToKT-35673ClassCastException on destructuring declaration with annotationKT-36008IDEA 201: NSME: "com.intellij.openapi.progress.util.ProgressIndicatorUtils.awaitWithCheckCanceled(Future)" at org.jetbrains.kotlin.idea.util.ProgressIndicatorUtils.awaitWithCheckCanceled()
IDE. Code Style, Formatting
New Features
KT-35088Insert empty line between a declaration and declaration with commentKT-35106Insert empty line between a declaration and declaration with annotation
Fixes
KT-4194Code formatter should not move end of line comment afterifcondition to the next lineKT-12490Formatter inserts empty line between single-line declarations in presence of commentKT-22273Labeled statements are formatted incorrectlyKT-22362Formatter breaks up infix function used in elvis operatorKT-23811Formatter: Constructor parameters are joined with previous line if prefixed with an annotationKT-23929Formatter: chained method calls: "Chop down if long" setting is ignoredKT-23957Formatter tears comments away from file annotationsKT-30393Remove unnecessary whitespaces between property accessor and its parameter list in formatterKT-31881Redundant indent for single-line comments inside lamdbaKT-32277Space before by delegate keyword on property is not formattedKT-32324Formatter doesn't insert space after safe cast operatoras?KT-33553Formater does not wrap function chained expression body despite "chained function calls" settingsKT-34049Formatter breaks string inside template expression with elvis operatorKT-35093Formatter inserts empty line between single-line declarations in presence of annotationKT-35199Wrong formatting for lambdas in chain calls
IDE. Completion
Fixes
KT-15286Support import auto-completion for extension functions declared in objectsKT-23026Code completion: Incorrectconstin class declaration lineKT-23834Code completion and auto import do not suggest extension that differs from member only in type parameterKT-25732nullkeyword should have priority in completion sortKT-29840constis suggested inside the class body, despite it's illegalKT-29926Suggest lambda parameter names in IDE to improve DSL adoptionKT-31762Completion: Parameter name is suggested instead of enum entry in entry constructorKT-32615PIEAE for smart completion of anonymous function with importing name inside of functionKT-33979No completion for functions from nested objectsKT-34150No completion for object methods that override somethingKT-34386Typo in Kotlin arg postfix completionKT-34414Completion works differently for suspend and regular lambda functionsKT-34644Code completion list sorting: do not put method before "return" keywordKT-35042Selecting completion variant works differently for suspend and regular lambda parameterKT-36306Code completion inlines content of FQN class if completion called in string
IDE. Debugger
Fixes
KT-12242Breakpoint in a class is not hit if the class was first accessed in Evaluate ExpressionKT-16277Can't set breakpoint for object constructionKT-20342Step Over jumps to wrong position (KotlinUFile)KT-30909"Kotlin variables" button looks inconsistent with panel styleKT-32704ISE "Descriptor can be left only if it is last" on calling function with expression body inside Evaluate Expression windowKT-32736Evaluate Expression on statement makes error or shows nothingKT-32741"Anonymous functions with names are prohibited" on evaluating functions in Expression modeKT-33303"Smart step into" doesn't work for library declarationsKT-33304Can't put a breakpoint to the first line in fileKT-33728Smart Step Into doesn't work for @InlineOnly functionsKT-35316IndexNotReadyException on function breakpoint
IDE. Folding
KT-6316Folding of multiline functions which don't have curly braces (expression-body functions)
IDE. Gradle Integration
KT-35442KotlinMPPGradleModelBuilder shows warnings on import because it can't find a not existing directory
IDE. Gradle. Script
KT-31976Adding a space in build.gradle.kts leads to 'Gradle projects need to be imported' notificationKT-34441*.gradle.kts: load all scripts configuration at project importKT-34442*.gradle.kts: avoid just-in-case script configuration request to GradleKT-34530Equal duplicate script definitions are listed three times in PreferencesKT-34740Implement completion for implicit receivers in scripts with new scripting APIKT-34795Gradle Kotlin DSL new project template: don't usesetUrlsyntax insettings.gradle.ktspluginManagementblockKT-35096Duplicated “Kotlin Script” definition for Gradle/Kotlin projectsKT-35149build.graldle.kts settings importing: configuration for buildSrc/prepare-deps/build.gradle.kts not loadedKT-35205*.gradle.kts: avoid just-in-case script configuration request to Gradle while loading from FSKT-35563Track script modifications between IDE restarts
IDE. Hints. Parameter Info
KT-34992UI Freeze: Show parameter info leads to freezes
IDE. Inspections and Intentions
New Features
KT-8478Make 'Add parameter to function' quick fix work to parameters other than lastKT-12073Report IDE inspection warning on pointless unary operators on numbersKT-18536Provide proper quick fix for accidental override errorKT-34218Merge 'else if' intentionKT-36018'Missing visibility' and 'missing explicit return type' compiler and IDE diagnostics for explicit API mode
Fixes
KT-17659Cannot access internal Kotlin declaration from Java test code within the same moduleKT-25271"Remove redundant '.let' call" may introduce expression side effects several timesKT-29737"Make internal/private/protected" intention works for eitherexpectoractualsideKT-31967Typo in inspection name: "'+=' create new list under the hood"KT-32582Ambiguous message for [AMBIGUOUS_ACTUALS] error (master)KT-33109"Add constructor parameters" quick fix should add default parameters from super classKT-33123False positive "Redundant qualifier name" with inner class as constructor parameter for outerKT-33297Improve parameter name inAdd parameter to constructorquick fixKT-33526False positive "Redundant qualifier name" with enum constant initialized with companion object fieldKT-33580False positive "Redundant visibility modifier" overriding property with protected set visibilityKT-33771False positive "Redundant Companion reference" with Java synthetic property and same-named object propertyKT-33796INVISIBLE_SETTER: quick fix "Make '' public" does not remove redundant setterKT-33902False positive for "Remove explicit type specification" with type alias as return typeKT-33933"Create expect" quick fix generates the declaration in a default source set even if an alternative is chosenKT-34078ReplaceWith does not work if replacement is fun in companion objectKT-34203'Add constructor parameter' fix does not add genericsKT-34297"Add 'replaceWith' argument" inserts positional instead of named argumentKT-34325"Control flow with empty body" inspection should not report ifs with commentsKT-34411Create expect/actual quick fix: focus is lost in the editor (193 IDEA)KT-34432Replace with safe call intention inserts redundant elvis operatorKT-34603"Remove redundant '.let' call" false negative for reference expressionKT-34694"Terminate preceding call with semicolon" breaks lambda formattingKT-34784"Indent raw string" intention: do not suggest in constKT-34894Action "Add not-null asserted (!!) call" doesn't fix error for properties with omittedthisKT-35022Quickfix "change to var" doesn't removeconstmodifierKT-35208NPE from PerModulePackageCacheServiceKT-35242Text-range based inspection range shifts wrongly due to incremental analysis of whitespace and commentsKT-35288False positive "Remove braces from 'when' entry" in 'when' expression which returns lambdaKT-35837Editing Introduce import alias does not affect KDocKT-36020Intention 'Add public modifier' is not available for highlighted declaration in explicit api modeKT-36021KDoc shouldn't be highlighted on 'visibility must be specified' warning in explicit api modeKT-36307False positive "Remove redundant '.let' call" for nested lambda change scope reference
IDE. Multiplatform
KT-33321In IDE, actuals of intermediate test source set are incorrectly matched against parent main source-set (not test one)
IDE. Navigation
KT-30736References for import alias from kotlin library not found using ReferencesSearch.searchKT-35310PIEAE: "During querying provider Icon preview" at ClsJavaCodeReferenceElementImpl.multiResolve() on navigation to Kotlin declaration
IDE. Refactorings
Performance Improvements
KT-24122Long pauses with "removing redundant imports" dialog on rename refactoring for IDEA Kotlin Plugin
Fixes
KT-18191Refactor / Copy multiple files/classes: package statements are not updatedKT-18539Default implement fun/property text shouldn't contain scary commentKT-28607Extract/Introduce variable fails if caret is just after expressionKT-32514Moving file in with 'search for references' inlines contents in referred source codeKT-32601Introduce variable in unformatted lambda causes PIEAEKT-32999Renaming parameter does not rename usage in named argument in a different fileKT-33372Rename resource cause its content to be replacedKT-34415Refactor > Change signature of an overridden actual function from a platform class: "org.jetbrains.kotlin.descriptors.InvalidModuleException: Accessing invalid module descriptor"KT-34419Refactor > Change signature > add a function parameter: "org.jetbrains.kotlin.descriptors.InvalidModuleException: Accessing invalid module descriptor"KT-34459Change method signature with unresolved lambda type leads to errorKT-34971Refactor / Copy for declarations from different sources throws IAE: "unexpected element" at CopyFilesOrDirectoriesHandler.getCommonParentDirectory()KT-35689Change Signature: "InvalidModuleException: Accessing invalid module descriptor" on attempt to change receiver type of a member abstract functionKT-35903Change Signature refactoring crashes by InvalidModuleException on simplest examples
IDE. Run Configurations
KT-34632Kotlin/JS: Can not run single test methodKT-35038Running a test in a multi-module MPP project via IntelliJ Idea gutter action produces incorrect Gradle Run configuration
IDE. Script
KT-34688Many "scanning dependencies for script definitions progresses at the same timeKT-35886UI Freeze: ScriptClassRootsCache.hasNotCachedRoots 25 seconds
IDE. Tests Support
KT-33787IDE tests: Not able to run single test using JUnit
IDE. Wizards
New Features
KT-36043Gradle, JS: Add continuous-mode run configuration in New Project Wizard templates
Fixes
KT-35584New Project wizard: module names restrictions are too strong with no reasonKT-35690New Project wizard: artifact and group fields are mixed upKT-35694New Project wizard creates settings.gradle.kts even for Groovy DSLKT-35695New Project wizard useskotlin ()call for dependencies in non-MPP Groovy-DSL JVM projectKT-35710New Project wizard creates non-Java source/resource roots for Kotlin/JVM JPSKT-35711New Project wizard: Maven: "Kotlin Test framework" template adds wrong dependencyKT-35712New Project wizard: source root templates: switching focus from root reverts custom settings to defaultKT-35713New Project wizard: custom settings for project name, artifact and group ID are reverted to default on Previous/NextKT-35715New Project wizard: Maven: custom repository required for template (ktor) is not added to pom.xmlKT-35718New Project wizard: Gradle: ktor: not existing repository is addedKT-35719New Project wizard: Multiplatform library: entryPoint specifies not existing class nameKT-35720New Project wizard: Multiplatform library: Groovy DSL: improve the script for nativeTarget calculation
JS. Tools
KT-35198Kotlin/JS: with references to NPM/.kjsm library DCE produces invalid resulting JavaScriptKT-36349KJS: JS DCE use file's timestamps to compare files. It conflicts with gradle configuration 'preserveFileTimestamps = false'.
JavaScript
KT-30517KJS generates wrong call for secondary constructor w/ default argument when class inherited by object expressionKT-33149Lambda is not a subtype ofFunction<*>KT-33327JS IR backend works incorrectly when function and property have the same nameKT-33334JS IR backend can't access private var from internal inline function
Libraries
New Features
KT-7657scan()functions for Sequences and IterableKT-15363Builder functions for basic containersKT-21327Add Deque & ArrayDeque to Kotlin standard libraryKT-33069StringBuilder common functionsKT-33761reduceOrNull: reduce that doesn't throw on empty inputKT-35347Create method Collection.randomOrNull()KT-36118Provide API for subtyping relationship between CoroutineContextKey and elements associated with this key
Fixes
KT-17544JS: document array destructuring behaviorKT-33141UnderMigration annotation is defined in Kotlin, but supposed to be used from JavaKT-33447runCatching docs suggests it catches exceptions but it catches throwablesKT-35175Clarify documentation for XorWowRandomKT-35299Float.rangeTo(Float): ClosedFloatingPointRange doesn't exist in the common stdlib.
Reflection
KT-14720Move KClass.cast / KClass.isInstance into kotlin-stdlibKT-33646Make KClass.simpleName available on JVM without kotlin-reflect.jarKT-34586Make KClass.qualifiedName available on JVM without kotlin-reflect.jar
Tools. CLI
KT-29933Support relative paths in -Xfriend-pathsKT-34119Add JVM target bytecode version 13KT-34240CLI kotlinc help -include-runtime has redundant space
Tools. Gradle
KT-25206Delegate build/run to gradle results regularly in cannot delete proto.tab.value.sKT-35181Make kapt Gradle tasks compatible with instant execution
Tools. Gradle. JS
New Features
KT-30659Run NodeJS debugger when running debug gradle task from IDEAKT-32129Karma: support debuggingKT-32179DSL: allow npm in root dependencies section of single platform projectsKT-32283Webpack: Allow to configure Webpack modeKT-32323Webpack: support optimized webpack bundleKT-32785Webpack: Asset bundling in distributions folder
Fixes
KT-30917Tests: Inner classes mapped incorrectly in short test fail messageKT-31894ithout Kotlin sourcesbrowserRunmakes the build failKT-34946DCE require some/all transitive dependencies. Invalid compilation result otherwiseKT-35318IllegalStateException on clean build withleft-padpackage and generateKotlinExternals=trueKT-35428Gradle dependency with invalid package.jsonKT-35598Actualize NPM dependencies in 1.3.70KT-35599Actualize Node and Yarn versions in 1.3.70KT-36714Webpack output doesn't consider Kotlin/JS exports (library mode)
Tools. Gradle. Multiplatform
KT-31570Deprecate Kotlin 1.2.x MPP Gradle pluginsKT-35126Support Gradle instant execution for Kotlin/JVM and Android tasksKT-36469Dependencies with compileOnly scope are not visible in Gradle build of MPP with source set hierarchies support
Tools. Gradle. Native
KT-29395Allow setting custom destination directory for Kotlin/Native binariesKT-31542Allow changing a name of a framework created by CocoaPods Gradle pluginKT-32750Support subspecs in CocoaPods pluginKT-35352MPP Gradle plugin: Support exporting K/N dependencies to shared and static librariesKT-35934Gradle MPP plugin: Spaces are not escaped in K/N compiler parametersKT-35958Kotlin/Native: Gradle: compiling test sources with no sources in main roots halts the Gradle daemon
Tools. J2K
New Features
KT-21811Convert string concatenation into multiline string
Performance Improvements
KT-16774UI Freeze: J2K, PlainTextPasteImportResolve: IDEA freezes for 10+ seconds when copy-pasting Java code from external source to Kotlin file
Fixes
KT-18001Multi-line comments parsed inside Kdoc commentsKT-19574Code with inferred default parameters and parameter vs property name clashesKT-32551Non-canonical modifiers order inspection is not applied during convertion of inner super classKT-33637Property with getter is converted into incompailable code if backing field was not generatedKT-34673First comment in function (if, for, while) block is moved to declaration line of blockKT-35081Invalid code with block comment (Javadoc)KT-35152J2K breaks formatting by moving subsequent single line comments to first columnKT-35395UninitializedPropertyAccessException throughorg.jetbrains.kotlin.nj2k.conversions.ImplicitCastsConversionwhen anonymous inner class passes itself as argument to outer methodKT-35431"Invalid PSI class com.intellij.psi.PsiLambdaParameterType" with lambda argument in erroneous codeKT-35476Expression with compound assignment logical operator is changing operator precedence without parenthesesKT-35478Single line comment before constructor results in wrong codeKT-35739Line break is not inserted for private property getterKT-35831Error on inserting plain text with\rchar
Tools. Scripts
KT-34274Add support for@CompilerOptionsannotation inkotlin-main-ktsKT-34716Implement default cache in main-ktsKT-34893Update apache ivy version in kotlin-main-ktsKT-35413Implement "evaluate expression" command line parameter and functionality in the JVM cli compilerKT-35415Implement script and expression evaluation in thekotlinrunnerKT-35416load main-kts script definition by default in the jvm compiler, if the jar is available
Tools. kapt
KT-30164Default field value not transmitted to Java source model for mutable propertiesKT-30368Deprecated information not transmitted to Java source modelKT-32832Turn worker API on by defaultKT-33617Java 9+: "IllegalStateException: Should not be called!"KT-34167Annotation Processor incorrectly marked as isolating causes full rebuild silently.KT-34258kapt.incremental.apt=truemakes build failed after moving annotation processor filesKT-34569Kapt doesn't handle methods with both the @Override annotation andoverridekeywordKT-36113Enabling kapt.incremental.apt makes remote build cache miss viaclasspathStructure$kotlin_gradle_pluginproperty
1.3.61
Compiler
KT-35004"AssertionError: Unsigned type expected" inwhenrange check in extension on unsigned type
IDE
KT-34923[Regression] KtUltraLightMethod.hasModifierProperty("native") returns false for external Kotlin functions
Libraries
KT-21445W3C DOM Touch events and interfaces are incomplete / missing
Tools. Compiler Plugins
KT-34991kotlinx.serialization: False warning "Explicit @Serializable annotation on enum class is required when @SerialName or @SerialInfo annotations are used on its members"
Tools. J2K
KT-34987New J2K converter: @NotNull annotations are not removed after converting java code to kotlinKT-35074J2K: No auto conversion in 'for' loop with multiple init variables
1.3.60
Android
KT-27170Android lint tasks fails in Gradle with MPP dependency
Compiler
New Features
KT-31230Refine rules for allowed Array-based class literals on different platforms: allowArray::classeverywhere, disallowArray<...>::classon non-JVMKT-33413Allow 'break' and 'continue' in 'when' statement to point to innermost surrounding loop
Performance Improvements
KT-14513Suboptimal compilation of lazy delegated properties with inline getValueKT-28507Extra InlineMarker.mark invocation in generated suspending function bytecodeKT-29229Intrinsify 'in' operator for unsigned integer ranges
Fixes
KT-7354Confusing error message when trying to access package local java classKT-9310Don't make interface and DefaultImpls methods synchronizedKT-11430Improve diagnostics for dangling lambdasKT-16526Provide better error explanation when one tries to delegate var to read-only delegateKT-20258Improve annotation rendering in diagnostic messagesKT-22275Unify exceptions from null checksKT-27503Private functions uses from inside of suspendCoroutine go though accessorKT-28938Coroutines tail-call optimization does not work for generic returns that had instantiated to UnitKT-29385"AnalyzerException: Expected an object reference, but found I" for EXACTLY_ONCE non-inline contract with captured class constructor parameterKT-29510"RuntimeException: Trying to access skipped parameter" with EXACTLY_ONCE contract and nested call of crossinline lambdaKT-29614java.lang.VerifyError: Bad type on operand stack - in inlining, crossinline in constructor with EXACTLY_ONCE contractKT-30275Get rid of session in FirElementKT-30744Invoking Interface Static Method from Extension method generates incorrect jvm bytecodeKT-30785Equality comparison of inline classes results in boxingKT-32217FIR: support delegated properties resolveKT-32433NI: UninferredParameterTypeConstructor with class propertyKT-32587NI: Type mismatch "String" vs "String" in IDE on generic .invoke on generic delegated propertyKT-32689Shuffled line numbers in suspend functions with elvis operatorKT-32851Constraint for callable reference argument doesn't take into account use-site varianceKT-32864The line number of assertFailsWith in suspending function is lostKT-33125NI: "Rewrite at slice INDEXED_LVALUE_SET" with Mutable Map set index operator inside "@kotlin.BuilderInference" blockKT-33414'java.lang.AssertionError: int type expected, but null was found in basic frames' in kotlin-io while building library trainKT-33421Please make NOTHING_TO_INLINE warning shorterKT-33504EA-209823 - ISE: ProjectResolutionFacade$computeModuleResolverProvider$resolverForProject$$.invoke: Can't find builtIns by key CacheKeyBySdkKT-33572Scripting import with implicit receiver doesn't workKT-33821Compiler should not rely on the default locale when generating boxing for suspend functionsKT-18541Prohibit "tailrec" modifier on open functionsKT-19844Do not render type annotations on symbols rendered in diagnostic messagesKT-24913KotlinFrontEndException with local class in init of generic classKT-28940Concurrency issue for lazy values with the post-computation phaseKT-31540Change initialization order of default values for tail recursive optimized functions
Docs & Examples
KT-26212Update docs to explicitly mention that union is opposite of intersectKT-34086Website, stdlib api docs: unresolved link jvm/stdlib/kotlin.text/-charsets/Charset
IDE
Fixes
KT-8581'Move Statement' doesn't work for statement finished by semicolonKT-9204Shorten references and some other IDE features have problem when package name clash with class nameKT-17993Annotations are colored the same as language keywordsKT-21037LazyLightClassMemberMatchingError$WrongMatch “Matched :BAR MemberIndex(index=0) to :BAR MemberIndex(index=1) in KtLightClassImpl” after duplicating values inside enum classKT-23305We should be able to see platform-specific errors in common moduleKT-23461Move statement up/downattaches a comment block to the function being movedKT-26960IDE doesn't reportactualwithoutexpectplaced into a custom platform-agnostic source setKT-27243LazyLightClassMemberMatchingError when overriding hidden memberKT-28404Gradle configuration page is missing from a New Project Wizard creation flow for multiplatform templatesKT-30824No highlighting of declaration/usage of function with functional-type (lambda) parameter on its usageKT-31117AssertionError atCompletionBindingContextProvider._getBindingContextwhen typing any character within string with injected KotlinKT-31139"Override members" on enum inserts semicolon before enum bodyKT-31810Paste inside indented.trimIndent()raw string doesn't respect indentationKT-32401Exceptions while running IDEA in headless mode for building searchable optionsKT-32543UltraLight support for Kotlin collections.KT-32544Support UltraLight classes for local/anonymous/enum classesKT-327992019.2 RC (192.5728.74) Kotlin plugin exception during build searchable options (Directory index may not be queried for default project)KT-33008IDEA does not report in MPP: Upper bound of a type parameter cannot be an arrayKT-33316Kotlin Facet: make sure the order of allPlatforms value is fixedKT-33561LazyLightClassMemberMatchingError when overloading synthetic memberKT-33584Make kotlin light classes return no-arg constructor when no-arg (or jpa) compiler plugin is enabledKT-33775please remove usages of org.intellij.plugins.intelliLang.inject.InjectorUtils#putInjectedFileUserData(com.intellij.lang.injection.MultiHostRegistrar, com.intellij.openapi.util.Key, T) deprecated eons agoKT-33813Poor formatting of 'Selected target platforms' and 'Depends on' in facet settingsKT-33937delay() completion from kotlinx.coroutines causes happening of root package in codeKT-33973Kotlin objects could abuse idea plugin functionalityKT-34000Import quickfix does not work for extension methods from objectsKT-34070"No target platforms selected" message for commonTest facet at mobile shared library projectKT-34191Since-build .. until-build compatibility ranges are the same for 192 and 193 IDE pluginsKT-21153IDE: string template + annotation usage: ISE: "Couldn't get delegate" at LightClassDataHolderKt.findDelegate()KT-33352"KotlinExceptionWithAttachments: Couldn't get delegate for class" on nested class/objectKT-34042"Error loading Kotlin facets. Kotlin facets are not allowed in Kotlin/Native Module" in 192 IDEAKT-34237MPP with Android target:common*source sets are not shown as source roots in IDEKT-33626Deadlock with Kotlin LockBasedStorageManager in IDEA commit dialogKT-34402Unresolved reference to Kotlin.test library in CommonTest in Multiplatform project without JVM targetKT-34639Multiplatform project with the only (Android) target is incorrectly imported into IDE
IDE. Completion
KT-10340Import completion unable to shorten fq-names when there is a conflict between package name and local identifierKT-17689Code completion for enum typealias doesn't show membersKT-28998Slow completion for build.gradle.kts (Kotlin Gradle DSL script)KT-30996DSL extension methods which are not applicable are offered for completionKT-31902Fully qualified name is used fordelayinstead of import and just method nameKT-33903Duplicating completion for imported extensions from companion objects
IDE. Debugger
KT-10984Disallow placing line breakpoints without executable code (changed)KT-22116Support function breakpointsKT-24408@InlineOnly: Misleading status for breakpoints in inline functionsKT-27645Debugger breakpoints do not work in suspend function executed in SpringBoot controller (MVC and WebFlux)KT-32687Disallow breakpoints for @InlineOnly function bodiesKT-32813Exception on invoking "Smart Step Into"KT-32830NPE on changing class property in Evaluate Expression windowKT-33064“Read access is allowed from event dispatch thread or inside read-action only” from KotlinLineBreakpointType.createLineSourcePosition on adding new line before the current one while stopping on breakpointKT-11395Breakpoint inside lambda argument of InlineOnly function doesn't work
IDE. Folding
KT-6314Folding of "when" construction
IDE. Gradle
KT-33038Package prefix is not imported in non-MPP projectKT-33987Serialization exception during importing Kotlin project in IDEA 192KT-32960KotlinMPPGradleModelBuilder takes a long time to process when syncing non-MPP project with IDEKT-34424With Kotlin plugin in Gradle project without Native the IDE fails to start Gradle task: "Kotlin/Native properties file is absent at null/konan/konan.properties"KT-34256Fail to use multiplatform modules with dependsOn with android pluginKT-34663Low performance of MPP 1.2 during import with module-per-source-set enabled
IDE. Gradle. Script
KT-31766Gradle Kotlin DSL new project template: use type-safe model accessorsKT-34463New Gradle-based project template misses pluginManagement{} block in EAP branchKT-31767Gradle Kotlin DSL new project template: use settings.gradle.kts
IDE. Inspections and Intentions
New Features
KT-26431Quickfix to remove redundant labelKT-28049Suggest import quickfix for operator extension functionsKT-29622"Move to separate file" intention should also work for sealed classKT-33178Use a new compiler flag -Xinline-classes during enabling the feature via IDEA intentionKT-33586"Constructors are not allowed for objects" diagnostic needs quickfix to change object to class
Fixes
KT-12291Override/Implement Members: better member positioning inside the classKT-14899Quickfix "Create member function" inserts too many semicolons when applied to EnumKT-15700"Convert lambda to reference" does not work with backtick-escaped referencesKT-18772"Introduce subject to when": don't choose an object or a constant as the subjectKT-21172Join declaration and assignment should place the result at the assignment, not at declarationKT-25697Replace with dot callquickfix breaks formattingKT-26635An empty line is added afteractualmodifier on "Create actual annotation class..." quick fix applied to annotation if it is annotated with commentKT-27270"Add jar to classpath" quick fix modifies build.gradle of MPP project in a way that fails to be importedKT-28471"Add initializer" quickfix initializes non-null variable with nullKT-28538create expected ...quick fix illegally createsexpectmember with a usage of a platform-specific typeKT-28549Create actual/expect quick fix for class/object doesn't add import for an inherited memberKT-28620Create expect/actual ...quick fix could save @Test annotation on generationKT-28740AE “2 declarations in var bar: [ERROR : No type, no body]” after applying “Create actual class” quick fix for class with property which has not specified typeKT-28947Backing field has created after applying “Create expected class in common module...” intentionKT-30136False negative "Redundant explicit 'this'" with local variableKT-30794Quickfix for unchecked cast produces invalid codeKT-31133Liveness analysis on enum does not take into account calls to 'values'KT-31433Incorrect "Create expected class..." for class with supertypeKT-31475"Create expect..." should delete 'override' modifierKT-31587Redundantprivatemodifier before primary constructor after createactualclassKT-31921"Create expected ..."/"Create actual..." quick fix:valandvarargmodifiers are misordered in the generatedexpect/actualdeclarationKT-31999"Variable declaration could be moved intowhen" inspection suggests to inline expression containing return (throw) statementKT-32012Change parameter type quick fix: Don't use qualified nameKT-32468False positive SimplifiableCall "filter call could be simplified to filterIsInstance" with expression body function and explicit return typeKT-32479False positive "Redundant overriding method" with derived property and base function starting withget,setoris(Accidental override)KT-32571"Create expect" quick fix incorrectly treats multiplatform stdlib typealiased types as platform-specific onesKT-32580"Remove braces" QF for single-expression function with inferred lambda return type: "ClassCastException: class kotlin.reflect.jvm.internal.KClassImpl cannot be cast to class kotlin.jvm.internal.ClassBasedDeclarationContainer"KT-32582Ambiguous message for [AMBIGUOUS_ACTUALS] error (master)KT-32586"Make member open" quick fix doesn't update all the related actualisations of an expected memberKT-32616"To ordinary string literal" doesn't remove indents, newlines andtrimIndentKT-32642"Create expect" quick fix doesn't warn about a platform-specific annotation applied to the generated memberKT-32650"Replace 'if' with 'when'" removes braces from 'if' statementKT-32694"Create expect"/"create actual" quick fix doesn't transfer use-site annotationsKT-32737"Create expect" quick fix addsactualmodifier to an interface function with default implementation without a warningKT-32768"Create expect" quick fix doesn't warn about a local supertype of anactualclass while generating an expected declarationKT-32829"Add .jar to the classpath" quick fix creates "compile"/"testCompile" dependencies in build.gradleKT-32972No "remove braces" inspection for ${this}KT-32981"Create enum constant" quick fix adds redundant empty lineKT-33060"Cleanup code" does not remove 'final' keyword for overridden function with non-canonical modifiers orderKT-33115"Replace overloaded operator with function call" intention should not be shown on incomplete expressionsKT-33150Don't suggest create expect function from function withprivatemodifierKT-33153False positive "Redundant overriding method" when overriding package private methodKT-33204False positive "flatMap call could be simplified to flatten()" with ArrayKT-33299"Create type parameter from usage" should work with backticksKT-33300"Create type parameter from usage" suggests for top level propertyKT-33302KNPE after "Create type parameter from usage" with typealiasKT-33357'java.lang.Throwable: Assertion failed: Refactorings should be invoked inside transaction 'exception occurs when extracting sealed class from file with the same nameKT-33362Inspection "Extract class from current file" is not available for 'sealed' keywordKT-33437“Argument rangeInElement (0,1) endOffset must not exceed descriptor text range (0, 0) length (0).” on creating Kotlin Script files inside packageKT-33612"Replace with safe call" quick fix moves code to another lineKT-33660"Convert to anonymous object" with nested SAM interface insertsobjectkeyword in the wrong placeKT-33718"Create enum constant" quick fix adds after semicolonKT-33754Improve error hint message for "Create expect/actual..."KT-33880"Convert to range check" produces code that is subject to ReplaceRangeToWithUntil for range with exclusive upper boundKT-33930Don't suggest "create expect" quick fix onlateinitandconsttop-level propertiesKT-33981“KotlinCodeInsightWorkspaceSettings is registered as application service, but requested as project one” on opening QF menu for some fixes in IJ193KT-32965False positive "Redundant qualifier name" with nested enum member callKT-33597False positive "Redundant qualifier name" with class property initialized with same-named object propertyKT-33991False positive "Redundant qualifier name" with enum member function callKT-34113False positive "Redundant qualifier name" with Enum.values() from a different Enum
IDE. KDoc
KT-20777KDoc: Type parameters are not shown in sample code
IDE. Multiplatform
KT-26333IDE incorrectly requiresactualimplementations to be present in all the project source setsKT-28537Platform-specific type taken from a dependency module isn't reported incommoncodeKT-32562Provide a registry key to enable/disable hierarchical multiplatform mechanism in IDE
IDE. Navigation
KT-28075Duplicate "implements" gutter icons on some interfacesKT-30052Duplicated "is subclassed" editor gutter iconsKT-33182com.intellij.idea.IdeStarter#main has four (!) icons, should be two
IDE. REPL
KT-33329IllegalArgumentException in REPL
IDE. Refactorings
KT-24929'Search for references' checkbox state isn't saved on move of kotlin fileKT-30342Move refactoring: suggest file name starting with an uppercase letterKT-32426Invalid code format after "Pull Members Up" on function with comment and another indentKT-32496"Problems Detected" dialog message about conflicting declarations on moving file to another package is absolutely unreadableKT-33059Exception [Assertion failed: Write access is allowed inside write-action only] in case of Move class to nonexistent folderKT-33972Change signature should affect all hierarchy
IDE. Run Configurations
KT-34366Implement gutters for running tests (multi-platform projects)
IDE. Scratch
KT-23986No access to stdout output in Kotlin scratchKT-23989Scratch: allow copy of a scratch outputKT-28910Add hint for Make before Run checkboxKT-29407strange output for long stringsKT-31295Kotlin worksheet in projects, not as scratch filesKT-32366Sidebar as alternative output layoutKT-33585Synchronized highlighting of the main editor and side panel
IDE. Script
KT-30206Settings / ... / Kotlin Scripting with no project opened causes ISE: "project.baseDir must not be null" at ScriptTemplatesFromDependenciesProvider.loadScriptDefinitions()KT-32513Intellij hangs in ApplicationUtilsKt.runWriteAction through ScriptDependenciesLoader$submitMakeRootsChange$doNotifyRootsChanged$1.run
IDE. Wizards
KT-27587Bump Android build tools version atMultiplatform (Android/iOS)template of the New Project WizardKT-33927MPP, Kotlin New project wizard: broken project generationKT-34108Gradle Kotlin DSL: generated project withtaskselement fails on configuration stage with Gradle 4.10KT-34154New Project wizard: build.gradle.kts: type-safe code sets JVM 1.8 for main, but JVM 1.6 for testKT-34229New Project wizard: IDEA 193+: Mobile Android/iOS: creating another project of this type tries to write into previous one
JavaScript
KT-12935Generated source maps for JS mention nonexistent dummy.ktKT-26701JS, rollup.js: Application can't depend on a library if both sourcemaps reference "dummy.kt"
Libraries
KT-26309Avoid division in string-to-number conversionsKT-27545File.copyTo: unclear error message when it fails to delete the destinationKT-28804Wrong parameter name in kotlin.text.contentEqualsKT-32024ModifyIterable<T>.take(n)implementation not to call.next()more than necessaryKT-32532MutableList.removeAll is lacking documentationKT-32728CollectionsKt.windowed throws IllegalArgumentException (Illegal Capacity: -1) when size param is Integer.MAX_VALUE due to overflow operationKT-33864Read from pseudo-file system is empty
Reflection
KT-13936KotlinReflectionInternalError on invoking callBy on overridden member with inherited default argument valueKT-17860Improve KParameter.toString for receiver parameters
Tools
KT-17045Drop MaxPermSize support from compiler daemonKT-32259org.jetbrains.annotationsmodule exported from embeddable compiler, causes problems in Java modular builds
Tools. Android Extensions
KT-32096IDE plugin doesn't recognize that Parcelize is no longer experimental
Tools. CLI
KT-24991CLI: Empty classpath inkotlinscript except forkotlin-runner.jarKT-26624Set Thread.contextClassLoader when running programs with 'kotlin' launcher script or scripts with 'kotlinc -script'KT-24966Classloader problems when running basic kafka example withkotlinandkotlinc
Tools. Compiler Plugins
KT-29471output from jvm-api-gen plugin on classpath crashes downstream kotlinc-jvm: inline method with inner classKT-33630cannot use @kotlinx.serialization.Transient and lateinit together on 1.3.50
Tools. Daemon
KT-32992Enable assertions in Kotlin Compile DaemonKT-33027Compilation with daemon fails, because IncrementalModuleInfo#serialVersionUID does not match
Tools. Gradle
New Features
KT-20760Kotlin Gradle Plugin doesn't allow for configuring friend paths through APIKT-34009Associate compilations in the target–compilation project model
Performance Improvements
KT-31666Kotlin plugin configures all tasks in a project whenkotlin.incrementalis enabled
Fixes
KT-17630User test Gradle source set code cannot reach out internal members from the production codeKT-22213Android Extensions experimental mode doesn't work with Gradle Kotlin DSLKT-31077android.kotlinOptions block is lacking its typeKT-31641Kapt configurations miss attributes to resolve MPP dependencies: Cannot choose between the following variants ...KT-31713ConcurrentModificationException: Realize Pending during execution phaseKT-32678Bugfixes in HMPP source set visibilityKT-32679Testing & test tasks API in the target–compilation modelKT-32804Kapt-generated Java sources in jvm+withJava MPP module are not compiled and bundledKT-32853ConcurrentModificationException when compiling with Gradle.KT-32872Gradle test runner for Native does not show failed build if process quit without starting printing results.KT-33105kapt+withJava in multiplatform module depending on other multiplatform fails on 1.3.50-eap-54KT-33469Drop support for Gradle versions older than 4.3 in the Kotlin Gradle pluginKT-33470Drop support for Gradle versions older than 4.9 in the Kotlin Gradle pluginKT-33980Read the granular source sets metadata flag value once and cache it for the current Gradle buildKT-34312UnsupportedOperationException onrequiresVisibilityOfin the Kotlin Gradle plugin
Tools. Gradle. JS
New Features
KT-31478Gradle, JS tests, Karma: Support sourcemaps in Gradle stacktracesKT-32073Gradle, JS, karma: parse errors and warnings from karma outputKT-32075Gradle, JS, karma: download chrome headless using puppeteer
Fixes
KT-31663Gradle/JS: with not installed browser specified for browser test the response is "Successful, 0 tests found"KT-32216Gradle, JS, tests: filter doesn't workKT-32224In Gradle Kotlin/JS projects, thebrowserWebpacktask does not rerun when themaincompilation's outputs changeKT-32281Gradle, JS, karma: Headless chrome output is not capturedKT-33288JS: Incorrect bundle with webpack output.library and source mapsKT-33313When a Kotlin/JS test task runs using a custom compilation, it doesn't track the compilation outputs in its up-to-date checksKT-33547Template JS Client and JVM Server works wrong on 1.3.50 KotlinKT-33549Gradle Kotlin/JS external declarations: search fortypingskey insidepackage.jsonKT-33579Js tests with mocha cannot be runKT-33710Task "generateExternals" for automatic Dukat execution does not workKT-33716Gradle, Yarn: yarn is not downloading via YarnSetupTaskKT-34101CCE class org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest_Decorated cannot be cast to class org.gradle.api.provider.Provider on importing Gradle project with JSKT-34123"Cannot find node module "kotlin-test-js-runner/kotlin-test-karma-runner.js"" inJS Client and JVM Servernew project wizard templateKT-32319Gradle, js, webpack: source-map-loader failed to load source contents from relative urlsKT-33417NodeTest failed with error "Failed to create MD5 hash" after NodeRun is executedKT-33747Exception doesn't fail the test in kotlin js node runnerKT-33828jsPackageJson task fails after changing artifact origin repositoryKT-34460NPM packages clash if declared in dependencies and devDependencies bothKT-34555[Kotlin/JS] Unsafe webpack config merge
Tools. Gradle. Native
KT-33076MPP Gradle plugin: Produce final native binaries from compilation output instead of sourcesKT-33645Kotlin/Native: Compilation failure if a library passed by the -Xinclude option contains a constructor annotated with @OverrideInitKT-34259MPP Gradle plugin: Support fat frameworks for watchOS and tvOSKT-34329Support watchOS and tvOS in CocoaPods Gradle plugin
Tools. J2K
New Features
KT-7940J2K: convert Integer.MAX_VALUE to Int.MAX_VALUEKT-22412J2K: Intention to replace if(...) throw IAE with requireKT-22680Request: when converting Java->Kotlin, try to avoid creating functions for constant fields (static final)
Performance Improvements
KT-33725Java->Kotlin converter on paste performs expensive reparse in unrelated contextsKT-33854J2K conversion of Interface freezes UI for more than 10 seconds without progress dialogKT-33875[NewJ2K] InspectionLikeProcessingGroup pipeline rework: query isApplicable in parallel for all element first, apply relevant after in EDT
Fixes
KT-19603A mutable container property updated from another class converts to red codeKT-19607Static member qualified by child class converted to red codeKT-20035Automatic conversion from Java 1.8 to Kotlin 1.1.4 using Idea 2017.2.2: null!!KT-21504J2K: Convert Long.parseLong(s) to s.toLong()KT-24293Bug: conversion of Java "List" into Kotlin doesn't produce "MutableList"KT-32253Converting Java class with field initialized by constructor parameter used to initialize a different field or named as a different field produces red codeKT-32696New J2K: java List is wrongly converted when pasting it to Kotlin fileKT-32903J2K: Static import is converted to unresolved referenceKT-33235Remove "Replace guard clause with kotlin's function call" inspection and tranform it to J2K post-processingKT-33434UninitializedPropertyAccessException occurs after J2K convertion of package with custom functional interface and it's usageKT-33445Two definitions of org.jetbrains.kotlin.idea.j2k.J2kPostProcessing in Kotlin 1.3.50-rcKT-33500Unresolved reference after J2K convertion of isNaN/isFiniteKT-33556J2K converter fails on statically imported global overloaded functionsKT-33679Result of assignment with operation differs in kotlin after J2K conversionKT-33687Extra empty lines are added after comment after J2K conversionKT-33743Reference to static field outside its class is unresolved after J2K conversionKT-33756J2K: main method with varargs is converted to non-runnable main kotlin methodKT-33863java.lang.IllegalStateException: argument must not be null exception occurs on J2K conversion of Generic class usage without type parameterKT-19355"Variable expected" error after J2K for increment/decrement of an object fieldKT-19569Java wrappers for primitives are converted to nullable types with nullability errors in KotlinKT-30643J2K: wrong position of TYPE_USE annotationKT-32518Nullability information is lost after J2K convertion of constructor with null parameterKT-33941J2K: Overload resolution ambiguity with assertThat andStackOverflowErrorin IDEAKT-33942New J2K:StackOverflowErrorfromorg.jetbrains.kotlin.nj2k.inference.common.BoundTypeCalculatorImpl.boundTypeUnenhancedKT-34164J2K: on converting static method references in other .java sources are not correctedKT-34165J2K: imports are lost in conversion, references resolve to different same-named classesKT-34266Multiple errors after converting Java class implementing an interface from another file
Tools. JPS
KT-33808JPS compilation is not incremental in IDEA 2019.3
Tools. Maven
KT-34006Maven plugin do not consider .kts files as Kotlin sourcesKT-34011Kotlin scripting plugin is not loaded by default from kotlin maven plugin
Tools. REPL
KT-27956REPL/Script: extract classes and names right from ClassLoader
Tools. Scripts
KT-31661ClassNotFoundException in runtime for 'kotlinc -script' while compilation is fineKT-31704[kotlin-scripting] passingnameto String.toScriptSource make script compilation failedKT-32234"Unable to derive module descriptor" when using Kotlin compiler (embeddable) in Java 9+ modular buildsKT-33529NCDF running kotlin script from command lineKT-33554Classpath not passed properly when evaluating standard script withkotlincKT-33892REPL/Script: Implement mechanism for resolve top-level functions and properties from classloaderKT-34294SamWithReceiver cannot be used with new scripting API
Tools. kapt
KT-31291Incremental Kapt: IllegalArgumentException fromorg.jetbrains.org.objectweb.asm.ClassVisitor.<init>KT-33028Kapt error "Unable to find package java.lang in classpath or bootclasspath" on JDK 11 with-source 8KT-33050kapt does not honor source/target compatibility of enclosing projectKT-33052Kapt generates invalid java stubs for enum members with class bodies on JDK 11KT-33056Incremental kapt is disabled due tojavaslang.match.PatternsProcessorprocessor on classpath when Worker API is enabledKT-334931.3.50, org.jetbrains.org.objectweb.asm.ClassVisitor.KT-33515Incremental kapt fails when I remove an annotated fileKT-33889Incremental KAPT: NoSuchMethodError: 'java.util.regex.Pattern com.sun.tools.javac.processing.JavacProcessingEnvironment.validImportStringToPattern(java.lang.String)'KT-33503Kapt, Spring Boot: "Could not resolve all files for configuration ':_classStructurekaptKotlin'"KT-33800KAPT aptMode=compile fails to compile certain legitimate code
1.3.50
Compiler
KT-12787Debugger: Generate line number at end of function (to set a breakpoint on the last line of the block)KT-23675"Parameter specified as non-null is null: method org.jetbrains.kotlin.codegen.FrameMapBase.getIndex, parameter descriptor" when classes are defined inside an anonymous extension function and access a field of the extension function'sthisinstanceKT-24596Refactor / Inline const property does not insert its value into usage in annotationKT-25497kotlinx.serialization - throws Backend Internal error exception during code generation of sealed classesKT-28927"IllegalStateException: Arrays of class literals are not supported yet" in AnnotationDeserializer.resolveArrayElementTypeKT-31070IndexOutOfBoundsException in Analyzer with @JvmOverloads constructor with 34+ parametersKT-31265FIR: experimental compilerKT-31535False positives from compiler warning IMPLICIT_NOTHING_AS_TYPE_PARAMETERKT-31969NI: false positive USELESS_ELVIS with multiple elvis callsKT-32044For loop over full UByte range terminates at UInt bound.KT-25432No smartcast on qualifier expression of captured typeKT-30796psi2ir generates IrErrorType for elvis with generic type having nullable upper-bound when expected type is not nullableKT-31242"Can't find enclosing method" proguard compilation exception with inline and crossinlineKT-31347"IndexOutOfBoundsException: Insufficient maximum stack size" with crossinline and suspendKT-31367IllegalStateException: Concrete fake override public open fun (...) defined in TheIssue[PropertyGetterDescriptorImpl@1a03c376] should have exactly one concrete super-declaration: []KT-31734Empty parameter list required on Annotations of function typesKT-32434New type inference fails for Caffeine CacheKT-32452Kotlin 1.3.40 - problem in IDE with new type inference and suspending method referenceKT-32407NI: "use property access syntax" intention causes freezes in editorKT-33127Script result value is not calculated properly for the last expressionKT-33157Inline class with generic method is considered bad class by javac
Docs & Examples
KT-16602Provide examples of sorting API usageKT-32353Document order of array elements initialization
IDE
New Features
KT-28098Insert space after automatically closed right brace of nested lambda to follow code style
Fixes
KT-16476Extend selection (Select Word) doesn't select just KDoc if cursor is just before the KDocKT-21374Imports optimized tooltip is displayed, even if no changes were madeKT-21422IDE can't import class from root packageKT-27344MPP: jvmWithJava: no IDE module dependency is created between Kotlin test and Java main on import; Gradle build is successfulKT-29667Kotlin update settings has wrong looking text boxes for versionsKT-30133Update copyright creates duplicates for build.gradle.kts filesKT-30782'Show Method Separators' does not separate expression body Kotlin functionsKT-31022Quick definitiondoes not show Kotlin code in Java filesKT-31499"Extend selection" selects escaped identifier name together with backticksKT-31595"Complete current statement" for method call closes brace at wrong placeKT-31637NPE in IDE when organizing importsKT-31786KNPE at copy attempt due to kdoc referenceKT-32276Fix flaky test for ultra light classesKT-32364Remove deprecated usages of OUT_OF_CODE_BLOCK_MODIFICATION_COUNT and write a replacement for Kotlin languageKT-32370Lambdas should have implicitreturnin Kotlin UastKT-12096Spring: rename of Kotlin bean defined in@Beanannotation failsKT-28193Exception: Mirror element should never be calculated for light classes generated from a single fileKT-28822Dependencies in Kotlin MPP project could be wrongly resolved if project was not build before importKT-29267Enable ultra-light classes by defaultKT-31129Call only Kotlin-specific reference contributors for getting Kotlin references from PSIKT-32082Kotlin facet: 1.3.40 plugin does not properly read target platform settings of 1.3.50 pluginKT-32969Data class extending abstract class with finaltoString,equalsorhashCodecauses exceptionKT-33245IllegalArgumentException exception occurs on Tools->Configure Koltin in Project action in Android Studio
IDE. Completion
KT-9792Don't propose the same name for arguments of lambda on completion of function call with lambda templateKT-29572Smart completing anonymous object uses incorrect code styleKT-25264Freeze in Kotlin file on completionKT-32519Keyword completion: support fixing layout and typo tolerance
IDE. Debugger
New Features
KT-30740Display more information about variables when breakpoint is set inside lambda expression
Fixes
KT-8579Debugger: Evaluate expression fails at typed arraysKT-10183Debugger: receiver properties are not shown inline in extension functionKT-11663Assignment is not possible in Evaluate expressionKT-11706Attempts to evaluate java method calls on 'Array' instance in debugger fail with NoSuchMethodErrorKT-11888Evaluate Expression for expression with synchronizedKT-11938Empty condition is marked as errorKT-13188Cannot evaluate expression with local extension functionKT-14421Debugger: breakpoint set on trivial if/while is not hitKT-15259Debug: closing brace of object definition is considered executable; ISE: "Don't call this method for local declarations: OBJECT_DECLARATION" at LazyDeclarationResolver.getMemberScopeDeclaredIn()KT-19084Breakpoints on Debugger altering ResultKT-19556Kotlin exception while debugging IJ plugin codeKT-19980Debug: evaluation fails for setter of member extention propertyKT-20560Evaluate expression doesn't work for super method callKT-23526In *.kts scripts, debugger ignores breakpoints in top-level statements and membersKT-24914AS: Uninitialized yet lazy properties called on first debug point reachKT-26742Debugger can't evaluate expected top-level function from common codeKT-30120False positive "Unused equals expression" in evaluate expression windowKT-30730Missing tooltip for "Kotlin variables view" buttonKT-30919Debugger's "Kotlin View" doesn't show variables inside lambdasKT-30976Debugger: No access to receiver evaluating named parameters during call to extension functionKT-31418java.lang.ClassCastException : java.lang.annotation.Annotation[] cannot be cast to byte[]KT-31510isDumb should be used only under read action: KotlinEvaluatorKT-31702Debugger can't stop on breakpoint onUnitexpression from coroutine contextKT-31709Evaluate: "IllegalArgumentException: Parameter specified as non-null is null: method org.jetbrains.kotlin.codegen.FrameMapBase.getIndex, parameter descriptor" with nested lambda member accessKT-24829Access to coroutineContext in 'Evaluate expression'
IDE. Gradle
KT-19693Import package prefix from GradleKT-30667Dependencies of a module on a multiplatform one with a JVM target andwithJava()configured, are incorrectly resolved in IDEKT-32300Add possibility to distinguish kotlin source root from java source rootKT-31014Gradle, JS: Webpack watch modeKT-31843Memory leak caused by KOTLIN_TARGET_DATA_NODE on project reimport
IDE. Gradle. Script
KT-31779"Highlighting in scripts is not available"KT-30638"Highlighting in scripts is not available until all Script Dependencies are loaded" in Diff viewerKT-30974Script dependencies resolution failed error while trying to use Kotlin for GradleKT-31440Add link to Gradle Kotlin DSL logs when script dependencies resolution process failsKT-32483CNFE org.gradle.kotlin.dsl.KotlinBuildScript on creating new Gradle Kotlin project from wizardKT-21501build.gradle.kts displays failures if not using java sdk for module
IDE. Inspections and Intentions
New Features
KT-8958ReplaceWith intention message could be more helpful in case of generic substitutionKT-12515Quickfix "by Delegates.notNull()" as replacement for "lateinit" for primitive typeKT-14344Suggest to replace manual range with explicitindicescall or iteration over collectionKT-17916Import popup does not indicate deprecated classesKT-23501Add intention for converting ordinary properties to 'lazy' and vise versaKT-25006Add inspection "'equals()' between objects of inconvertible primitive / enum / string types"KT-27353Quickfix to add a constructor parameter from parent class to child classKT-30124Add inspection to replace java.util.Arrays.equals with contentEqualsKT-30640Add inspection for check/require/checkNotNull/requireNotNullKT-30775Inspection for the case when one lateinit var overrides another lateinit varKT-31476Improve "Create expect..." quickfixKT-31533Make "Add operator modifier" an inspection instead of intentionKT-31795Inspection: simplify property setter with custom visibilityKT-31924Make "add import" intention more flexible based on caret positionKT-30970No warning for emptyifoperator andalsomethod
Fixes
KT-12567"Introduce 'when' subject" intention does not work for "this" in extension functionKT-14369"Replace elvis expression with 'if" intention produces boilerplate code for 'return' in RHSKT-16067"Replace 'if' expression with elvis expression" suggests replacing an idiomatic code with non-idiomaticKT-19643Tune or disable the FoldInitializerAndIfToElvis inspectionKT-24439No method imports suggestedKT-25786False positive "Not-null extension receiver of inline function can be made nullable" withoperator fun invokeKT-25905False positive for 'LeakingThis' on a method call in enum class bodyKT-27074False positive "Foldable if-then" with Result typeKT-27550"Redundant explicit this" false positive with subclass and extension lambdaKT-27563Generate toString in common code shouldn't use java.util.ArraysKT-27822Don't suggestmight be constonactualmember declarationKT-28595"Assignment should be lifted out of 'if'" false negative for different but compatible derived typesKT-29192"Convert property to function" with explicit generic type loses getter bodyKT-29716With both explicit and implicit package prefixes "Package name does not match containing directory" inspection suggests not usable quick fixKT-29731Don't suggestAdd val/var to parameterat expect class constructorKT-30191"Lift out of if" intention isn't suggested for assignment of nullKT-30197ReplaceWith for deprecated function adds class literal/callable reference argument above unless it is used in substitutionKT-30627"Use property access syntax" produces red code if setter argument is a lambda with implicit SAM conversionKT-30804Property declaration goes to annotation comment when removing only modifier using RemoveModifierFixKT-30975''when' has only 'else' branch and should be simplified' inspection removes subject variable definition used in else branchKT-31033"Create expect ..." quick fix incorrectly works for a secondary constructor in a multiplatform projectKT-31272Expand "create expected ..." quick fix highlighting also to a primary constructorKT-31278Inappropriate "Remove redundant .let call" inspectionKT-31341Incorrect quickfix "Replace with Kotlin analog" for conversion to an extension, where the first argument is an expression with an operationKT-31359"Invalid property key" inspection false positive for a bundle with several properties filesKT-31362'Move variable declaration intowhen' quickfix comments left brace with EOL commentKT-31443Remove braces intention places caret in a wrong placeKT-31446Incorrect quick fix “Create expected class" for inline class with parameter with actualKT-31518Incorrect "Create expect function" for primary constructorKT-31673Onlywhenkeyword should be highlighted in WhenWithOnlyElseInspectionKT-31716Decrease severity of PackageDirectoryMismatchInspection to INFOKT-31717Decrease severity of RemoveCurlyBracesFromTemplateInspectionKT-31816"Package directive doesn't match file location" for root package is invisible in editorKT-31954MoveVariableDeclarationIntoWhen should move the caret to the subject expressionKT-32001Wrong quickfixes for TOO_MANY_ARGUMENTSKT-32010Convert ReplaceSingleLineLetIntention to inspectionsKT-32046False negative "Redundant qualifier name" with class literalKT-32112False positive "Redundant qualifier name"KT-32318"Remove argument name" intention does not remove square braces for annotation vararg argumentKT-32320False negative "Redundant qualifier name" with local objectKT-32347Duplicative "Remove redundant 'public' modifier" suggestion for getterKT-32365"Convert to sealed class" intention should not be suggested when no "class" keywordKT-32419Spurious 'while' has empty body warning when body has explanatory commentKT-32506False negative "Remove redundant qualifier name" withjava.util.ArrayList<Int>()KT-32454"Replace Java static method with Kotlin analog": invalid quick fix on 'abs()' functionKT-26242"Create test" intention does nothing in common moduleKT-27208IDEA reports about the need to declare abstract or implement abstract method, but this method is @JvmStatic in an interface companionKT-27555Create actual ...quick fix does nothing if the corresponding source set directory isn't created yetKT-28121IDE: Warn on java files under "src/main/kotlin" or "src/test/kotlin" source rootsKT-28295UselanguageSettingsfor a quick fix to enable experimental features in multiplatform projectsKT-28529Don't suggestcommonMainsource set as a target ofcreate expected ...quick fix for a member of*Testsource setKT-28746“Create actual class” quick fix creates invalid file when is called from files located in package directory but don't have package nameKT-30622Add names to call arguments starting from given argumentKT-31404Redundant 'requireNotNull' or 'checkNotNull' inspection: don't remove first argumentKT-32705"Create expect" quick fix addsactualmodifier to aconst/lateinitdeclaration without a warningKT-32967Warning about incorrectly placed Java source file isn't automatically dismissed on move of the file to the proper source root
IDE. JS
KT-31895New Project wizard: Kotlin Gradle + Kotlin/JS for Node.js: incorrect DSL is inserted
IDE. KDoc
KT-30985Missing line break in quick doc for enum constant
IDE. Multiplatform
KT-29757IDE fails to import transitive dependency of a JVM module to a multiplatform one
IDE. Navigation
KT-10215Kotlin classes are listed after Java classes in the navigation bar
IDE. Refactorings
KT-29720Refactor / Move does not update package statement with implicit prefixKT-30762Inline method produces invalid code for suspend functions with receiverKT-30748100+ Seconds UI Freeze on performing a Move Refactoring on a file with a lot of usages (KotlinOptimizeImports in thread dump)
IDE. Scratch
KT-23604Scratch: end of line is wrongly indented with the end of scratch line outputKT-27963Make REPL mode in Scratch files incrementalKT-29534Line output jumps to the next line together with cursorKT-32791"Access is allowed from event dispatch thread only" while working with a scratch file
IDE. Script
KT-25187Kotlin script in src: warning: classpath entry points to a non-existent location on JDK 9+KT-31152Errors in IDE when different Java Sdk are set as Project SDK and as Gradle JVMKT-31521CNFE „org.jetbrains.kotlin.idea.caches.project.ScriptBinariesScopeCache“ on creating new Gradle based projectKT-31826Gradle clean task causes IDEA to lose kotlin scripting configurationKT-31837TargetPlatform for scripts should depends on scriptDefinition.additionalArgumentsKT-30690Highlighting for scripts in diff view doesn't work for left partKT-32061Check classpath jars before applying script compilation result from file attributesKT-32554Freezes in ScriptDependenciesUpdater
IDE. Tests Support
KT-30814MPP, 191 platform: with Gradle test runner run configuration for platform test is created without tasks
IDE. Wizards
KT-32105MPP project wizard: add option for Kotlin Gradle DSL
JS. Tools
KT-31527Keep generating emptyjsTesttaskKT-31565Gradle/JS:npmResolveis never UP-TO-DATEKT-32326Gradle, test runner: support postponing test running error reporting at the end of the buildKT-32393Gradle, JS: Resolve projects lazilyKT-31560Gradle: provide descriptions for JS tasksKT-31563Gradle/JS: npmResolve fails with "Invalid version" when user project's version does not match npm rulesKT-31566Gradle/JS: with explicit call tonodejs { testTask { useNodeJs() } }configuration fails : "Could not find which method to invoke"KT-31694Gradle, NPM, windows: creating symlink requires administrator privilege
Libraries
KT-29372measureTime that returns both the result of block and elapsed timeKT-32083Incorrect ReplaceWith annotation on kotlin.js.powKT-12749Provide Int.bitCount, Long.bitCount etc.KT-32359Common Array.fillKT-33225JS: Incorrect conversion of infinite Double to Long
Reflection
KT-22923Reflection getMemberProperties fails: kotlin.reflect.jvm.internal.KotlinReflectionInternalErrorKT-31318"KotlinReflectionInternalError: Method is not supported" on accessing array class annotation parameter
Tools. Daemon
KT-31550NSME org.jetbrains.kotlin.com.intellij.openapi.vfs.impl.jar.CoreJarFileSystem.clearHandlersCache()V on compileKotlin task with plugin from masterKT-32490Compiler daemon tests fail on windows due to directory name being too longKT-32950Daemon should inherit "-XX:MaxMetaspaceSize" of client VMKT-32992Enable assertions in Kotlin Compile DaemonKT-33027Compilation with daemon fails, because IncrementalModuleInfo#serialVersionUID does not match
Tools. CLI
KT-33177Introduce compiler flags -Xinline-classes and -Xpolymorphic-signature as a higher priority than -XXLanguage
Tools. Compiler Plugins
KT-28824Add jvm-abi-gen-embeddable for use with embeddable compilerKT-31279JPS build with compiler plugin and "Keep compiler alive = No" fails with CCE: "Cannot cast NoArgComponentRegistrar to ComponentRegistrar" at ServiceLoaderLite.loadImplementations()KT-32346kotlinx.serialization: Performance problems with completion/intellisense
Tools. Gradle
New Features
KT-26655Precise metadata publishing and consumption for new MPPKT-31018Gradle, JS: yarnKT-31703Gradle, JS: automatically download d.ts and generate kotlin/js external declarations using dukatKT-31890Gradle, JS, webpack: provide property with full bundle file pathKT-32015Gradle, JS: resolve configuration only while executing tasks of specific projectsKT-32136Gradle, test runner: handle case when test runtime exits abnormallyKT-26256In new MPP, support Java compilation in JVM targetsKT-30573Gradle, JS: enable source maps by default, change paths relative to node_modules directoryKT-30747Gradle, JS tests: provide option to disable test configuration per targetKT-31010Gradle, JS tests: MochaKT-31011Gradle, JS tests: KarmaKT-31013Gradle, JS: WebpackKT-31016Gradle: yarn downloadingKT-31017Gradle, yarn: support workspacesKT-31697Gradle, NPM: report about clashes in packages_imported
Performance Improvements
KT-29538AndroidSubPlugin#getCommonResDirectories is very slow
Fixes
KT-29343Kotlin MPP source set dependencies are not properly propagated to tests in Android projectsKT-30691Gradle, JS tests: Parent operation with id 947 not available when all tests passedKT-31917Gradle, JS: transitive dependency between compilations in same project doesn't workKT-31985Gradle, JS: webpack not working on windowsKT-32072Gradle, JS: browser() in DSL triggers project.evaluate()KT-32204In an MPP, a dependency that is added to a non-root source set is incorrectly analyzed for source sets visibilityKT-32225In an MPP, if a dependency is added to a source set that does not take part in published compilations, it is not correctly analyzed in source set visibility inferenceKT-32564Provide a flag to enable/disable hierarchical multiplatform mechanism in GradleKT-31023Update Gradle module metadata warning in MPP publishingKT-31696Gradle, NPM: select one version between tools and all of compile configurationsKT-31891Gradle: JS or Native tests execution:build --scanfails with ISE "Expected attachment of type ... but did not find it"KT-32210Kapt randomly fails with java.io.UTFDataFormatExceptionKT-32706Gradle target "jsBrowserWebpack" should use output of JS compile task as inputKT-32697[Tests] org.jetbrains.kotlin.gradle.SubpluginsITKT-33246Kotlin JS & Native tests + Gradle 5.6: No value has been specified for property 'binaryResultsDirectory'
Tools. Incremental Compile
KT-31310Incremental build of Kotlin/JS project fails with KNPE at IncrementalJsCache.nonDirtyPackageParts()
Tools. J2K
New Features
KT-30776New J2KKT-31836Suggest user to configure Kotlin in the project when running new J2K file conversionKT-32512ReplaceJavaStaticMethodWithKotlinAnalogInspection: add more cases for java.util.Arrays
Fixes
KT-15791J2K converts class literals including redundant generic <*>KT-31234New J2K: Exception occurs on converting Java class to KotlinKT-31250J2K: caret position of original file is preserved, adding spaces to resulting fileKT-31251J2K: Java class with members is converted to Kotlin class withfinalconstructorKT-31252J2K: resulted file is not formattedKT-31254J2K: resulted source uses full qualified references instead of importsKT-31255J2K: redundant modifiers in resulted sourceKT-31726New J2K converts annotation with array parameter to single value parameterKT-31809"Attempt to modify PSI for non-committed Document!" exception and broken kotlin file after new J2K conversionKT-31821J2K: IDEA Ultimate: local variable: CCE: "PsiLocalVariableImpl cannot be cast to class JvmAnnotatedElement" at JavaToJKTreeBuilder$DeclarationMapper.toJK()KT-32436NewJ2K generic field is not initialized after convertionKT-19327Java to Kotlin converter fails to convert code using Java 8 Stream APIKT-21467Convert To Kotlin fails when using chained stream.flatmap methodsKT-24677j2k creates nullable type for child function but keeps not null type for parent functionKT-32572New J2K: Map with complex type as parameter is wrongly convertedKT-32602J2K: no conversion ofString.length()method call to property access of existing String propertyKT-32604kotlin.NotImplementedError exception occurs on converting Java call of toString method of data class to KotlinKT-32609New J2K: Comparable class is wrongly converted to Kotlin if parameter of compareTo marked with @NotNull annotationKT-32693New J2K is throwing „Read access is allowed from event dispatch thread or inside read-action only“ on converting Java code inside Evaluate Expression windowKT-32702New J2K: lambda with method reference is converted to lamdba with excessive parameter declarationKT-32835New J2K: NumberFormatException occurs on converting binary literalsKT-32837J2K: NumberFormatException occurs on converting literals with underscore charactersKT-22412J2K: Intention to replace if(...) throw IAE with requireKT-33371Add an ability to switch between old and new J2K via settings windowKT-32863New J2K: IllegalArgumentException occurs on Kotlin configuration in java project in Android Studio
Tools. JPS
KT-27181Compiler arguments are listed twice on JPS build of Gradle-based projectKT-13563Kotlin jps-plugin should allow to instrument bytecode from Intellij IDEA.
Tools. REPL
KT-15125Support JSR 223 bindings directly via script variablesKT-32085Kotlinc REPL: "java.lang.NoClassDefFoundError: org/jline/reader/LineReaderBuilder"
Tools. Scripts
KT-28137Implement result/return value for the regular (non-REPL) scripts
Tools. kapt
KT-30578build/generated/source/kaptKotlinis added as source directory tomaininstead ofjvmMainwhen jvm { withJava() } is configured in a multiplatform projectKT-30739Kapt generated sources are not visible from the IDE when "Create separate module per source set" is disabledKT-31127Kotlin-generating processor which uses Filer API breaks JavaCompile taskKT-31378v1.3.31: NoSuchElementException in kapt when kapt.incremental.apt=trueKT-32535Kapt aptMode=compile don't include files generated atkapt.kotlin.generatedas sources to compileKT-31471KAPT prints "IncrementalProcessor" instead of processor name in verbose mode
1.3.41
Compiler
KT-31981New type inference asks to use ?. on non-null local variableKT-32029Exception when callable reference is resolved against unresolved typeKT-32037No coercion to Unit for last expression with lambda in code blockKT-32038Unsubstituted stub type cause type mismatch later for builder inferenceKT-32051NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER on matching Nothing with generic type parameterKT-32081New type inference fails involving Either and NothingKT-32089False positive IMPLICIT_NOTHING_AS_TYPE_PARAMETER with lambdasKT-32094NI: member from star import has higher resolution priority than member imported by FQNKT-32116Type inference for HashMap<,> fails but compilesKT-32123Wrong unused import for extension methodKT-32133Regression in Kotlin 1.3.40 new inference engineKT-32134java.lang.Throwable: Resolution error of this type shouldn't occur for resolve try as a callfor incomplete try-constructionKT-321431.3.40 new inference: backward incompatibility in method calls with multiple SAM argumentsKT-32154setOf(Map.Entry<*, *>::key) gives error on IDEKT-32157Issue with new type inference in unbounded genericsKT-32175New Type Inference Algorithm, RxJava and IDE-Compiler InconsistencyKT-32184NI: Argument for @NotNull parameter 'type' of org/jetbrains/kotlin/types/CommonSupertypes.depth must not be nullKT-32187Exception when using callable reference with an unresolved LHSKT-32218Cannot call get on a Map<out Any,Any> with new type systemKT-32230New inference not working with RxJava combineLatestKT-32235New type inference failure withincheck
JavaScript
KT-32215Reified generic doesn't work withByteArrayon js
Tools. CLI
KT-32272kotlinc - no main manifest attribute, in hello.jar
Tools. REPL
KT-32085Kotlinc REPL: "java.lang.NoClassDefFoundError: org/jline/reader/LineReaderBuilder"
Tools. Scripts
KT-32169Kotlin 1.3.40 - Crash on running *.main.kts script: "NoSuchMethodError: kotlin.script.templates.standard.ScriptTemplateWithArgs."KT-32206Custom script definitions not loaded in the cli compiler
1.3.40
Android
Fixes
KT-12402Android DataBinding work correctly but the IDE show it as errorKT-31432Remove obsolete code introduced in KT-12402
Compiler
New Features
Performance Improvements
KT-17755Optimize trimIndent and trimMargin on constant stringsKT-30603Compiler performance issue: VariableLivenessKt.useVar performance
Fixes
KT-19227Load built-ins from dependencies by default in the compiler, support erroneous "fallback" built-insKT-23426Actual typealias to Java enum does not match expected enum because of modalityKT-23854Inference for common type of two captured typesKT-25105False-positive warning "Remove final upper bound" on generic overrideKT-25302New inference: "Type mismatch" between star projection andAny?type argument in specific caseKT-25433Wrong order of fixing type variables for callable referencesKT-26386Front-end recursion problem while analyzing contract function with call expression of self in impliesKT-26412Wrong LVT generated if decomposed parameter of suspend lambda is not the first parameter.KT-27097JvmMultifileClass + JvmName causes NoSuchMethodError on sealed class hierarchy for top-level membersKT-28534Local variable entries are missing in LVT for suspend lambda parametersKT-28535Renameresultto$resultin coroutines' LVTKT-29184Implement inference for coroutines according to the @BuilderInference contract in NIKT-29772Contracts don't work ifcontractfunction is fully qualified (FQN)KT-29790Incorrect version requirement in metadata of anonymous class for suspend lambdaKT-29948NI: incorrect DSLMarker behaviour with generic star projectionKT-30021+NewInference on Kotlin Native :: java.lang.StackOverflowErrorKT-30242Statements are not coerced to Unit in last expressions of lambdaKT-30243Include FIR modules into compilerKT-30250Rewrite at slice exception for callable reference argument inside delegated expressionKT-30292Reference to function is unresolved when LHS is a star-projected typeKT-30293Wrong intersection type for common supertype from String and integer typeKT-30370Call is completed too early when there is "Nothing" constraintKT-30405Support expected type from cast in new inferenceKT-30406Fix testIfOrWhenSpecialCall test for new inferenceKT-30590Report diagnostic about not enough information for inference in NIKT-30620Exception from the compiler when coroutine-inference is involved even with the explicitly specified typesKT-30656Exception is occurred when functions with implicit return-stub types are involved in builder-inferenceKT-30658Exception from the compiler when getting callable reference to a suspend functionKT-30661Disable SAM conversions to Kotlin functions in new-inference by defaultKT-30676Overload resolution ambiguity when there is a callable reference argument and candidates with different functional return typesKT-30694No debug metadata is generated for suspend lambdas which capture crossinlineKT-30724False positive error about missing equals when one of the operands is incorrectly inferred to NothingKT-30734No smartcast inside lambda literal in then/else "if" branchKT-30737Try analysing callable reference preemptivelyKT-30780Compiler crashes on 'private inline' function accessing private constant in 'inline class' (regression)KT-30808NI: False negative SPREAD_OF_NULLABLE with USELESS_ELVIS_RIGHT_IS_NULLKT-30816BasicJvmScriptEvaluator passes constructor parameters in incorrect orderKT-30826There isn't report about unsafe call in the new inference (by invalidating smartcast), NPEKT-30843Duplicate JVM class name for expect/actual classes in JvmMultifileClass-annotated fileKT-30853Compiler crashes with NewInference and Kotlinx.Coroutines FlowKT-30927Data flow info isn't used for 'this' which is returned from lambda using labeled returnKT-31081Implement ArgumentMatch abstraction in new inferenceKT-31113Fix failing tests from SlicerTestGeneratedKT-31199Unresolved callable references with typealiasKT-31339Inliner does not remove redundant continuation classes, leading to CNFE in JMH bytecode processingKT-31346Fix diagnostic DSL_SCOPE_VIOLATION for new inferenceKT-31356False-positive error about violating dsl scope for new-inferenceKT-31360NI: inconsistently prohibits member usage without explicit receiver specification with star projection and DSL markerKT-18563Do not generate inline reified functions as private in bytecodeKT-20849Inference results in Nothing type argument in case of passing 'out T' to 'in T1'KT-25290New inference: KNPE at ResolutionPartsKt.getExpectedTypeWithSAMConversion() on out projection of Java classKT-26418Back-end (JVM) Internal error when compiling decorated suspend inline functionsKT-26925Decorated suspend inline function continuation resumes in wrong spotKT-28999Prohibit type parameters for anonymous objectsKT-29307New inference: false negative CONSTANT_EXPECTED_TYPE_MISMATCH with a MapKT-29475IllegalArgumentException at getAbstractTypeFromDescriptor with deeply nested expression inside function named with a right parenthesisKT-29996Properly report errors on attempt to inline bytecode from class files compiled to 1.8 to one compiling to 1.6KT-30289Don't generate annotations on synthetic methods for methods with default values for parametersKT-30410[NI] Front-end recursion problem while analyzing contract function with call expression of self in impliesKT-30411Fold recursive types to star-projected ones when inferring type variablesKT-30706Passing noinline lambda as (cross)inline parameter result in wrong state-machineKT-30707Java interop of coroutines inside inline functions is brokenKT-30983ClassCastException: DeserializedTypeAliasDescriptor cannot be cast to PackageViewDescriptor on star-import of expect enum class actualized with typealiasKT-31242"Can't find enclosing method" proguard compilation exception with inline and crossinlineKT-31347"IndexOutOfBoundsException: Insufficient maximum stack size" with crossinline and suspendKT-31354Suspend inline functions with crossinline parameters are inaccessible from javaKT-31367IllegalStateException: Concrete fake override public open fun (...) defined in TheIssue[PropertyGetterDescriptorImpl@1a03c376] should have exactly one concrete super-declaration: []KT-31461NI: NONE_APPLICABLE instead of TYPE_MISMATCH when invoking convention plus operatorKT-31503Type mismatch with recursive types and SAM conversionsKT-31507Enable new type inference algorithm for IDE analysisKT-31514New inference generates multiple errors on generic inline expression with elvis operatorKT-31520False positive "not enough information" for constraint with star projection and covariant typeKT-31606Rewrite at slice on using callable reference with array access operatorKT-31620False-positive "not enough information" for coroutine-inference when target method is assigned to a variableKT-31624Type from declared upper bound in Java is considered more specific than Nothing producing type mismatch laterKT-31860Explicit type argument isn't considered as input type causing errors about "only input types"KT-31866Problems with using star-projections on LHS of callable referenceKT-31868No type mismatch error when using NoInfer annotationKT-31941Good code red in IDE with smart cast on parameter of a generic type after null check
IDE
New Features
KT-11242Action to copy project diagnostic information to clipboardKT-24292Support external nullability annotationsKT-30453Add plugin option (registry?) to enable new inference only in IDE
Performance Improvements
KT-13841Classes and functions should be lazy-parseableKT-27106Performance issue with optimize importsKT-30442Several second lag on project open in KotlinNonJvmSourceRootConverterProviderKT-30644ConfigureKotlinInProjectUtilsKt freezes UI
Fixes
KT-7380Imports insertion on paste does not work correctly when there were alias imports in the source fileKT-10512Do not delete imports with unresolved parts when optimizingKT-13048"Strip trailing spaces on Save" should not strip trailing spaces inside multiline strings in KotlinKT-17375Optimize Imports does not remove unused import aliasKT-27385Uast: property references should resolve to getters/settersKT-28627Invalid detection of Kotlin jvmTarget inside Idea/gradle buildKT-29267Enable ultra-light classes by defaultKT-29892A lot of threads are waiting in KotlinConfigurationCheckerComponentKT-30356Kotlin facet: all JVM 9+ target platforms are shown as "Target Platform = JVM 9" in Project Structure dialogKT-30514Auto-import with "Add unambiguous imports on the fly" imports enum members from another packageKT-30583Kotlin light elements should beisEquivalentToto it's originsKT-30688Memory leak in the PerModulePackageCacheService.onTooComplexChange methodKT-30949Optimize Imports removes used import aliasKT-30957Kotlin UAST: USimpleNameReferenceExpression in "imports" for class' member resolves incorrectly to class, not to the memberKT-31090java.lang.NoSuchMethodError: org.jetbrains.kotlin.idea.UtilsKt.addModuleDependencyIfNeeded on import of a multiplatform project with Android target (191 IDEA + master)KT-31092Don't check all selected files in CheckComponentsUsageSearchAction.update()KT-31319False positive "Unused import" forprovideDelegateextensionKT-31332Kotlin AnnotatedElementsSearch does't support KotlinobjectKT-31129Call only Kotlin-specific reference contributors for getting Kotlin references from PSIKT-31693Project with no Kotlin: JPS rebuild fails with NCDFE for GradleSettingsService at KotlinMPPGradleProjectTaskRunner.canRun()KT-31466SOE in Java highlighting when a Kotlin ultra-light method is invokedKT-31723Exception from UAST for attempt to infer types inside unresolved callKT-31842UOE: no descriptor for type constructor of TypeVariable(T)KT-31992Fix ColorsIcon.scale(float) compatibility issue between IU-192.5118.30 and 1.3.40-eap-105
IDE. Completion
KT-29038Autocomplete "suspend" into "suspend fun" at top level and class level (except in kts top level)KT-29398Add "arg" postfix templateKT-30511Replace extra space after autocompleting data class with file name by parentheses
IDE. Debugger
KT-10636Debugger: can't evaluate call of function type parameter inside inline functionKT-18247Debugger: class level watches fail to evaluate outside of class instance contextKT-18263Settings / Debugger / Java Type Renderers: unqualified Kotlin class members in Java expressions are shown as errorsKT-23586Non-trivial properties autocompletion in evaluation windowKT-30216Evaluate expression: declarations annotated with Experimental (LEVEL.ERROR) fail due to compilation errorKT-30610Debugger: Variables view shows secondthisinstance for inline function even from the same class as caller functionKT-30714Breakpoints are shown as invalid for classes that are not loaded yetKT-30934"InvocationException: Exception occurred in target VM" on debugger breakpoint hit (with kotlintest)KT-31266Kotlin debugger incompatibility with latest 192 nightly: KotlinClassWithDelegatedPropertyRendererKT-31785Exception on attempt to evaluate local function
IDE. Gradle
KT-29854File collection dependency does not work with NMPP+JPSKT-30531Gradle: NodeJS downloadingKT-30767Kotlin import uses too much memory when working with big projectsKT-29564kotlin.parallel.tasks.in.project=true causes idea to create kotlin modules with target JVM 1.6KT-31014Gradle, JS: Webpack watch modeKT-31843Memory leak caused by KOTLIN_TARGET_DATA_NODE on project reimportKT-31952Fix compatibility issues with IDEA after fixing IDEA-187832
IDE. Gradle. Script
KT-30638"Highlighting in scripts is not available until all Script Dependencies are loaded" in Diff viewerKT-31124“compileKotlin - configuration not found: kotlinScriptDef, the plugin is probably applied by a mistake” after creating new project with IJ and Kotlin from masterKT-30974Script dependencies resolution failed error while trying to use Kotlin for Gradle
IDE. Hints
KT-30057"View->Type info" shows "Type is unknown" for named argument syntax
IDE. Inspections and Intentions
New Features
KT-11629Inspection: creating Throwable without throwing itKT-12392Unused import with alias should be highlighted and removed with Optimize ImportsKT-12721inspection should be made for converting Integer.toString(int) to int.toString()KT-13962Intention to replace Java collection constructor calls with function calls from stdlib (ArrayList() → arrayListOf())KT-15537Add inspection + intention to replace IntRange.start/endInclusive with first/lastKT-21195ReplaceWith intention could save generic type argumentsKT-25262Intention: Rename class to containing file nameKT-25439Inspection "Map replaceable with EnumMap"KT-26269Inspection to replace associate with associateWith or associateByKT-26629Inspection to replace==operator on Double.NaN withequalscallKT-27411Inspection and Quickfix to replace System.exit() with exitProcess()KT-29344Convert property initializer to getter: suggest on property nameKT-29666Quickfix for "DEPRECATED_JAVA_ANNOTATION": migrate argumentsKT-29798Add 'Covariant equals' inspectionKT-29799Inspection: class with non-null self-reference as a parameter in its primary constructorKT-30078Add "Add getter/setter" quick fix for uninitialized propertyKT-30381Inspection + quickfix to replace non-null assertion with returnKT-30389Fix to convert argument to Int: suggest roundToInt()KT-30501Add inspection to replace filter { it is Foo } with filterIsInstance and filter { it != null } with filterNotNullKT-30612Unused symbol inspection should detect enum entryKT-30663Fully qualified name is added on quick fix for original class name if import alias existsKT-30725Inspection which replaces.sorted().first()with.min()
Fixes
KT-5412"Replace non-null assertion withifexpression" should replace parent expressionKT-13549"Package directive doesn't match file location" for root packageKT-14040Secondary enum class constructor is marked as "unused" by IDEKT-18459Spring: "Autowiring for Bean Class (Kotlin)" inspection adds not working@Namedannotation to propertyKT-21526used class is marked as "never used"KT-22896"Change function signature" quickfix on "x overrides nothing" doesn't rename type argumentsKT-27089ReplaceWith quickfix doesn't take into account generic parameterKT-27821SimplifiableCallChain inspection quick fix removes comments for intermediate operationsKT-28485Incorrect parameter name after running "Add parameter to function" intention when argument variable is upper case constKT-28619"Add braces to 'if' statement" moves end-of-line comment inside anifbranch if statement insideifis blockKT-29556"Remove redundant 'let' call" doesn't rename parameter with conventioninvokecallKT-29677"Specify type explicitly" intention produces invalid output for type escaped with backticksKT-29764"Convert property to function" intention doesn't warn about the property overloads at child class constructorKT-29812False positive for HasPlatformType with member extension on 'dynamic'KT-29869'WhenWithOnlyElse': possibly useless inspection with false grey warning highlighting during editing the codeKT-30038'Remove redundant Unit" false positive when return type is nullable UnitKT-30082False positive "redundant.letcall" for lambda functions stored in nullable referencesKT-30173"Nested lambda has shadowed implicit parameter" is suggested when both parameters are logically the sameKT-30208Convert to anonymous object: lambda generic type argument is lostKT-30215No "surround with null" check is suggested for an assignmentKT-30228'Convert to also/apply/run/with' intention behaves differently depending on the position of infix function callKT-30457MoveVariableDeclarationIntoWhen: do not report gray warning on variable declarations taking multiple lines / containing preemptive returnsKT-30481Do not report ImplicitNullableNothingType on a function/property that overrides a function/property of type 'Nothing?'KT-30527False positive "Type alias is never used" with import of enum memberKT-30559Redundant Getter, Redundant Setter: reduce range to getter/setter headerKT-30565False positive "Suspicious 'var' property" inspection with annotated default property getterKT-30579Kotlin-gradle groovy inspections should depend on Groovy pluginKT-30613"Convert to anonymous function" should not insert named argument when interoping with Java functionsKT-30614String templates suggest removing curly braces for backtick escaped identifiersKT-30622Add names to call arguments starting from given argumentKT-30637False positive "unused constructor" for local classKT-30669Import quick fix does not work for property/function with original name if import alias for them existKT-30761Replace assert boolean with assert equality produces uncompilable code when compared arguments type are differentKT-30769Override quickfix creates "sealed fun"KT-30833Exception after "Introduce Import Alias" if invoke in importKT-30876SimplifyNotNullAssert inspection changes semanticsKT-30900Invert 'if' condition respects neither code formatting nor inline commentsKT-30910"Use property access syntax" is not suitable as text for inspection problem textKT-30916Quickfix "Remove redundant qualifier name" can't work with user type with generic parameterKT-31103Don't invoke Gradle related inspections when Gradle plugin is disabledKT-31349Add name to argument should not be suggested for Java library classesKT-31404Redundant 'requireNotNull' or 'checkNotNull' inspection: don't remove first argumentKT-25465"Redundant 'suspend' modifier" with suspend operator invokeKT-26337Exception (resource not found) in quick-fix tests in AS32KT-30879False positive "Redundant qualifier name"KT-31415UI hangs due to long computations for "Use property access syntax" intention with new inferenceKT-31441False positive "Remove explicit type arguments" inspection for projection typeKT-30970No warning for emptyifoperator andalsomethodKT-31855IDE + new inference: Java SAM conversion is not suggested by IDE services
IDE. JS
KT-31895New Project wizard: Kotlin Gradle + Kotlin/JS for Node.js: incorrect DSL is inserted
IDE. Libraries
KT-30790Unstable IDE navigation behavior toexpect/actualsymbols in stdlibKT-30821K/N: Navigation downwards the hierarchy in stdlib source code opens to stubs
IDE. Misc
KT-31364IntelliJ routinely hangs and spikes CPU / Memory usage when editing kotlin files
IDE. Navigation
KT-18322Find Usages not finding Java usage of @JvmField declared in primary constructorKT-27332Gutter icons are still shown even if disabled
IDE. Refactorings
KT-30471MakeKotlinElementActionsFactory.createChangeParametersActionsable to just add parameters
IDE. Run Configurations
KT-29352Kotlin + Java 11 + Windows : impossible to run applications with long command lines, even with dynamic.classpath=true
IDE. Scratch
KT-29642Once hidden,Scratch Outputwindow wouldn't show the results unless the project is reopened
IDE. Script
KT-30295Resolver for 'completion/highlighting in ScriptDependenciesSourceInfo...' does not know how to resolve [] or [Library(null)]KT-30690Highlighting for scripts in diff view doesn't work for left partKT-31452IDE editor: MISSING_SCRIPT_STANDARD_TEMPLATE is reported inconsistently with the single line in script
IDE. Tests Support
KT-30995Gradle test runner: "No tasks available" for a test class in non-MPP project
IDE. Ultimate
KT-30886KotlinIdeaResolutionException in Velocity template (.ft) with Kotlin code
IDE. Wizards
KT-30645Update New Project Wizard templates related to Kotlin/JSKT-31099Remove Gradle configuration boilerplate for JS from multiplatform New Project Wizard templates related to Kotlin/JSKT-31695Gradle, JS: update wizard templates
JS. Tools
KT-31563Gradle/JS: npmResolve fails with "Invalid version" when user project's version does not match npm rulesKT-31566Gradle/JS: with explicit call tonodejs { testTask { useNodeJs() } }configuration fails : "Could not find which method to invoke"KT-31560Gradle: provide descriptions for JS tasksKT-31564Gradle/JS: npmResolve reports warning "karma-webpack@3.0.5 has unmet peer dependency"KT-31662Gradle/JS: with emptyuseKarma {}lambda the execution ofjsBrowserTestnever stopsKT-31686Gradle/JS: useKarma { useConfigDirectory() } fails to configureKT-31694Gradle, NPM, windows: creating symlink requires administrator privilegeKT-31931Gradle JS or Native: test processing fails in some cases
JavaScript
KT-31007Kotlin/JS 1.3.30 - private method in an interface in the external library causes ReferenceError
Libraries
KT-30174Annotation for experimental stdlib APIKT-30451Redundant call of selector in maxBy&minByKT-30560Fix Throwable::addSuppressed from stdlib to make it work without stdlib-jdk7 in runtimeKT-24810Support common string<->ByteArray UTF-8 conversionKT-29265String.toCharArray() is not available in common stdlibKT-31194assertFails and assertFailsWith don't work with suspend functionsKT-31639'Iterbale.drop' drops too much because of overflowKT-28933capitalize() with Locale argument in the JDK stdlib
Reflection
KT-29041KAnnotatedElement should have an extension function to verify if certain annotation is presentKT-30344Avoid using .kotlin_module in kotlin-reflect
Tools. Android Extensions
KT-30993Android Extensions: Make @Parcelize functionality non-experimental
Tools. CLI
KT-27638Add -Xjava-sources compiler argument to specify directories with .java source files which can be referenced from the compiled Kotlin sourcesKT-27778Add -Xpackage-prefix compiler argument to specify package prefix for Java sources resolutionKT-30973Compilation on IBM J9 (build 2.9, JRE 1.8.0 AIX ppc64-64-Bit) fails unless -Xuse-javac is specified
Tools. Compiler Plugins
KT-30343Add new Quarkus preset to all-open compiler plugin
Tools. Gradle
New Features
KT-20156Publish the Kotlin Javascript Gradle plugin to the Gradle Plugins PortalKT-26256In new MPP, support Java compilation in JVM targetsKT-27273Support the Gradle 'application' plugin in new MPP or provide an alternativeKT-30528Gradle, JS tests: support basic builtin test runnerKT-31015Gradle, JS: Change default for new kotlin-js and experimental kotlin-multiplatform pluginsKT-30573Gradle, JS: enable source maps by default, change paths relative to node_modules directoryKT-30747Gradle, JS tests: provide option to disable test configuration per targetKT-31010Gradle, JS tests: MochaKT-31011Gradle, JS tests: KarmaKT-31013Gradle, JS: WebpackKT-31016Gradle: yarn downloadingKT-31017Gradle, yarn: support workspaces
Fixes
KT-13256CompileJava tasks in Kotlin2Js Gradle pluginKT-16355Rename "compileKotlin2Js" Gradle task to "compileKotlinJs"KT-26255Using the jvmWithJava preset in new MPP leads to counter-intuitive source set names and directory structureKT-27640Do not use-Xbuild-filewhen invoking the Kotlin compiler in Gradle pluginsKT-29284kotlin2js plugin applies java pluginKT-30132Could not initialize class org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil on build by gradleKT-30596Kotlin Gradle Plugin: Forward stdout and stderr logger of out of process though gradle loggerKT-31106Kotlin compilation fails with locked build script dependencies and Gradle 5KT-28985Java tests not executed in a module created with presets.jvmWithJavaKT-30340kotlin("multiplatform") plugin is not working properly with Spring BootKT-30784Deprecation warning "API 'variant.getPackageLibrary()' is obsolete and has been replaced with 'variant.getPackageLibraryProvider()'" for a multiplatform library with Android targetKT-31027java.lang.NoSuchMethodError: No static method hashCode(Z)I in class Ljava/lang/Boolean; or its super classes (declaration of 'java.lang.Boolean' appears in /system/framework/core-libart.jar)KT-31696Gradle, NPM: select one version between tools and all of compile configurationsKT-31697Gradle, NPM: report about clashes in packages_importedKT-31891Gradle: JS or Native tests execution:build --scanfails with ISE "Expected attachment of type ... but did not find it"KT-31023Update Gradle module metadata warning in MPP publishing
Tools. Incremental Compile
KT-31131Regression: incremental compilation of multi-file part throws exception
Tools. J2K
KT-23023J2K: Inspection to convert Arrays.copyOf(a, size) to a.copyOf(size)KT-26550J2K: Check context/applicability of conversion, don't suggest for libraries, jars, etc.KT-29568Disabled "Convert Java File to Kotlin File" action is shown in project view context menu for XML files
Tools. JPS
KT-13563Kotlin jps-plugin should allow to instrument bytecode from Intellij IDEA.
Tools. REPL
KT-21443Kotlin's JSR223 script engine does not work when used by a fat jar
Tools. Scripts
KT-30986Missing dependencies when JSR-223 script engines are used fromkotlin-script-util
Tools. kapt
KT-26203kapt.use.worker.api=truethrows a NullPointerException on Java 10/11KT-30739Kapt generated sources are not visible from the IDE when "Create separate module per source set" is disabledKT-31064Periodically build crash when using incremental kaptKT-23880Kapt: Support incremental annotation processorsKT-31322Kapt does not run annotation processing when sources change.KT-30979Issue with Dagger2 providers MissingBinding with 1.3.30KT-31127Kotlin-generating processor which uses Filer API breaks JavaCompile taskKT-31714incremental kapt: FileSystemException: Too many open files
1.3.31
Compiler
Fixes
KT-26418Back-end (JVM) Internal error when compiling decorated suspend inline functionsKT-26925Decorated suspend inline function continuation resumes in wrong spotKT-30706Passing noinline lambda as (cross)inline parameter result in wrong state-machineKT-30707Java interop of coroutines inside inline functions is brokenKT-30997Crash with suspend crossinline
IDE. Inspections and Intentions
KT-30879False positive "Redundant qualifier name"KT-31112"Remove redundant qualifier name" inspection false positive for property with irrelevant import
JavaScript
KT-31007Kotlin/JS 1.3.30 - private method in an interface in the external library causes ReferenceError
Tools. Gradle
KT-31027java.lang.NoSuchMethodError: No static method hashCode(Z)I in class Ljava/lang/Boolean; or its super classes (declaration of 'java.lang.Boolean' appears in /system/framework/core-libart.jar)
Tools. kapt
KT-30979Issue with Dagger2 providers MissingBinding with 1.3.30
1.3.30
Compiler
New Features
KT-19664Allow more permissive visibility for non-virtual actual declarationsKT-29586Add support for Android platform annotationsKT-29604Do not implicitly propagate deprecations originated in Java
Performance Improvements
KT-24876Emit calls to java.lang.Long.divideUnsigned for unsigned types when target version is 1.8KT-25974'when' by unsigned integers is not translated to tableswitch/lookupswitchKT-28015Coroutine state-machine shall use Result.throwOnFailureKT-29229Intrinsify 'in' operator for unsigned integer rangesKT-29230Specialize 'next' method call for unsigned integer range and progression iterators
Fixes
KT-7185Parse import directives in the middle of the file, report a diagnostic insteadKT-7237Parser recovery (angle bracket mismatch)KT-11656Could not generate LightClass because of ISE from bridge generation on invalid codeKT-13497Better recovery in comma-separated lists in case of missing commaKT-13703Restore parser better whenclassis missing fromenumdeclarationKT-13731Recover parser on value parameter without a typeKT-14227Incorrect code is generated when using MutableMap.set with plusAssign operatorKT-19389Couldn't inline method call 'with'KT-20065"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with generic typealiasKT-20322Debug: member value returned from suspending function is not updated immediatelyKT-20780"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with parameterized inner type aliasKT-21405Throwable “Rewrite at slice LEXICAL_SCOPE key: VALUE_PARAMETER_LIST” on editing string literal in kotlin-js moduleKT-21775"Cannot serialize error type: [ERROR : Unknown type parameter 0]" with typealias used from a different moduleKT-22818"UnsupportedOperationException: Don't know how to generate outer expression" on using non-trivial expression in default argument ofexpectfunctionKT-23117Local delegate + local object = NoSuchMethodErrorKT-23701Report error when -Xmultifile-parts-inherit is used and relevant JvmMultifileClass parts have any stateKT-23992Target prefixes for annotations on supertype list elements are not checkedKT-24490Wrong type is inferred when last expression in lambda has functional typeKT-24871Optimize iteration and contains for UIntRange/ULongRangeKT-24964"Cannot serialize error type: [ERROR : Unknown type parameter 0]" withValidatedtypealias from ArrowKT-25383Named function as last statement in lambda doesn't coerce to UnitKT-25431Type mismatch when trying to bind mutable property with complex common systemKT-25435Try/catch as the last expression of lambda cause type mismatchKT-25437Type variable fixation of postponed arguments and type variables with Nothing constraintKT-25446Empty labeled return doesn't force coercion to UnitKT-26069NoSuchMethodError on calling remove/getOrDefault on a Kotlin subclass of Java subclass of MapKT-26638Check for repeatablilty of annotations doesn't take into account annotations with use-site targetKT-26816Lambdas to Nothing is inferred if multilevel collections is used (listOf, mapOf, etc)KT-27190State machine elimination after inlining stopped working (regression)KT-27241Contracts: smartcasts don't work correctly if type checking for contract function is usedKT-27565Lack of fallback resolution for SAM conversions for Kotlin functions in new inferenceKT-27799Prohibit references to reified type parameters in annotation arguments in local classes / anonymous objectsKT-28182Kotlin Bytecode tool window shows incorrect output on annotated property with backing fieldKT-28236"Cannot serialize error type: [ERROR : Unknown type parameter 2]" with inferred type arguments in generic extension function from ArrowKT-28309Do not generate LVT entries with different types pointing to the same slot, but have different typesKT-28317Strange behavior in testJvmAssertInlineFunctionAssertionsEnabled on Jdk 6 and exception on JDK 8KT-28453Mark anonymous classes for callable references as syntheticKT-28598Type is inferred incorrectly to Any on a deep generic type with out projectionKT-28654No report about type mismatch inside a lambda in generic functions with a type parameter as a return typeKT-28670Not null smartcasts on an intersection of nullable types don't workKT-28718progressive mode plus new inference result in different floating-point number comparisonsKT-28810Suspend function's continuation parameter is missing from LVTKT-28855NoSuchMethodError with vararg of unsigned Int in generic class constructorKT-28984Exception when subtype of kotlin.Function is used as an expected one for lambda or callable referenceKT-28993Incorrect behavior when two lambdas are passed outside a parenthesized argument listKT-29144Interface with companion object generates invalid bytecode in progressive modeKT-29228Intrinsify 'for' loop for unsigned integer ranges and progressionsKT-29324Warnings indexing jdk 11 classesKT-29367New inference doesn't wrap annotated type from java to TypeWithEnhancementKT-29507@field-targeted annotation on property with both getter and setter is absent from bytecodeKT-29705'Rewrite at slice CONSTRUCTOR` of JS class while editing another JVM-classKT-29792UnsupportedOperationException: Unsupported annotation argument type when using Java annotation with infinity or NaN as a default valueKT-29891Kotlin doesn't allow to use local class literals as annotation argumentsKT-29912Crossinline nonsuspend lambda leads to KNPE during inliningKT-29965Don't generate annotation on $default methodKT-30030Extensive 'Rewrite at slice'-exception with contracts in JS module of multiplatform projectKT-22043Report an error when comparing enum (==/!=/when) to any other incompatible type since 1.4KT-26150KotlinFrontendException is thrown when callsInPlace called twice with different InvocationKind in functions with contractsKT-26153Contract is allowed when it's at the beginning in control flow terms, but not in tokens order terms (contract doesn't work)KT-26191Contract may not be the first statement if it's part of the expressionKT-29178Prohibit arrays of reified type parameters in annotation arguments in local classes / anonymous objectsKT-20507PROTECTED_CONSTRUCTOR_NOT_IN_SUPER_CALL not reported for generic base class constructor call, IAE at run-timeKT-20849Inference results in Nothing type argument in case of passing 'out T' to 'in T1'KT-28285NullPointerException on calling Array constructor compiled via Excelsior JETKT-29376Report a deprecation warning when comparing enum to any other incompatible typeKT-29884Report warning on @Synchronized on inline methodKT-30073ClassCastException on coroutine start with crossinline lambdaKT-30597"Extend selection" throws exception in empty class body caseKT-29492Double cross-inline of suspending functions produces incorrect codeKT-30508Wrong file name in metadata of suspend function capturing crossinline lambdaKT-30679"KotlinFrontEndException: Front-end Internal error: Failed to analyze declaration" exception during a compilation of a multiplatform project containing Kotlin Script File
IDE
New Features
KT-26950Support Multiline TODO commentsKT-29034Make JvmDeclarationSearch find private fields in kotlin classes
Performance Improvements
KT-29457FindImplicitNothingAction#update freezes UI for 30 secsKT-29551CreateKotlinSdkActivity runs on UI thread
Fixes
KT-11143Do not insert closing brace for string template between open brace and identifierKT-18503Optimize imports produces red codeKT-27283KotlinULiteralExpression and PsiLanguageInjectionHost mismatchKT-27794KotlinAnnotatedElementsSearcher doesn't process method parametersKT-28272UAST: Need to be able to identify SAM conversionsKT-28360Getting tons of "There are 2 classes with same fqName" logs in IntelliJKT-28739Bad caret position afterInsert curly braces around variableinspectionKT-29013Injection with interpolation loses suffixKT-29025ImplementUReferenceExpression.referenceNameElementfor KotlinKT-29287Exception in ultra-light classes on method annotated with @ThrowsKT-29381Highlight return lambda expressions when cursor is one the call with lambda argumentKT-29434Can not detect injection host in string passed as argument into arrayOf() functionKT-29464Project reopening does not create missing Kotlin SDK for Native modules (like it does for other non-JVM ones)KT-29467Maven/Gradle re-import does not add missing Kotlin SDK for kotlin2js modules (non-MPP JavaScript)KT-29804Probable error in the "Kotlin (Mobile Android/iOS)" new project template in IntelliJKT-30033UAST: Delegation expression missing from parse treeKT-30388Disable constant exception reporting from release versionsKT-30524"java.lang.IllegalStateException: This method shouldn't be invoked for LOCAL visibility" on add importKT-30534KotlinUObjectLiteralExpression returns classReference whose referenceNameElement is nullKT-30546Kotlin UImportStatement's children references always resolve to nullKT-5435Surround with try/catch should generate more Kotlin-style code
IDE. Android
KT-29847Many IDEA plugins are not loaded in presence of Kotlin plugin: "Plugins should not have cyclic dependencies"
IDE. Code Style, Formatting
KT-23295One-line comment indentation in functions with expression bodyKT-28905When is "... if long" hitting?KT-29304Settings / Code Style / Kotlin mentions "methods" instead of functionsKT-26954Bad indentation for single function with expression body in new code style
IDE. Completion
KT-18663Support "smart enter/complete statement" completion for method callsKT-28394Improve code completion for top level class/interface to incorporate filenameKT-29435org.jetbrains.kotlin.types.TypeUtils.contains hanging forever and freezing IntelliJKT-27915Stop auto-completing braces for companion objects
IDE. Debugger
KT-22250Evaluate: 'this' shows different values when evaluated as a variable/watchKT-24829Access to coroutineContext in 'Evaluate expression'KT-25220Evaluator: a instance of Pair returned instead of String ("Extract function" failed)KT-25222Evaluate: ClassCastException: ObjectValue cannot be cast to IntValue ("Extract function" failed)KT-26913Change local variable name mangling ($receiver -> this_)KT-28087[Kotlin/JVM view] Inconsistent debugging data inside forEachIndexedKT-28134Separate JVM/Kotlin views in "Variables" tool windowKT-28192Exception from KotlinEvaluator: cannot find local variableKT-28680Missingthisword completion in "Evaluate expression" windowKT-28728Async stack trace support for Kotlin coroutinesKT-21650Debugger: Can't evaluate value, resolution errorKT-23828Debugger: "Smart cast is impossible" when evaluating expressionKT-29661Evaluate expression: "Cannot find local variable" for variable name escaped with backticksKT-29814Can't evaluate a property on star-projected typeKT-29871Debugger in IDE does not handle correctly extensions.KT-30182Incorrect KT elvis expression debugger evaluationKT-29189[BE] 'Step Over' falls through 'return when' (and 'return if') instead of executing individual branchesKT-29234ISE “@NotNull method org/jetbrains/kotlin/codegen/binding/CodegenBinding.anonymousClassForCallable must not return null” on debugging with breakpoints in Kotlin script fileKT-29423Unable to evaluate lambdas on jdk 9-11KT-30220Empty variables view when breakpoint inside an lambda inside classKT-30318KotlinCoroutinesAsyncStackTraceProvider slows down java debuggingKT-17811Couldn't inline method error for inline method with anonymous object initialization and reified type parameterKT-30611Debugger: in projects with stdlib of 1.2.n version Frames view can't complete loading, EvaluateException: "Method threw 'java.lang.ClassNotFoundException' exception." at EvaluateExceptionUtil.createEvaluateException()
IDE. Decompiler
KT-9618Exception in ClassClsStubBuilder.createNestedClassStub() while opening recent projectKT-29427Exception in ClassClsStubBuilder.createNestedClassStub() for obfuscated library
IDE. Gradle
KT-26865Gradle build in IDE: error messages in Native sources are not hyperlinksKT-28515Failed to import Kotlin project with gradle 5.0KT-29564kotlin.parallel.tasks.in.project=true causes idea to create kotlin modules with target JVM 1.6KT-30076Memory leaks in Kotlin importKT-30379Gradle 5.3 publishes an MPP with broken Maven scope mapping
IDE. Gradle. Script
KT-27684Gradle Kotlin DSL: therootProjectfield is unresolved in IDEA for a common moduleKT-29465IndexNotReadyException on context menu invocation for build.gradle.kts fileKT-29707"Navigate declaration" navigates to compiled class in gradle cache folder instead of classes defined in gradle buildSrc folderKT-29832Multiple Script Definitions for settings.gradle.ktsKT-30623Errors in build.gradle.kts after applying new script dependenciesKT-29474Regression in 1.3.20: Kotlin IDE plugin parses all *.gradle.kts files when any class in buildSrc is openedKT-30130“Access is allowed from event dispatch thread only.” from ScriptNewDependenciesNotificationKt.removeScriptDependenciesNotificationPanel() on creating foo.gradle.kts files in IJ from master
IDE. Hints
KT-29196Variable type hints are redundant for constructor calls of nested classesKT-30058IndexNotReadyException from quick documentation when popup is active
IDE. Hints. Inlay
KT-19558Wrong position of type hint while renaming Kotlin variableKT-27438"Show lambda return expression hints" breaks code indentationKT-28870Rework "Lambda return expression" hint as between_lines_hint of disable it by default
IDE. Hints. Parameter Info
KT-29574Incorrect parameter info popup for lambda nested in object
IDE. Inspections and Intentions
New Features
KT-16118"Introduce import alias" intentionKT-17119Inspection for (Scala-like)= { ... }syntax without expected type in function definitionKT-26128Inspection for suspension inside synchronized and withLock functionsKT-27556Add intention for collections, !collection.isEmpty() -> collection.isNotEmpty()KT-27670Add quick fix: wrap expression in a lambda if compatible functional type is requiredKT-28803Inspection: result of enum entries comparison is always false / trueKT-28953Add intention to add underscores to decimal numerical literalKT-29001Add intention to move variable declaration before when-expression into when's subjectKT-29113Warn about redundant requireNotNull and checkNotNull usagesKT-29321"Remove empty primary constructor": apply for enum entriesKT-12134Suggest to remove qualifier in FQN nameKT-17278Inspection to replace Java 8 Map.forEach with Kotlin's forEachKT-26965Add inspection + quickfix for replacing Collection.count() with .sizeKT-30123Add intention to replace isEmpty/isNotEmpty method negationKT-25272Unused expression as last expression of normal function should have quickfix to add "return"KT-30456Improve: intention "Introduce Import Alias" should suggest new names for the new alias.
Fixes
KT-7593On splitting property declaration for functional expression additional bracket addedKT-12273"Replace with operator" intention is suggested for some non-operator functions and produces invalid codeKT-18715Replace if with elvis swallows commentsKT-19254Intention to convert object literal to class always creates a class named "O"KT-25501"Replace overloaded operator with function call" changes semantics of increment and decrement operatorsKT-26979"Lambda argument inside parentheses" inspection is not reported, if function type is actual type argument, but not formal parameter typeKT-27143Intention "Replace camel-case name with spaces" is suggested for snake_case names in test functions and renames them incorrectlyKT-28081"Convert to lambda" changes expression type for interface with multiple supertypesKT-28131False positive "Redundant lambda arrow" with a functional type argumentKT-28224"Add braces to 'else' statement" moves comment outside braces when 'if-else' is inside 'if / when' branchKT-28592False positive "Remove redundant backticks" for underscore variable nameKT-28596"Can be replaced with binary operator" shouldn't be suggested when receiver or argument is floating point typeKT-28641"Remove useless cast" produces a dangling lambda ("Too many arguments" error)KT-28698"Convert to apply" intention: include function calls withthispassed as an argumentKT-28773Kotlin/JS: Wrong inspection to replace .equals() with == on dynamic valuesKT-28851'Convert parameter to receiver' addsArray<out T>wrapper tovarargparameter and dropsoverridemodifier in implementationsKT-28969TYPE_MISMATCH in array vs non-array case: two quick fixes exist for annotation and none of them adds array literalKT-28995"Add parameter to constructor" quickfix for first enum member changes arguments for all membersKT-29051"Add parameter to constructor" quickfix for not-first enum member: "PsiInvalidElementAccessException: Element: class org.jetbrains.kotlin.psi.KtStringTemplateExpression #kotlin because: different providers"KT-29052"Add parameter to constructor" quickfix for not-first enum member inserts FQN type for parameterKT-29056KNPE in ConvertPrimaryConstructorToSecondary with missing property identifierKT-29085False positive "Class member can have 'private' visibility" for aconst valused in a public inline functionKT-29093False positive inspection "Redundant lambda arrow" with nested lambdasKT-29099"Convert to apply" intention is not available for a single function callKT-29128False positive 'Explicitly given type is redundant here' when typealias is usedKT-29153False negative "'rangeTo' or the '..' call should be replaced with 'until'" with bracketed expressionsKT-29193Quick fix "Create extension function"List<Int>.setshould not be suggested for read-only collectionsKT-29238Non-canonical modifiers order inspection incorrectly includes annotations into rangeKT-29248"Convert member to extension" doesn't preserve visibilityKT-29416False positive "Redundant property getter" forexternalgetterKT-29469False positive in "Boolean literal argument without parameter name" inspection for varargs parametersKT-29549Make package name convention inspection globalKT-29567"Remove empty class body" is a poor name for inspection textKT-29606Do not propose to remove unused parameter of property setterKT-29763False negative "Object literal can be converted to lambda" for block body function with explicit returnKT-30007False negative "Add import for '...'" in UserTypeKT-19944multiplatform: Convert expect/actual function to property should keep the caret on the converted functionKT-27289"Create" quick fix on FQN does nothing with KNPE at KotlinRefactoringUtilKt$chooseContainerElement$1.renderText()KT-29312"Make constructor parameter a property" produces wrong modifier order + exception "Invalid range specified"KT-29414"Main parameter is not necessary" inspection reports parameter ofmain()in objectKT-29499"Unsafe call of inline function with nullable extension receiver" inspection ignores inferred nullabilityKT-29927Missing "Import members from" intention with type check operator inwhenbranchKT-30010Introduce alternative quick-fixes formap[key]!!KT-30166False positive "Redundant companion reference" on companion with the outer class nameKT-14886Create Property from Usage should place generated property next to other propertiesKT-16139Adding explicit type argument leads to type mismatchKT-19462False positive inspection "Redundant lambda arrow" for overloaded functionsKT-22137Create class quickfix is not suggested in return statementKT-23259False positive unchecked cast warning/quickfix result in good code turning redKT-27641"Specify type explicitly" suggests too general type even when type hint shows specific generic typeKT-29124False positive inspection 'Redundant lambda arrow' with generic function/constructor with lambda argumentKT-29590False positive inspection "Redundant lambda arrow" with vararg lambda arguments passed via spread operatorKT-29977False positive "Unused import directive" for typealias of an enum imported as staticKT-30233Change order of the quick fixes when method does not accept nullable typesKT-30341False positive 'Use withIndex() instead of manual index increment' inspection with destructive declaration in 'for' loopKT-30414"Replace return with 'if' expression" drops return labelKT-30426Don't preserve extra line when adding remaining branches for whenKT-30433"Convert member to extension" doesn't update external Kotlin callsKT-30117Kotlin unused import analysis accesses file editor manager model outside UI threadKT-29143Unnecessary primaryconstructorkeyword inspectionKT-29444"Make public" intention does not remove additional white-space to conform to proper styleKT-30337Do not propose to move variable declaration into "when" if it's not used inside the when-expression
IDE. Multiplatform
KT-29918Outdated Ktor version in Kotlin (JS Client/JVM Server) multiplatform project generated via New Project Wizard
IDE. Navigation
KT-26924Overriding Methods list has more values than it should be in case of inline classKT-28661"Is implemented in" gutter icon shows duplicate function implementations in inline classesKT-28838Group by file structure doesn't work for text search in Kotlin
IDE. Refactorings
KT-27602Kotlin property renaming change target name several times during rename making it hard to process it by reference handlersKT-29062Extract Superclass refactoring throws Exception if sourceRoots.size() <= 1KT-29796Label rename refactoring does not work on label usage
IDE. Scratch
KT-23985Allow to run Kotlin Worksheet without module classpathKT-27955Interactive mode for Kotlin Scratch filesKT-28958Exception "Read access is allowed from event dispatch thread or inside read-action only" when running a scratch file with "Use REPL" and "Make before Run" enabledKT-30200"java.lang.Throwable: Couldn't find expression with start line ..." on edition of a scratch file during its execution with interactive mode enabled
IDE. Script
KT-29770IntelliJ IDEA makes too many requests for the classpath of a Gradle Kotlin build scriptKT-29893IDE is frozen during project configuration because ofScriptTemplatesFromDependenciesProviderKT-30146Preferences from Kotlin scripting section reset to default after project reopening
IDE. Tests Support
KT-25956With failed test function class gutter icon is "failure", but function icon is "success"
IDE. Wizards
KT-17829Please unify naming of Kotlin projects and frameworks for JVMKT-28941Tip of the day: obsolete project types from "New project wizard"
Libraries
KT-27108.toDouble()and.toFloat()conversions for unsigned typesKT-29520Random.Default cannot be used asJavaRandomKT-30109Documentation for Result.onSuccess and Result.onFailure are flipped aroundKT-26378'contains' overloads for unsigned integer ranges with other unsigned integer typesKT-26410High-order function overloads for unsigned arraysKT-27262Binary search for specialized arrays of unsigned integersKT-28339Addfillextension function for unsigned primitive arraysKT-28397UByteArray plus UByteArray = ListKT-28779Implement method sum() for arrays of unsigned primitivesKT-29151Documentation for CharSequence.take() & String.take() shows examples of Iterable.take()KT-30035add max/maxOf/min/minOf for unsigned typesKT-30051elementAt extension function of Array/PrimitiveAray/UnsignedArray does not throw IndexOutOfBoundException on incorrect index (JS only)KT-30141JS: document Array.get behaviorKT-30704Documentation of Random function not quite correct
Tools. CLI
KT-26240Support JVM bytecode targets 9, 10, 11, 12
Tools. Gradle
KT-12295Gradle IC: Compile error leads to non-incremental buildKT-12700Add a way to diagnose IC problemsKT-26275Check new MPP ICKT-27885Drop support for Gradle 3.x and earlierKT-27886Drop support for Android Gradle plugin 2.xKT-28552Gradle 4.7 import fails on Kotlin/mpp projects with Java11KT-29275Drop support for Gradle 4.0KT-29758Gradle build failed with exception on publication of a multiplatform library with Gradle metadata enabled: org.jetbrains.kotlin.gradle.plugin.mpp.HierarchyAttributeContainer cannot be cast to org.gradle.api.internal.attributes.AttributeContainerInternalKT-29966Fix inter-project IC with new MPP for JS/JVM targetsKT-27059Ensure a dependency on the multiplatform project in the POM when publishing a single-platform module with themavenpluginKT-29971ConcurrentModificationException in Kotlin Gradle plugin (GradleCompilerRunner.buildModulesInfo)KT-21030Automatically detect java 1.8 sources in kotlin-android gradle pluginKT-27675Enable Kapt build cache by defaultKT-27714Kotlin MPP Android targets don't have their attributes copied to the configurations of the compilationsKT-29761Inter-project IC does not work for kaptGenerateStubs* tasks on AndroidKT-29823Update 'org.gradle.usage' attribute rules to support the 'JAVA_API_JARS' valueKT-29964A universal Gradle DSL way of configuring all compilations of all targets doesn't work for Android target of a multiplatform projectKT-30276Warn if the Kotlin Gradle plugin is loaded multiple timesKT-30322Memory leak in CompilationSourceSetUtilKT-30492Classes not removed for out/in process compilation
Tools. J2K
KT-29713java.lang.IllegalStateException at converting @RestController java file to Kotlin file
Tools. JPS
KT-30137Deadlock during concurrent classloading
Tools. Maven
KT-29251NSME: MavenProjectsManager.scheduleArtifactsDownloading() at KotlinMavenImporter.scheduleDownloadStdlibSources()
Tools. REPL
KT-19276Console spam when opening idea-community project in debug IDEA
Tools. Scripts
KT-29296Script evaluation - impossible to set base classloader to nullKT-27051Support dynamic versions in @file:DependsOnKT-27815Compiler options in the scripting compilation configuration are ignored on compilation/evaluationKT-28593Idea tries to associate file type with the script definition discovery fileKT-29319scripts default jvmTarget causes inlining problems - default should be 1.8KT-29741KJvmCompiledScript can not be deserialized KJvmCompiledModule if it's nullKT-30210Coroutines in main.kts crash with NoSuchMethodError because kotlin-main-kts.jar has embedded coroutines
Tools. kapt
KT-26977kapt plugin applied in platform.jvm module preventing visibility of common codeKT-27506Kapt error "no interface expected here" in class implementing interface with secondary constructorKT-28220kapt can generate invalid stub files for imports of enum constantsKT-28306Cannot extend an generic interface with function body while using kapt and correctErrorTypes in Kotlin 1.3KT-23880Kapt: Support incremental annotation processorsKT-29302Java classes doesn't resolve Kotlin classes when kapt.use.worker.api = trueKT-30163Kapt: Javadoc in Java source model mangled (leading asterisks are preserved)
Docs & Examples
KT-30091KClass documentation incorrectly shows all members available on all platformsKT-30100Clarify Map.toSortedMap docsKT-30418Documentation for floor() and ceil() functions is misleadingKT-29373MutableSet.add documentation is confusing
1.3.21
Compiler
Fixes
KT-29475IllegalArgumentException at getAbstractTypeFromDescriptor with deeply nested expression inside function named with a right parenthesisKT-29479WARN: Could not read file on Java classes from JDK 11+KT-29360Kotlin 1.3.20-eap-100: This marker function should never been called. Looks like compiler did not eliminate it properly. Please, report an issue if you caught this exception.
IDE
Fixes
KT-29486Throwable: "Could not find correct module information" through IdeaKotlinUastResolveProviderService.getBindingContext() and ReplaceWithAnnotationAnalyzer.analyzeOriginal()KT-29394Kotlin 1.3.20 EAP: Excess log messages withkotlin.parallel.tasks.in.project=trueKT-29474Regression in 1.3.20: Kotlin IDE plugin parses all *.gradle.kts files when any class in buildSrc is openedKT-29290Warning "function returning deferred with a name that does not end with async" should not be displayed for let/also/apply...KT-29494Don't report BooleanLiteralArgumentInspection in batch (offline) mode with INFORMATION severityKT-29525turning on parallel tasks causes java.lang.NoClassDefFoundError: Could not initialize class kotlin.Unit sometimesKT-27769Change the DSL marker iconKT-29118Log polluted with multiple "Kotlin does not support alternative resolve" reports
IDE. Multiplatform
KT-28128MPP Kotlin/Native re-downloads POM files on IDE Gradle refresh
IDE. REPL
KT-29400IDE REPL in Gradle project: "IllegalStateException: consoleView must not be null" on module build
Libraries
Fixes
KT-29612jlink refuses to consume stdlib containing non-public package kotlin.native
Tools. CLI
KT-29596"AssertionError: Cannot load extensions/common.xml from kotlin-compiler.jar" on IBM JDK 8
Tools. Gradle
KT-294761.3.20 MPP Android publishing common api configuration with runtime scopeKT-29725MPP Gradle 5.2: NoSuchMethodError in WrapUtilKT-29485In MPP with Gradle module metadata, POM rewriting does not replace the root module publication with a platform one if the former has a custom artifact ID
Tools. Scripts
KT-29490Regression in 1.3.20: Kotlin Jsr223 script engine cannot handle functional return types
Tools. Kapt
KT-29481Annotation processors run on androidTest source set even without the kaptAndroidTest declarationKT-29513kapt throws "ZipException: zip END header not found", when Graal SVM jar in classpath
1.3.20
Android
KT-22571Android: Configure Kotlin should add implementation dependency instead of compile
Compiler
New Features
KT-14416Support of @PolymorphicSignature in Kotlin compilerKT-22704Allow expect annotations with actual typealias to Java to have default argument values both in expected and in actualKT-26165Support VarHandle in JVM codegenKT-26999Inspection for unused main parameter in Kotlin 1.3
Performance Improvements
KT-16867Proguard can't unbox Kotlin enums to integersKT-23466kotlin compiler opens-reads-closes .class files many times overKT-25613Optimise boxing of inline class values inside string templates
Fixes
KT-2680JVM backend should generate synthetic constructors for enum entries (as javac does).KT-6574Enum entry classes should be compiled to package private classesKT-8341Local variable cannot have type parametersKT-14529JS: annotations on property accessors are not serializedKT-15453Annotations are ignored on accessors of private propertiesKT-18053Unexpected behavior with "in" infix operator and ConcurrentHashMapKT-18592Compiler cannot resolve trait-based superclass of Groovy dependencyKT-19613"Public property exposes its private type" not reported for primary constructor propertiesKT-20344Unused private setter created for propertyKT-21862java.lang.NoSuchFieldError when calling isInitialized on a lateinit "field" of a companion objectKT-21946Compilation error during default lambda inlining when it returns anonymous objectKT-22154Warning: Stripped invalid locals information from 1 method when compiling with D8KT-23369Internal compiler error in SMAPParser.parseKT-23543Back-end (JVM) Internal error: Couldn't inline methodKT-23739CompilationException: Back-end (JVM) Internal error: Couldn't inline method call: Unmapped line number in inlined functionKT-24156For-loop optimization should not be applied in case of custom iteratorKT-24672JVM BE: Wrong range is generated in LVT for variables with "late" assignmentKT-24780Recursive suspend local functions: "Expected an object reference, but found ."KT-24937Exception from parser (EA-76217)KT-25058Fix deprecated API usage in RemappingClassBuilderKT-25288SOE when inline class is recursive through type parameter upper boundKT-25295“Couldn't transform method node” error on compiling inline class with inherited interface method callKT-25424No coercion to Unit when type argument specified explicitlyKT-25702@JvmOverloads should not be allowed on constructors of annotation classesKT-25893crossinline suspend function leads to IllegalStateException: call to 'resume' before 'invoke' with coroutine or compile errorKT-25907"Backend Internal error" for a nullable loop variable with explicitly declared type in a for-loop over StringKT-25922Back-end Internal error : Couldn't inline method : Lambda inlining : invoke(Continuation) : Trying to access skipped parameterKT-26126Front-end doesn't check that fun with contract andcallsInPlaceeffect is an inline function; compiler crashes on val initializationKT-26366UseExperimental with full qualified reference to marker annotation class is reported as errorKT-26384Compiler crash with nested multi-catch try, finally block and inline functionKT-26505Improve error message on missing script base class kotlin.script.templates.standard.ScriptTemplateWithArgsKT-26506Incorrect bytecode generated for inner class inside inline class referencing outer 'this'KT-26508Incorrect accessor generated for private inline class method call from lambdaKT-26509Internal compiler error on generating inline class private method call from companion objectKT-26554VerifyError: Bad type on operand stack for inline class with default parameter of underlying typeKT-26582Array literal of a primitive wrapper class is loaded as a primitive array literalKT-26608Couldn't inline method call. RuntimeException: Trying to access skipped parameter: Ljava/lang/Object;KT-26658Trying to access skipped parameter exception in code with crossinline suspend lambda with suspend function with default parameter callKT-26715NullPointerException for an inline class constructor referenceKT-26848Incorrect line in coroutine debug metadata for first suspension pointKT-26908Inline classes can't have a parameter with a default value (Platform declaration clash)KT-26931NSME “InlineClass.foo-impl(LIFace;)I” on calling inherited method from inline class instanceKT-26932CCE “Foo cannot be cast to java.lang.String” when accessing underlying value of inline class through reflectionKT-26998Default extension fun call in generic Kotlin interface with inline class substituted type of extension receiver fails with internal compiler errorKT-27025Inline class access to private companion object fun fails with VerifyErrorKT-27070Delegated property with inline class type delegate fails with internal error in codegenKT-27078Inline class instance captured in closure fails with internal error (incorrect bytecode generated)KT-27107JvmStatic in inline class companion doesn't generate static method in the classKT-27113Inline class'stoStringis not called when it is used in string extrapolationKT-27140Couldn't inline method call 'ByteArray' with inline classKT-27162Incorrect container is generated to callable reference classes for references to inline class membersKT-27259"Internal error: wrong code generated" for nullable inline class with an inline class underlying typeKT-27318Interface implementation by delegation to inline class type delegate fails with internal error in codegenKT-27358Boxed inline class type default parameter values fail with CCE at run-timeKT-27416"IllegalStateException: Backend Internal error" for inline class with a function with default argument valueKT-27429"-java-parameters" compiler argument fails in constructor when there is an inline class parameter presentKT-27513Backend Internal Error when using inline method inside inline classKT-27560Executing getter of property with type kotlin.reflect.KSuspendFunction1 throws MalformedParameterizedTypeExceptionKT-27705Internal compiler error (incorrect bytecode generated) when inner class constructor inside inline class references inline class primary valKT-27706Internal compiler error (incorrect bytecode generated) when inner class inside inline class accepts inline class parameterKT-27732Using type inference on platform types corresponding to unsigned types causes compiler errorKT-27737CCE for delegated property of inline class typeKT-27762The lexer crashes when a vertical tabulation is usedKT-27774Update asm to 7.0 in Kotlin backendKT-27948"Argument 2: expected R, but found I" forequalsoperator on nullable and non-null unsigned typesKT-28054Inline class: "Cannot pop operand off an empty stack" for calling private secondary constructor from companion objectKT-28061Safe call operator and contracts: false negative "A 'return' expression required in a function with a block body"KT-28185Incorrect behaviour of javaClass intrinsic for receivers of inline class typeKT-28188CCE when bound callable reference with receiver of inline class type is passed to inline functionKT-28237CoroutineStackFrame uses slashes instead of dots in FQNKT-28361Class literal for inline class should return KClass object of the wrapperKT-28385Rewrite at slice FUNCTION in MPP on "red" codeKT-28405VE “Bad type on operand stack” at runtime on creating inline class with UIntArray insideKT-28585Inline classes not properly boxed when accessing avar(from enclosing scope) from lambdaKT-28847Compilation fails with "AssertionError: Rewrite at slice FUNCTOR" on compiling complicated case with delegating propertyKT-28879"AnalyzerException: Expected I, but found R" when compiling javaClass on inline class valueKT-28920"AnalyzerException: Expected I, but found R" when compiling javaObjectType/javaPrimitiveType with inline classesKT-28965Unsound smartcast to definitely not-null if value of one generic type is cast to other generic typeKT-28983Wrong mapping of flexible inline class type to primitive type
IDE
New Features
KT-25906Kotlin language injection doesn't evaluate constants in string templatesKT-27461Provide live template to generatemain()with no parametersKT-28371Automatically align ?: (elvis operator) after call on the new line
Performance Improvements
KT-23738Provide stubs for annotation value argument listKT-25410Opening Settings freezes the UI for 23 secondsKT-27832Improve performance of KotlinGradleProjectResolverExtensionKT-28755Optimize searching constructor delegation callsKT-29297Improve performance of light classes in IDE (Java-to-Kotlin interop)
Fixes
KT-9840Right parenthesis doesn't appear after class name before the colonKT-13420Extend Selection: lambda: whole literal with braces is selected after parametersKT-17502Do not disable "Generate equals and hashCode" actions for data classesKT-22590Create Kotlin SDK if it's absent on importing from gradle/maven Kotlin (JavaScript) projects and on configuring java project to Kotlin(JavaScript), Kotlin(Common)KT-23268IntelliJ plugin: Variables from destructing declarations are not syntax colored as variablesKT-23864Copyright message is duplicated in kotlin file in root package after updating copyrightKT-25156SOE in IDE on destructuring delegated property declarationKT-25681Remove "Coroutines (experimental)" settings from IDE and do not pass-Xcoroutinesto JPS compiler (since 1.3)KT-26868MPP: Gradle import: test dependencies get Compile scopeKT-26987"Extend Selection" is missing for labeled returnKT-27095Kotlin configuration: update EAP repositories to use https instead of httpKT-27321Cannot init component state if "internalArguments" presents in xml project structure (kotlinc.xml)KT-27375Kotlin Gradle DSL script: "Unable to get Gradle home directory" in new project with new Gradle wrapperKT-27380KotlinStringLiteralTextEscaperreturns wrong offset on unparseable elementsKT-27491MPP JVM/JS wizard: Use Ktor in the skeletonKT-27492Create some MPP wizard testsKT-27530Kotlin Gradle plugin overwrites the JDK set by jdkName property of the Gradle Idea pluginKT-27663Uast: don't store resolved descriptors in UElementsKT-27907Exception on processing auto-generated classes from ASKT-27954Generate -> toString() using "Multiple templates with concatenation" should add spaces after commasKT-27941MPP: Gradle import with "using qualified names" creates 2 modules with the same content rootKT-28199Could not get javaResolutionFacade for groovy elementsKT-28348Don't log or wrap ProcessCanceledExceptionKT-28401Show parameter info for lambdas during completionKT-28402Automatically indent || and && operatorsKT-28458New Project Wizard: move multiplatform projects to the new DSLKT-28513Bad Kotlin configuration when old syntax is used for configured Gradle project with >= 4.4 versionKT-28556Wrong nullability for @JvmOverloads-generated method parameter in light classesKT-28997Couldn't get delegate for class from any local class or object in scriptKT-29027Kotlin LightAnnotations don't handle vararg class literals
IDE. Android
KT-23560Scratch: impossible to run scratch file from Android StudioKT-25450NoClassDefFoundError when trying to run a scratch file in Android Studio 3.1.3, Kotlin 1.2.51KT-26764kotlincontent root isn't generated for Android module of a multiplatform project on Gradle import
IDE. Code Style, Formatting
KT-5590kotlin: line comment must not be on first column by defaultKT-24496IntelliJ IDEA: Formatting around addition / subtraction not correct for KotlinKT-25417Incorrect formatting for comments on property accessorsKT-27847Destructured declaration continued on the next line is formatted with double indentKT-28070Code style: "Align when multiline" option for "extends / implements list" changes formating of enum constants constructor parametersKT-28227Formatter should not allow enum entries to be on one line with opening braceKT-28484Bad formatting for assignment when continuation for assignments is disabled
IDE. Completion
KT-18089Completion for nullable types without safe call rendered in gray color is barely visibleKT-20706KDoc: Unneeded completion is invoked after typing a number/digit in a kdoc commentKT-22579Smart completion should present enum constants with higher rankKT-23834Code completion and auto import do not suggest extension that differs from member only in type parameterKT-25312Autocomplete for overridden members inexpectedclass inserts extraoverridewordKT-26632Completion: "data class" instead of "data"KT-27916Autocomplete val when auto-completing const
IDE. Debugger
Fixes
KT-13268Can't quick evaluate expression with Alt + Click without get operatorKT-14075Debugger: Property syntax accesses private Java field rather than synthetic property accessorKT-22366Debugger doesn't stop on certain expressionsKT-23585Evaluation of a static interface method call failsKT-24343Debugger, Step Over: IllegalStateException on two consecutive breakpoints when first breakpoint is on an inline function callKT-24959Evaluating my breakpoint condition fails with exceptionKT-25667Exception in logs from WeakBytecodeDebugInfoStorage (NoStrataPositionManagerHelper)KT-26795Debugger crashes with NullPointerException when evaluating const value in companion objectKT-26798Check that step into works with overrides in inline classesKT-27414Use "toString" to render values of inline classes in debuggerKT-27462Main without parameters just with inline fun call: Debug: last Step Over can't finish the processKT-28028IDEA is unable to find sources during debuggingKT-28342Can't evaluate the synthetic 'field' variableKT-28487ISE “resultValue is null: cannot find method generated_for_debugger_fun” on evaluating value of inline class
IDE. Decompiler
KT-27284Disable highlighting in decompiled Kotlin bytecodeKT-27460"Show Kotlin bytecode": "Internal error: null" for an inline extension property from a different file
IDE. Gradle
KT-27265Unresolved reference in IDE on calling JVM source set members of a multiplatform project with Android target from a plain Kotlin/JVM module
IDE. Gradle. Script
KT-14862IDEA links to class file instead of source in buildSrc (Gradle/Kotlin script)KT-17231"Optimize Import" action not working for Gradle script kotlin.KT-21981Optimize imports on the fly does not take implicit imports into account in .kts filesKT-24623Class defined in gradle buildSrc folder is marked as unused when it is actually used in Gradle Script Kotlin fileKT-24705Script reports are shown in the editor only after caret moveKT-24706Do not attach script reports if 'reload dependencies' isn't pressedKT-25354Gradle Kotlin-DSL: Changes of buildSrc are not visible from other modulesKT-25619Intentions not working in buildSrc (Gradle)KT-27674Highlighting is skipped in files from buildSrc folder of Gradle project
IDE. Hints
KT-13118Parameter info is not shown for Kotlin last-argument lambdasKT-25162Parameter info for builder functions and lambdasKT-26689Lambda return expression hint not shown when returning a lambda from inside a lambdaKT-27802The hint for the if-expression is duplicated inside each branch
IDE. Inspections and Intentions
New Features
KT-2029Add inspection for boolean literals passed without using named parameters featureKT-5071Properly surround a function invocation in string template by curly bracesKT-5187Quick Fix to remove inline keyword on warning about performance benefitsKT-6025Auto-remove toString() call in "Convert concatenation to template"KT-9983"'inline'' modifier is not allowed on virtual members." should have quickfixKT-12743Add Intention to convert nullable var to non-nullable lateinitKT-15525Inspection to warn on thread-blocking invocations from coroutinesKT-17004There is no suggestion to add property to supertypeKT-19668Inspection "Redundant else in if"KT-20273Inspection to report a setter of a property with a backing field that doesn't update the backing fieldKT-20626Inspection for '+= creates a new list under the hood'KT-23691Warn aboutvarproperties with default setter and getter that doesn't reference backing fieldKT-24515Intention to add an exception under the cursor to @Throws annotationsKT-25171Inspection: Change indexed access operator on maps toMap.getValueKT-25620Inspection for functions returning DeferredKT-25718Add intention to convert SAM lambda to anonymous objectKT-26236QuickFix for ASSIGN_OPERATOR_AMBIGUITY on mutable collection '+=', '-='KT-26511Inspection (without highlighting by default) for unlabeled return inside lambdaKT-26653Intention to replace if-else withx?.let { ... } ?: ...KT-26724Inspection with a warning for implementation by delegation to avarpropertyKT-26836Add quick fix for type mismatch between signed and unsigned types for constant literalsKT-27007Intention: add label to return if scope is visually ambiguousKT-27075Add a quick fix/intention to createexpectmember for an addedactualdeclarationKT-27445Add quickfix for compiler warning "DEPRECATED_JAVA_ANNOTATION"KT-28118Remove empty parentheses for annotation entriesKT-28631Suggest to remove single lambda argument if its name is equal toitKT-28696Inspection: detect potentially ambiguous usage of coroutineContextKT-28699Add "Convert to also" intention
Performance Improvements
KT-26969ConvertCallChainIntoSequence quick fix doesn't use sequences all the way
Fixes
KT-4645Unexpected behevior of "Replace 'if' with 'when'" intention when called on second or third 'if'KT-5088"Add else branch" quickfix on when should not add bracesKT-7555Omit braces when converting 'this' in 'Convert concatenation to template'KT-8820No "Change type" quick fix inside whenKT-8875"Remove explicit type" produce red code for extension lambdaKT-12479IDEA doesn't propose to replace all usages of deprecated annotation when it declared w/o parenthesesKT-13311IDE marks fun finalize() as unused and says that its effective visibility is privateKT-14555Strange 'iterate over Nothing' intentionKT-15550Intention "Add names to call arguments" isn't available if one argument is a generic function callKT-15835"Leaking 'this' in constructor" for enum classKT-16338"Leaking 'this' in constructor" of non-final class when using 'this::class.java'KT-20040Kotlin Gradle script: unused import doesn't become greyKT-20725Cannot persist excluded methods for inspection "Accessor call that can be replaced with property syntax"KT-21520"Assignment should be lifted out of 'if'" false positive for arguments of different typesKT-23134"Remove single lambda parameter" quick fix applied to a lambda parameter with explicit type breaks ::invoke reference on lambdaKT-23512"Remove redundant receiver" quick fix makes generic function call incompilable when type could be inferred from removed receiver onlyKT-23639False positive "Unused symbol" for sealed class type parametersKT-23693Add missing actual membersquick fix doesn't work if there is already same-named function with the same signatureKT-23744"Kotlin library and Gradle plugin versions are different" inspection false positive for non-JVM dependenciesKT-24492"Call on collection type may be reduced" does not change labels from mapNotNull to mapKT-25536Use non-const Kotlin 'val' usage in Java code isn't reported on case labels (& assignments)KT-25933ReplaceCallWithBinaryOperator should not suggest to replace 'equals' involving floating-point typesKT-25953Meaningless auto properties for Atomic classesKT-25995"Simplify comparision" should try to apply "Simplify if expression" when necessaryKT-26051False positive "Redundant visibility modifier" for overridden protected property setter made publicKT-26337Exception (resource not found) in quick-fix tests in AS32KT-26481Flaky false positive "Receiver parameter is never used" for local extension functionKT-26571Too much highlighting from "convert call chain into sequence"KT-26650False negative "Call chain on collection should be converted into 'Sequence'"" on class implementingIterableKT-26662Corner cases around 'this' inside "replace if with safe access"KT-26669"Remove unnecessary parentheses" reports parens of function returned from extension functionKT-26673"Remove parameter" quick fix keeps unused type parameter referred in type constraintKT-26710Should not report "implicit 'it' is shadowed" when outeritis not usedKT-26839Add braces to if statement produces code that is not formatted according to styleKT-26902Bad quickfix name for "Call on non-null type may be reduced"KT-27016Replace 'if' with elvis operator w/ interface generates invalid code (breaks type inference)KT-27034"Redundant SAM constructor" inspection shouldn't make all lambda gray (too much highlighting)KT-27061False positive "Convert to secondary constructor" with delegationKT-27071"Add non-null asserted (!!) call" places!!at wrong position with operatorget(array indexing)KT-27093Create actual class from expect class doesn't add all necessary importsKT-27104False positive "Convert call chain into Sequence" with groupingByKT-27116"Object literal can be converted to lambda" produces code littered with "return@label"KT-27138Change visibility intentions are suggested on properties marked with @JvmFieldKT-27139Add getter intention is suggested for properties marked with @JvmFieldKT-27146False positive "map.put() can be converted to assignment" onsuperkeyword withLinkedHashMapinheritanceKT-27156Introduce backing property intention is suggested for property marked with @JvmFieldKT-27157Convert property to function intention is suggested for property marked with @JvmFieldKT-27173"Lift return out of..." should work on any of targetedreturnkeywordsKT-27184"Replace with safe call" is not suggested for nullable var property that is impossible to smart castKT-27209"Loop parameter 'it' is unused": unhelpful quickfixKT-27291"Create" quick fix: "destination directory" field suggests same root and JVM roots for all platformsKT-27354False positive "Make 'Foo' open" fordataclass inheritanceKT-27408"Add braces to 'if' statement" moves end-of-line comment inside anifbranchKT-27486ConvertCallChainIntoSequence quick fix doesn't convert 'unzip' into 'Sequence'KT-27539False positiveRedundant Companion referencewhen val in companion is effectively shadowed by inherited valKT-27584False positive "Move lambda argument out of parentheses" when implementing interface by delegationKT-27590No “Change parameter” quick fix for changing argument type from UInt to IntKT-27619Inspection "Invalid property key" should check whether reference is soft or notKT-27664Fix flaky problem in tests "Could not initialize class UnusedSymbolInspection"KT-27699"Remove redundant spread operator" produces incorrect codeKT-27708IDE highlights internal constructors used only from Java as unusedKT-27791Don't suggestImplement as constructor parametersquick fix foractualclass declarationKT-27861RedundantCompanionReference false positive for nested class with name "Companion"KT-27906SafeCastAndReturn is not reported on code block with unqualified returnKT-27951False declaration in actual list (same name but not really actual)KT-28047False positive "Redundant lambda arrow" for lambda returned fromwhenbranchKT-28196KotlinAddImportAction: AWT events are not allowed inside write actionKT-28200KNPE in TypeUtilsKt.getDataFlowAwareTypesKT-28268Don't suggest "make abstract" quick fix for inline classesKT-28286"Unused symbol" inspection: Interface is reported as "class"KT-28341False positive "Introduce backing property" intention forconstvaluesKT-28381Forbid "move property to constructor" for expect classesKT-28382Forbid "introduce backing property" for expect classesKT-28383Exception during "move to companion" for expect class memberKT-28443"Move out of companion object" intention is suggested for @JvmField property inside companion object of interfaceKT-28504Redundant async inspection: support calls on explicitly given scopeKT-28540"Replace assert boolean with assert equality" inspection quickfix doesn't add import statementKT-28618Kotlin: convert anonymous function to lambda expression failed if no space at start of lambda expressionKT-28694"Assign backing field" quick fix adds empty line before created assignmentKT-28716KotlinDefaultHighlightingSettingsProvider suppresses inspections in non-kotlin filesKT-28744val-keyword went missing from constructor of inline class after applying “Create actual class...” intentionKT-28745val-keyword went missing from constructor of inline class after applying “Create expected class in common module...” intention
IDE. KDoc
KT-24788Endless exceptions in offline inspections
IDE. Multiplatform
KT-26518Create actual ...quick fix doesn't add a primary constructor call for the actual secondary constructorKT-26893Multiplatform projects fail to import into Android Studio 3.3, 3.4KT-26957Merge expect gutter icon, when used for the same lineKT-27295MPP: Rebuild module / Recompile source does nothing for Native with Delegate to gradle = YesKT-27296MPP: Rebuild module / Recompile source does nothing for Common with Delegate to gradle = YesKT-27335New multiplatform wizard: mobile library is generated with failed testKT-27595KNPE on attempt to generateequals(),hashCode(),toString()forexpectclass
IDE. Navigation
KT-22637Go to actual declarations for enum values should choose correct value if they are written in one lineKT-27494Create tooling tests for new-multiplatformKT-28206Go to implementations on expect enum shows not only enum classes, but also all membersKT-28398Broken navigation to actual declaration ofprintln()in non-gradle project
IDE. Project View
KT-26210IOE “Cannot create file” on creating new file with existing filename by pasting a code in Project viewKT-27903Can create file with empty name without any warning
IDE. REPL
KT-29285Starting REPL in Gradle project: Will compile into IDEA's out folder which then shadows Gradle's compile output
IDE. Refactorings
KT-23603Add the support for find usages/refactoring of the buildSrc sources in gradle kotlin DSL build scriptsKT-26696Copy, Move: "Destination directory" field does not allow to choose a path from non-JVM moduleKT-28408"Extract interface" action should not show private propertiesKT-28476Extract interface / super class on non-JVM class throws KNPE
IDE. Scratch
KT-23523Filter out fake gradle modules from checkbox in Scratch file panelKT-25032Scratch: IDEA hangs/freezes on code that never returns (infinite loops)KT-26271Scratches for Kotlin do not work when clicking "Run Scratch File" buttonKT-26332Fix classpath intention in Kotlin scratch file in Java only project doesn't do anythingKT-27628Scratch blocks AWT Queue threadKT-28045'Run kotlin scratch' is shown for jest tests
IDE. Script
KT-24465Provide a UI to manage script definitionsKT-24466Add warning when there are multiple script definitions for one scriptKT-25818IDE Scripting Console files shouldn't have scratch panelKT-26331Please extract ScriptDefinitionContributor/KotlinScriptDefinition from kotlin-plugin.jar to separate jarKT-27669Consider moving expensive tasks out of the UI threadKT-27743Do not start multiple background threads loading dependencies for different scriptsKT-27817Implement a lightweight EP in a separate public jar for supplying script definitions to IDEAKT-27960Add capability to import one Script to anotherKT-28046"Reload script dependencies on file change" option is missing after project restart
IDE. Tests Support
KT-27977Missing 'run' gutter on a test method of an abstract classKT-28080Wrong run configuration created from context for test method in abstract class
JS. Tools
KT-27361Support NamedConstructor in idl2kKT-28786Float values initialized incorrectly while translating from IDLKT-28821Kotlin/JS missing ClipboardEvent definitionsKT-28864Better support for TrackEvent, MediaStreamTrackEvent and RTCTrackEvent in idl
JavaScript
KT-27611Calling a suspending function of a JS library causes "Uncaught ReferenceError: CoroutineImpl is not defined"KT-28207Finally block loops forever for specific code shapeKT-28215JS: inline suspend function not usable in non-inlined formKT-29003KotlinJS: Size of String in stdlib is limited if the the Constructor String(chars: CharArray) gets used
Libraries
New Features
KT-18398Provide a way for libraries to avoid mixing Kotlin 1.0 and 1.1 dependencies in end user projectsKT-27919Publish modularized artifacts under 'modular' classifier
Performance Improvements
KT-27251Do not use Stack in FileTreeWalk iterator implementation
Fixes
KT-12473KotlinJS - comparator returning 0 changes orderKT-20743Use strongly typed events in Kotlin2js DOM APIKT-20865Retrieving groups by name is not supported on Java 9 even withkotlin-stdlib-jre8in the classpathKT-23932add "PointerEvent" for kotlin-stdlib-jsKT-24336Kotlin/JS missing SVGMaskElement interfaceKT-25371Support unsigned integers in kotlinx-metadata-jvmKT-27629kotlin.test BeforeTest/AfterTest annotation mapping for TestNGKT-28091Provide correct AbstractMutableCollections declarations in stdlib-commonKT-28251Stdlib: Deprecated ReplaceWithkotlin.math.logreplacement instead ofkotlin.math.lnKT-28488Add clarification for COROUTINES_SUSPENDED documentationKT-28572readLine() stumbles at surrogate pairsKT-29187JS toTypedArray returns array of invalid type for LongArray and BooleanArray
Reflection
KT-26765Support calling constructors with inline classes in the signature in reflectionKT-27585Flaky IllegalPropertyDelegateAccessException: Cannot obtain the delegate of a non-accessible property. Use "isAccessible = true" to make the property accessibleKT-27598"KotlinReflectionInternalError" when usingcallByon constructor that has inline class parametersKT-27913ReflectJvmMapping.getKotlinFunction(ctor) works incorrectly with types containing variables of inline class
Tools. CLI
KT-27226Argfiles: An empty argument in quotes with a whitespace or a newline after it interrupts further reading of argumentsKT-27430[Experimental API] Report warning instead of error if non-marker is used in -Xuse-experimental/-XexperimentalKT-27626-Xmodule-path does not work in Gradle project with Java 9KT-27709Using an experimental API that does not exist should warn, not errorKT-27775Re-enable directories passed as in -Xbuild-fileKT-27930Do not use toURI in ModuleVisibilityUtilsKt.isContainedByCompiledPartOfOurModule if possibleKT-28180Backslash-separated file paths in argfiles do not work on WindowsKT-28974Serialization bug in CommonToolArguments, affecting MPP project data serialization
Tools. Compiler Plugins
KT-24997Pass arguments to Kapt in human-readable formatKT-24998Introduce separate command line tool specifically for Kapt in order to improve UXKT-25128ABI jar generation in the CLI compiler for Bazel like build systems.
Tools. Gradle
New Features
KT-26963Warn user that a custom platform-agnostic source set wouldn't be included into build unless it is required for other source setsKT-27394Add kotlinOptions in compilations of the new MPP modelKT-27535Implement AARs building and publishing in new MPPKT-27685In new MPP, expose a compilation's default source set via DSLKT-28155Add ability to run tasks in parallel within projectKT-28842Enable JS IC by default
Performance Improvements
KT-24530Enable compile avoidance for kaptKotlin tasksKT-28037In-process Kotlin compiler leaks thread local values
Fixes
KT-26065Kotlin Gradle plugin resolves dependencies at configuration timeKT-26389Support Gradle Kotlin DSL in projects with thekotlin-multiplatformpluginKT-26663Gradle dependency DSL features missing for the new MPP dependenciesKT-26808Deprecation Warning Gradle 5 - "DefaultSourceDirectorySet constructor has been deprecated"KT-26978Gradle verification fails on DiscoverScriptExtensionsTaskKT-27682Kotlin MPP DSL: a target is missing theattributes { ... }function, only theattributesproperty is available.KT-27950Gradle 5.0-rc1: "Compilation with Kotlin compile daemon was not successful"KT-28355Gradle Kotlin plugin publishes "api" dependencies with runtime scopeKT-28363Enable resources processing for Kotlin/JS target in multiplatform projectsKT-28469Gradle Plugin: Task DiscoverScriptExtensionsTask is never up-to-dateKT-28482Always rewrite the MPP dependencies in POMs, even when publishing with Gradle metadataKT-28520MPP plugin can't be applied altogether with the "maven-publish" plugin in a Gradle 5 buildKT-28635fromPreset() in MPP Gradle plugin DSL is hard to use from Gradle Kotlin DSL scriptsKT-28749ExposeallKotlinSourceSetsinKotlinCompilationKT-28795The localToProject attribute is not properly disambiguated with Gradle 4.10.2+KT-28836Kotlin compiler logs from Gradle Kotlin Plugin aren't captured by GradleKT-29058Gradle Plugin: Multiplatform project with maven-publish plugin does not use project group for "metadata" artifact POM
Tools. J2K
KT-26073Irrelevant "create extra commit with java->kt rename"
Tools. JPS
KT-26980JPS Native warning is duplicated for test source setsKT-27285MPP: invalid common -> platform dependency: JPS fails with Throwable "Cannot initialize Kotlin context: Cyclically dependent modules" at KotlinChunk.()KT-27622JPS, JS: Resources marked as "kotlin-resource" are not copied to the out folder in a Kotlin-js projectKT-28095JPS: support -Xcommon-sources for multiplatform projects (JS)KT-28316ReportNative is not yet supported in IDEA internal build systemon JPS build once per project/multiplatform moduleKT-28527JPS: Serialization plugin not loaded in ktorKT-28900With "Keep compiler process alive between invocations = No" (disabled daemon) JPS rebuild fails with SCE: "Provider AndroidCommandLineProcessor not a subtype" at PluginCliParser.processPluginOptions()
Tools. Scripts
KT-27382Embeddable version of scripting support (KEEP 75)KT-27497kotlin script - No class roots are found in the JDK pathKT-29293Script compilation - standard libs are not added to the dependenciesKT-29301Some ivy resolvers are proguarded out of the kotlin-main-ktsKT-29319scripts default jvmTarget causes inlining problems - default should be 1.8
Tools. kapt
New Features
KT-28024Kapt: Add option for printing timings for individual annotation processorsKT-28025Detect memory leaks in annotation processors
Performance Improvements
KT-28852Cache classloaders for tools.jar and kapt in Gradle workers
Fixes
KT-24368Kapt: Do not include compile classpath entries in the annotation processing classpathKT-25756Investigate file descriptors leaks in kaptKT-26145Usingkaptwithout thekotlin-kaptplugin should throw a build errorKT-26304Build fails with "cannot find symbol" using gRPC with dagger; stub compilation fails to find classes generated by kaptKT-26725Kapt does not handle androidx.annotation.RecentlyNullable correctlyKT-26817kapt 1.2.60+ ignores .java files that are symlinksKT-27126kapt: class implementing List generates bad stubKT-27188kapt Gradle plugin fails in Java 10+ ("Cannot find tools.jar")KT-27334[Kapt] Stub generator uses constant value in method annotation instead of constant name.KT-27404Kapt does not call annotation processors on custom (e.g., androidTest) source sets if all dependencies are inherited from the main kapt configurationKT-27487Previous value is passed to annotation parameter using annotation processingKT-27711kapt: ArrayIndexOutOfBoundsException: 0KT-27910Kapt lazy stub without explicit type that initializes an object expression breaks stubbing
1.3.11
Compiler
KT-28097AbstractMethodError for @JvmSuppressWildcards annotation used with coroutinesKT-28225Report a warning when comparing incompatible enums
IDE. Gradle
KT-28389MPP IDE import does not recognize a dependency from a subproject to the root project
IDE. Inspections and Intentions
KT-28445"Redundant async" inspection does not work with release coroutines
IDE. Multiplatform
KT-27632MPP IDE commonMain cannot see other commonMain types transitively which are exposed through a middle multiplatform module
JavaScript
KT-27946Late initialization based on contracts breaks Kotlin/JS in 1.3.0
Tools. Gradle
KT-27500MPP: Native:.moduledependency is reported as error in the IDE after import
1.3.10
Compiler
KT-27758Kotlin 1.3 breaks compilation of calling of function named 'contract' with block as a last parameterKT-27895Kotlin 1.3.0 broken runtime annotation issue
IDE
IDE. Debugger
KT-275402018.3 and 2019.1 Debugger: Evaluating anything fails with KNPE in LabelNormalizationMethodTransformerKT-27833Evaluate exception in 183/191 withasm-7.0-beta1/'asm-7.0'KT-27965Sequence debugger does not work in Android StudioKT-27980Kotlin sequence debugger throws IDE exception in IDEA 183
IDE. Gradle
KT-27265Unresolved reference in IDE on calling JVM source set members of a multiplatform project with Android target from a plain Kotlin/JVM moduleKT-27849IntelliJ: Wrong scope of JVM platform MPP dependency
IDE. Inspections and Intentions
KT-26481Flaky false positive "Receiver parameter is never used" for local extension functionKT-27357Function with inline class type value parameters is marked as unused by IDEKT-27434False positive "Unused symbol" inspection for functions and secondary constructors of inline classesKT-27945Quick-fix whitespace bug in KtPrimaryConstructor.addAnnotationEntry()
IDE. Scratch
KT-27746Scratch: "Cannot pop operand off an empty stack" in a new scratch file
IDE. Tests Support
KT-27371Common tests can not be launched from gutter in MPP Android/iOS project
Reflection
KT-27878Spring: "AssertionError: Non-primitive type name passed: void"
Tools. Gradle
KT-27160Kotlin Gradle plugin 1.3 resolves script configurations during project evaluationKT-27803CInterop input configuration has 'java-api' as a Usage attribute value in new MPPKT-27984Kotlin Gradle Plugin: Circular dependency
Tools. JPS
KT-26489JPS: support -Xcommon-sources for multiplatform projects (JVM)KT-27037Incremental compilation failed after update to 1.3.0-rc-60KT-27792Incremental compilation failed with NullPointerException in KotlinCompileContext.markChunkForRebuildBeforeBuild
Tools. kapt
KT-27126kapt: class implementing List generates bad stub
1.3.0
IDE
KT-25429Replace update channel in IDE pluginKT-27793kotlinx.android.synthetic is unresolved on project reopening
IDE. Inspections and Intentions
KT-27619Inspection "Invalid property key" should check whether reference is soft or not
1.3-RC4
Compiler
Fixes
KT-26858Inline class access to private companion object value fails with NSMEKT-27030Non-capturing lambda in inline class members fails with internal error (NPE in genClosure)KT-27031Inline extension lambda in inline class fun fails with internal error (wrong bytecode generated)KT-27033Anonymous object in inline class fun fails with internal error (NPE in generateObjectLiteral/.../writeOuterClassAndEnclosingMethod)KT-27096AnalyzerException: Error at instruction 71: Expected I, but found . when function takes unsigned type with default value and returns nullable inline classKT-27130Suspension point is inside a critical section regressionKT-27132CCE when inline class is boxedKT-27258Report diagnostic for suspension point inside critical section for crossinline suspend lambdasKT-27393Incorrect inline class type coercion in '==' with generic callKT-27484Suspension points in synchronized blocks checker crashesKT-27502Boxed inline class backed by Any is not unboxed before method invocationKT-27526Functional type with inline class argument and suspend modified expects unboxed value while it is boxedKT-27615Double wrap when inline class is printing if it was obtained from list/mapKT-27620Report error when using value of kotlin.Result type as an extension receiver with safe call
IDE
KT-27298Deadlock on project openKT-27329Migration doesn't work for kts projects when versions are stored in kt files inside buildSrc directoryKT-27355Assertion error from light classes (expected callable member was null) for type alias in JvmMultifileClass annotated fileKT-27456New Project wizard: Kotlin (Multiplatform Library): consider generating source files with different names to work around KT-21186KT-27473"Gradle sync failed: Already disposed: Module: 'moduleName-app_commonMain'" on reimport of a multiplatform project with Android target between different IDEsKT-27485Gradle import failed with "Already disposed" error on reopening of a multiplatform project with Android targetKT-27572ISE: "Could not generate LightClass for entry declared in " at CompilationErrorHandler.lambda$static$0()
IDE. Android
KT-26975CNFDE KotlinAndroidGradleOrderEnumerationHandler$FactoryImpl in AS 3.3 with Kotlin 1.3.0-rc-51KT-27451maintarget platform selection is not working in a multiplatform project with Android and JVM targets in Android Studio
IDE. Gradle
KT-27365Dependencies between Java project and MPP one are not respected by importKT-27643First import of Android project miss skips some dependencies in IDEA 183
IDE. Multiplatform
KT-27356Usekotlin-stdlibinstead ofkotlin-stdlib-jdk8in Android-related MPP templates
IDE. Scratch
KT-24180Add key shortcut and action for running a kotlin scratch file (green arrow button in the editor tool-buttons)
JavaScript
KT-26320JS: forEach + firstOrNull + when combination does not compile correctlyKT-26787Incorrect JS code translation:whenstatement insideforloop breaks out of the loop
Libraries
KT-27508Rename Random companion object to Default
Tools. Gradle
KT-26758Unify Gradle DSL for compiler flags in new multiplatform modelKT-26840Support -Xuse-experimental in the new MPP language settings DSLKT-27278New MPP plugin is binary-incompatible with Gradle 5.0KT-27499In new MPP, support compiler plugins (subplugins) options import into the IDE for each source set
Tools. JPS
KT-27044JPS rebuilds twice when dependency is updated
Tools. kapt
KT-27119kapt: val without explicit type that is assigned an object expression implementing a generic interface breaks compilation
1.3-RC3
Compiler
KT-26300Smartcasts don't work if pass same fields of instances of the same class in contract function with conjunction not-null conditionKT-27221Incorrect smart cast for sealed classes with a multilevel hierarchy
IDE
KT-27163Replace coroutine migration dialog with notificationKT-27200New MPP wizard: mobile libraryKT-27201MPP library wizards: provide maven publishingKT-27214Android test source directories are not recognised in IDEKT-27351Better fix for coroutines outdated versions in Gradle and Maven
IDE. Android
KT-27331Missing dependencies in Android project depending on MPP project
IDE. Inspections and Intentions
KT-27164Create a quick fix for replacing obsolete coroutines in the whole project
IDE. Multiplatform
KT-27029Multiplatform project is unloaded if Gradle refresh/reimport is failed
Libraries
KT-22869Improve docs of assertFailsWith function
Tools. CLI
KT-27218From @ not all whitespace characters are parsed correctly
Tools. Compiler Plugins
KT-27166Disable kotlinx.serialization plugin in IDE by default
1.3-RC2
Android
KT-27006Android extensions are not recognised by IDE in multiplatform projectsKT-27008Compiler plugins are not working in multiplatform projects with Android target
Compiler
KT-24415Remove bridge flag from default methodsKT-24510Coroutines make Android's D8 angryKT-25545Import statement of@Experimentalelement causes compiler warning/error, but annotation can't be used to avoid itKT-26382Wrong smartcast if used safe call + returnsNull effectKT-26640Check inference behaviour for coroutines that it's possible to improve it in compatible wayKT-26804Make sure @PublishedAPI is retained in binary representation of a primary constructor of an inline classKT-27079Allow using extensions without opt-in in builder-inference if they add only trivial constraintsKT-27084smart cast to non-nullable regression from 1.2.70 to 1.3.0-rc-57KT-27117IllegalAccessError when using private Companion field inside inline lambdaKT-27121Illegal field modifiers in class for a field of an interface companionKT-27161Getting "Backend Internal error: Descriptor can be left only if it is last" using new when syntax
IDE
New Features
KT-26313Support ResolveScopeEnlarger in Kotlin IDEKT-26786MPP builders: create not only build.gradle but some example files also
Fixes
KT-13948IDE plugins: improve descriptionKT-14981IDE should accept only its variant of plugin, as possibleKT-23864Copyright message is duplicated in kotlin file in root package after updating copyrightKT-24907please remove usages of com.intellij.openapi.vfs.StandardFileSystems#getJarRootForLocalFile deprecated long agoKT-25449Mark classes loaded by custom class loader with @DynamicallyLoaded annotation for the sake of better static analysisKT-25463API version in Kotlin facets isn't automatically set to 1.3 when importing a project in GradleKT-25952New Project Wizard: generate MPP in a new wayKT-26501Fix "IDEA internal actions" group text to "Kotlin internal actions"KT-26695IDEA takes 1.3-M2-release plugin as more recent than any 1.3.0-dev-nnn or 1.3.0-rc-nnn pluginKT-26763Compiler options are not imported into Kotlin facet for a Native moduleKT-26774Create IDE setting for experimental inline classesKT-26889Don't show migration dialog if no actual migrations are availableKT-26933No jre -> jdk fix in Gradle file if version isn't written explicitlyKT-26937MPP: Gradle import: addingtargetdefinition after importing itssourceSetdoes not correct the module SDKKT-26953New MPP project wrong formattingKT-27021Wrong JVM target if no Kotlin facet is specifiedKT-27100Version migration dialog is not shown in Studio 3.3KT-27145Gradle import: JVM modules gets no JDK in dependenciesKT-27177MPP wizards: use Gradle 4.7 onlyKT-27193Gradle import: with Kotlin configured Android module gets non-Android JDK
IDE. Code Style, Formatting
KT-27027Formatter puts when subject variable on a new line
IDE. Completion
KT-25313Autocomplete generates incorrect code on fields overriding byexpectedclass
IDE. Hints
KT-26057(arguably) redundant hint shown for enum value when qualified with enum class
IDE. Inspections and Intentions
KT-14929Deprecated ReplaceWith for type aliasesKT-25251Create intention for migration coroutines from experimental to released stateKT-26027False positive from "Nested lambda has shadowed implicit parameter" inspection for SAM conversionKT-26268Inspection "Nested lambda has shadowed implicit parameter" should only warn if parameter is usedKT-26775Create quick fix that enable or disable experimental inline classes in projectKT-26991ReplaceWith for object doesn't work anymore
IDE. Multiplatform
KT-24060mainfunction in common part of MPP project: allow user to choose between platform modules to run it fromKT-26647Warn user about incompatible/ignored Native targets on Gradle build of a project with the new multiplatform modelKT-26690IDE significantly slows down having Native target in a multiplatform projectKT-26872MPP: JS: Node.js run configuration is created with not existing JavaScript fileKT-26942MPP IDE: JS test configuration removes gutter actions from common moduleKT-27010New mpp: missing run gutters in common code when relevant platform roots do not existKT-27133IDE requiresactualimplementations to be also present in test source setsKT-27172ISE: "The provided plugin org.jetbrains.kotlin.android.synthetic.AndroidComponentRegistrar is not compatible with this version of compiler" on build of a multiplatform project with iOS and Android
IDE. Navigation
KT-25055Android modules are named same as JVM ones inactualgutter tooltipKT-26004IDE: Unable to navigate to common library declaration from platform code (not necessarily in an MPP project)
IDE. Tests Support
KT-23884Running common module test in IDE results in "no JDK specified" errorKT-23911Cannot jump to source from common test function in Run tool window
Libraries
Reflection
KT-24170Instance parameter of inherited declaration should have the type of subclass, not the base class
Tools. Compiler Plugins
KT-24444Do not store proxy objects from Gradle importer in the project model
Tools. Gradle
KT-25200Report a warning when building multiplatform code in GradleKT-26390Implement source JARs building and publishing in new MPPKT-26771New Native MPP Gradle plugin creates publications only for host systemKT-26834Gradle compilation of multimodule project fails with Could not resolve all files for configuration ':example-v8:apiDependenciesMetadata'KT-27111org.jetbrains.kotlin.platform.typeis not set for some Gradle configurations in multiplatform pluginKT-27196Support Kotlin/JS DCE in new MPP
Tools. Scripts
KT-26828main-kts test fails with "Error processing script definition class"KT-27015Scripting sample from 1.3 RC blogpost does not workKT-270501.3-RC Scripting @file:Repository and @file:DependsOn annotations are not repeatable
1.3-RC
Compiler
New Features
KT-17679Support suspend fun main in JVMKT-24854Support suspend function types for arities bigger than 22KT-26574Support main entry-point without arguments in frontend, IDE and JVM
Performance Improvements
KT-26490Change boxing technique: instead of callingvalueOf, allocate new wrapper type
Fixes
KT-22069Array class literals are always loaded asArray<*>from deserialized annotationsKT-22892Call ofinvokefunction with lambda parameter on a field namedsuspendshould be reportedKT-24708Incorrect WhenMappings code generated in case of mixed enum classes in when conditionsKT-24853Forbid KSuspendFunctionN and SuspendFunctionN to be used as supertypesKT-24866Review support of all operators for suspend function and forbid all unsupportedKT-25461Mangle names of functions that have top-level inline class types in their signatures to allow non-trivial non-public constructorsKT-25855Load Java declarations which reference kotlin.jvm.functions.FunctionN as Deprecated with level ERRORKT-26071Postpone conversions from signed constant literals to unsigned onesKT-26141actual typealias for expect sealed class results in error "This type is sealed, so it can be inherited by only its own nested classes or objects"KT-26200Forbid suspend functions annotated with @kotlin.test.TestKT-26219Result of unsigned predecrement/preincrement is not boxed as expectedKT-26223Inline lambda arguments of inline class types are passed incorrectlyKT-26291Boxed/primitive types clash when overriding Kotlin from Java with common generic supertype with inline class type argumentKT-26403Add-implsuffix tobox/unboxmethods and make them syntheticKT-26404Mangling: setters for properties of inline class typesKT-26409implies in CallsInPlace effect isn't supportedKT-26437Generate constructors containing inline classes as parameter types as private with synthetic accessorsKT-26449Prohibit equals-like and hashCode-like declarations inside inline classesKT-26451Generate static methods with equals/hashCode implementationsKT-26452Get rid of $Erased nested class in ABI of inline classesKT-26453Generate all static methods in inline classes with “-impl” suffixKT-26454Prohibit @JvmName on functions that are assumed to be mangledKT-26468Inline class ABI: Constructor invocation is not represented in bytecodeKT-26480Report error from compiler when suspension point is located between corresponding MONITORENTER/MONITOREXITKT-26538Prepare kotlin.Result to publication in 1.3KT-26558Inline Classes: IllegalStateException when invoking secondary constructor for a primitive underlying typeKT-26570Inline classes ABIKT-26573Reserve box, unbox, equals and hashCode methods inside inline class for future releasesKT-26575Reserve bodies of secondary constructors for inline classesKT-26576Generate stubs for box/unbox/equals/hashCode inside inline classesKT-26580Add version to kotlin.coroutines.jvm.internal.DebugMetadataKT-26659Prohibit using kotlin.Result as a return type and with special operatorsKT-26687Stdlib contracts have no effect in common codeKT-26707companion val of primitive type is not treated as compile time constantKT-26720Write language version requirement on inline classes and on declarations that use inline classesKT-26859Inline class misses unboxing when using indexer into an ArrayListKT-26936Report warning instead of error on usages of Experimental/UseExperimentalKT-26958Introduce builder-inference with an explicit opt-in for it
IDE
New Features
KT-26525"Move Element Right/Left": Support type parameters inwhereclause (multiple type constraints)
Fixes
KT-22491MPP new project/new module templates are not convenientKT-26428Kotlin Migration in AS32 / AS33 fails to complete after "Indexing paused due to batch update" eventKT-26484Do not show-Xmulti-platformoption in facets for common modules of multiplatform projects with the new modelKT-26584@Language prefix and suffix are ignored for function argumentsKT-26679Coroutine migrator should rename buildSequence/buildIterator to their new namesKT-26732Kotlin language version from IDEA settings is not taken into account when working with Java codeKT-26770Android module in a multiplatform project isn't recognised as a multiplatform moduleKT-26794Bad version detection during migration in Android Studio 3.2KT-26823Fix deadlock in databinding with AndroidX which led to Android Studio hangingKT-26827ISE “Error type encountered: [ERROR : UInt] (UnresolvedType)” for data inline class wrapped unsigned typeKT-26829ISE “Error type encountered: [ERROR : UInt] (UnresolvedType)” for using as a field inline class wrapped unsigned typeKT-26843LazyLightClassMemberMatchingError$NoMatch: Couldn't match ClsMethodImpl:getX MemberIndex(index=1) (with 0 parameters)on inline class overriding inherited interface method defined in different filesKT-26895Exception while building light class for @Serializable annotated class
IDE. Android
KT-26169Android extensions are not recognised by IDE in multiplatform projectsKT-26813Multiplatform projects without Android target are not imported properly into Android Studio
IDE. Code Style, Formatting
KT-22322Incorrect indent after pressing Enter after annotation entryKT-26377Formatter does not add blank line between annotation and type alias (or secondary constructor)
IDE. Decompiler
KT-25853IDEA hangs when Kotlin bytecode tool window open while editing a class with secondary constructor
IDE. Gradle
KT-26634Do not generate module for metadataMain compilation on new MPP importKT-26675Gradle: Dependency on multiple files gets duplicated on import
IDE. Inspections and Intentions
New Features
KT-17687Quickfix for "Interface doesn't have constructors" to convert to anonymous objectKT-24728Add quickfix to remove single explicit & unused lambda parameterKT-25533An intention to createactualimplementations forexpectmembers annotated with @OptionalExpectationKT-25621Inspections for functions returning SuccessOrFailureKT-25969Add an inspection for 'flatMap { it }'KT-26230Inspection: replace safe cast (as?) withif(instance check + early return)
Fixes
KT-13343Remove explicit type specification breaks code if initializer omits genericsKT-19586Create actual implementation does nothing when platform module has no source directories.KT-22361Multiplatform: "Generate equals() and hashCode()" intention generates JVM specific code for arrays in common moduleKT-22552SimplifiableCallChain should keep formatting and commentsKT-24129Multiplatform quick fix add implementation suggests generated source locationKT-24405False "redundant overriding method" for abstract / default interface method combinationKT-24978Do not highlight foldable if-then for is checksKT-25228"Create function" from a protected inline method should not produce a private methodKT-25525@Experimental-related quick fixes are not suggested for usages in top-level propertyKT-25526@Experimental-related quick fixes are not suggested for usages in type aliasKT-25548@ExperimentalAPI usage: "Add annotation" quick fix incorrectly modifies primary constructorKT-25609"Unused symbol" inspection reports annotation used only in-Xexperimental/-Xuse-experimentalsettingsKT-25711"Deferred result is never used" inspection: removeexperimentalpackage (or whole FQN) from descriptionKT-25712"Redundant 'async' call" inspection quick fix action label looks too longKT-25883False "redundant override" reported on boxed parametersKT-25886False positive "Replace 'if' with elvis operator" for nullable typeKT-25968False positive "Remove redundant backticks" with keywordyieldKT-26009"Convert to 'also'" intention adds an extraitexpressionKT-26015Intention to move property to constructor adds @field: qualifier to annotationsKT-26179False negative "Boolean expression that can be simplified" for!trueKT-26181Inspection for unused Deferred result: report for all functions by defaultKT-26185False positive "redundant semicolon" with if-elseKT-26187"Cascade if can be replaced with when" loses lambda curly bracesKT-26289Redundant let with call expression: don't report for long call chainsKT-26306"Add annotation target" quick fix adds EXPRESSION annotation, but not SOURCE retentionKT-26343"Replace 'if' expression with elvis expression" produces wrong code in extension function with not null type parameterKT-26353"Make variable immutable" is a bad name for a quickfix that changes 'var' to 'val'KT-26472"Maven dependency is incompatible with Kotlin 1.3+ and should be updated" inspection is not included into Kotlin MigrationKT-26492"Make private" on annotated annotation produces nasty new lineKT-26599"Foldable if-then" inspection marks if statements that cannot be folded using ?. operatorKT-26674Move lambda out of parentheses is not proposed for suspend lambdaKT-26676ReplaceWith always puts suspend lambda in parenthesesKT-26810"Incompatible kotlinx.coroutines dependency" inspections report library built for 1.3-RC with 1.3-RC plugin
IDE. Multiplatform
KT-20368Unresolved reference to declarations from kotlin.reflect in common code in multi-platform project: no "Add import" quick-fixKT-26356New MPP doesn't work with Android projectsKT-26369Library dependencies don't transitively pass for custom source sets at new MPP import to IDEKT-26414Remove old multiplatform modules templates from New Project/New Module wizardKT-26517Create actual ...generates default constructor parameter valuesKT-26585Stdlib annotations annotated with @OptionalExpectation are reported with false positive error in common module
IDE. Navigation
KT-18490Multiplatform project: Set text cursor correctly to file with header on navigation from impl side
IDE. Refactorings
KT-17124Change signature refactoring dialog unescapes escaped parameter namesKT-25454Extract function: make default visibility privateKT-26533Move refactoring on interface shows it as "abstract interface" in the dialog
IDE. Tests Support
KT-26793Left gutter run icon does not appear for JS tests in old MPP
IDE. Ultimate
KT-19309Spring JPA Repository IntelliJ tooling with Kotlin
JavaScript
KT-26466Uncaught ReferenceError: println is not definedKT-26572Support suspend fun main in JSKT-26628Support main entry-point without arguments in JS
Libraries
New Features
KT-25039Any?.hashCode() extensionKT-26359Use JvmName on parameters of kotlin.Metadata to improve the public APIKT-26398Coroutine context shall perform structural equality comparison on keysKT-26598Introduce ConcurrentModificationException actual typealias in the JVM library
Performance Improvements
KT-18483Check to contains value in range can be dramatically slow
Fixes
KT-17716JS: Some kotlin.js.Math methods break Integer type safetyKT-21703Review deprecations in stdlib for 1.3KT-21784Deprecate and remove org.jetbrains.annotations from kotlin-stdlib in compiler distributionKT-22423Deprecate mixed integer/floating point overloads of ClosedRange.contains operatorKT-25217Raise deprecation level for mod operators to ERRORKT-25935Move kotlin.reflect interfaces to kotlin-stdlib-commonKT-26358Rebuild anko for new coroutines APIKT-26388Specialize contentDeepEquals/HashCode/ToString for arrays of unsigned typesKT-26523EXACTLY_ONCE contract in runCatching doesn't consider lambda exceptions are caughtKT-26591Add primitive boxing functions to stdlibKT-26594Change signed-to-unsigned widening conversions to sign extendingKT-26595Deprecate common 'synchronized(Any) { }' functionKT-26596Rename Random.nextInt/Long/Double parametersKT-26678Rename buildSequence/buildIterator to sequence/iteratorKT-26929Kotlin Reflect and Proguard: can’t find referenced class kotlin.annotations.jvm.ReadOnly/Mutable
Reflection
KT-25499Use-site targeted annotations on property accessors are not visible in Kotlin reflection if there's also an annotation on the propertyKT-25500Annotations on parameter setter are not visible through reflectionKT-25664Inline classes don't work properly with reflectionKT-26293Incorrect javaType for suspend function's returnType
Tools. CLI
KT-24613Support argfiles in kotlinc with "@argfile"KT-25862Release '-Xprogressive' as '-progressive'KT-26122Support single quotation marks in argfiles
Tools. Gradle
KT-25680Gradle plugin: version with non-experimental coroutines and no related settings still runs compiler with-XcoroutinesoptionKT-26253New MPP model shouldn't generatemetadataMainandmetadataTestsource sets on IDE importKT-26383Common modules dependencies are not mapped at import of a composite multiplatform project with project dependencies into IDEKT-26515Support -Xcommon-sources in new MPPKT-26641In new MPP, Gradle task for building classes has a name unexpected for GradleProjectTaskRunnerKT-26784Support non-kts scripts discovery and compilation in gradle
Tools. JPS
KT-26072MPP compilation issueKT-26254JPS build for new MPP model doesn't work: kotlinFacet?.settings?.sourceSetNames is empty
Tools. kapt
KT-25374Kapt: Build fails with Unresolved local classKT-26540kapt3 fails to handle to-be-generated superclasses
1.3-M2
Compiler
New Features
KT-6592Support local variable initialization in lambda arguments to some functionsKT-19323Allow generic type parameter to have mixed constraints for @InlineOnly functionsKT-24857Support compatibility wrappers for coroutines in compilerKT-25320Support limited conversions for constants to simplify interop for Kotlin/NativeKT-25372Support JvmName on annotation property gettersKT-25495Release contract DSL as experimentalKT-25557Metadata that maps coroutine label to the file name and line numberKT-25559Metadata that maps coroutine spilled state to local variablesKT-25655Safe or non-null calls required on x following check(x != null)KT-25972Support reading binary metadata of the next major release
Performance Improvements
KT-24657Compiler performance issues with big filesKT-26243Avoid redundant "specialized" method for suspend lambdas.
Fixes
KT-19628Unresolved reference not reported on data class constructor@getannotationKT-20830Nulls can propagate through "enhanced nullability" types on module boundariesKT-21240Remove suspendCoroutineOrReturn intrinsic from compilerKT-22379Condition of while-loop with break can produce unsound smartcastKT-23438Back-end (JVM) Internal error: Failed to generate function suspendCoroutineOrReturnKT-23819Inline classes: mapping of fully generic classesKT-23857Annotation with target TYPE is not applicable to TYPE_USE in Java sourcesKT-24717Allow number literals to be used as unsigned ones with unsigned expected typedKT-24860Forbid usage function expression as suspend function expressionKT-24872Do not generate user-defined methods inside box class of inline classKT-24873Generate equals/hashCode/toString methods for inline classes same as for data classesKT-25246Incorrect bytecode generated for secondary constructor in inline class + primitive arrayKT-25278No smart cast for "returns() implies" contract when default argument is omittedKT-25287Getter-targeted annotations on annotation constructor parameters are lostKT-25293“Couldn't transform method node” error on compiling inline class with hashCode() method call when underlying value type is basic (number, char, boolean)KT-25299NoSuchMethodError Foo$Erased.hashCode(Ljava/lang/Object;) for hashCode(), toString() and equals() methods in inline classesKT-25328“Couldn't transform method node” error on compiling inline class which is wrapping Unit typeKT-25330CCE “[Ljava.lang.Integer; cannot be cast to Foo” for inline class which is wrapping ArrayKT-25521Coroutines state machine in Kotlin 1.3 should not have getLabel/setLabelKT-25558Stabilize field naming and mangling for suspending lambda classesKT-25580No warning about experimental API when unsigned types are inferredKT-25599“Exception during code generation” on compiling code with public constructor of unsigned numbers arrayKT-25614Support secondary constructors for inline classesKT-25683Compiler support for calling experimental suspend functions and function with experimental suspend function type as parameterKT-25688Add $continuation to LVTKT-25750CCE “Foo cannot be cast to java.lang.String” with inline classKT-25760Inline data class throws java.lang.VerifyError when trying toString() itKT-25794Incorrect code generated for accessing elements of Array where C is inline classKT-25824Move SuspendFunctionN fictitious interfaces to kotlin.coroutines packageKT-25825Allow to distinguish instances of function types from instances of suspend function types via kotlin.coroutines.jvm.internal.SuspendFunction marker interfaceKT-25912Calling groupingBy+reduce from suspend function causes IncompatibleClassChangeErrorKT-25914'==' for inline class with custom 'equals' uses underlying primitive type comparison insteadKT-25973Report metadata version mismatch upon discovering a .kotlin_module file in the dependencies with an incompatible metadata versionKT-25981Incorrect code generated for unboxed to boxed inline class equalityKT-25983Inline class equality uses IEEE 754 instead of total orderKT-26029Prohibit delegated properties inside inline classesKT-26030Prohibit implementation by delegation for inline classesKT-26052Inline Classes: IllegalArgumentException when underlying type is non-null but declared type is nullableKT-26101Prohibit inline classes with recursive underlying typesKT-26103Inline class with type parameters is inconsistently mapped to JVM type if underlying type is a primitiveKT-26120Inline Classes: Class inheritance is allowed but fails when referencing a superclass member
IDE
KT-25316PARTIAL resolve mode doesn't work when effects system is enabledKT-25611With Language / API version = "Latest stable" installing 1.3-M1 plugin upgrades actual values to 1.3KT-25681Remove "Coroutines (experimental)" settings from IDE and do not pass-Xcoroutinesto JPS compiler (since 1.3)KT-25714Kotlin plugin updater suggests plugins incompatible with current Studio build platformKT-26239New MPP template: addkotlin-testlibraries to the modules dependencies by defaultKT-26290Gradle Import: When all modules have the same language/API version use it for project-level settings as well
IDE. Completion
KT-25275Code completion does not take into account smart casts gotten from "returns implies" contract
IDE. Inspections and Intentions
KT-22330"Add remaining branch" quickfix doesn't properly import enum classKT-22354"Add remaining branches with import" quick fix causes KNPE at ImportAllMembersIntention$Companion.importReceiverMembers()KT-26158KNPE in "Create local variable"
IDE. Multiplatform
KT-26217"org.jetbrains.kotlin.resolve.MultiTargetPlatform$Common cannot be cast to org.jetbrains.kotlin.resolve.MultiTargetPlatform$Specific" on splitted actuals
IDE. Script
KT-25814IDE scripting console -> kotlin (JSR-223) - compilation errors - unresolved IDEA classesKT-25822jvmTarget from the script compiler options is ignored in the IDE
JavaScript
KT-22053JS: Secondary constructor of Throwable inheritor doesn't call to primary oneKT-25014Support 'when' with subject variable in JS back-endKT-26064JS inliner calls wrong constructor in incremental buildKT-26117JS runtime error: ArrayList_init instead of ArrayList_init_0KT-26138JS: prohibit external inline classKT-26171Prohibit inline classes as parameter and return type of external declaration
Language design
KT-7566Annotate kotlin.test.Test.assertNotNull() so that safe dereference isn't required after itKT-14397Make "smart cast" to non-null string working after isNullOrEmpty() check.KT-19532Evaluation order for constructor callKT-22274Restrict statement labels applicability
Libraries
New Features
KT-13814keys.associateWith { k -> v } functionKT-15539Random Convenience Method in Ranges (LongRange, IntRange, etc)KT-15695String/Collection/Map/Array/Sequence.ifEmpty { null }KT-18986Debug-friendly toString implementation for CoroutineImplKT-25570Random extensions to generate unsigned random numbersKT-25659Consider adding SuccessOrFailure.getOrDefault functionKT-25874Support array copying between two existing arraysKT-25875Need more access to raw underlying array in unsigned arraysKT-25962Add contract for 'synchronized'KT-26339Introduce CoroutineStackFrame interface for coroutine stack reconstruction in debugger
Fixes
KT-16097Index overflow when sequence has more than Int.MAX_VALUE elementsKT-17176Long/Int progressions with Long.MIN_VALUE and Int.MIN_VALUE step are weirdKT-19305IOStreams#readBytes is badly namedKT-19489Array.copyOfRange returns value violating declared type when bounds are out of rangeKT-21049Different behavior in split by regex at JVM and JSKT-23799Discontinue deprecated artifacts distribution: kotlin-runtime, kotlin-jslib, kotlin-stdlib-jre7/8KT-25274contract() function has internal visibilityKT-25303checkNotNull(T?) has no contract in contrast to checkNotNull(T?, () -> Any)KT-25771SuccessOrFailure.isFailure always returns false when boxedKT-25961Provide a way to create default-initialized 'U*Array'KT-26161String-to-number and number-to-string conversions for unsigned integers
Reflection
KT-14657Reflection: Provide ability to enumerate all cases of a sealed classKT-16795KType does not implement KAnnotatedElementKT-21972Reflection: Implement suspend functionsKCallable.callSuspend,callSuspendBy, andisSuspend
Tools. CLI
KT-25823Report a warning or error if an old language version or API version is used
Tools. Gradle
KT-26301In new MPP, a project with nojavaorjava-baseplugin applied cannot depend on a published MPP lib or run tests
Tools. Scripts
KT-26142update maven-central remote repository url
1.3-M1 IDE plugins update
IDE
- Kotlin plugin for Android Studio 3.3 Canary 4 is ready
KT-25713Android Studio on 182 platform: Gradle project re-import failsKT-25733"Convert Java File to Kotlin File" action was always disabled
1.3-M1
Language design
KEEP-104Inline classesKEEP-135Unsigned integer typesKEEP-95Experimental API annotationsKT-4895Support assignment of "when" subject to a variableKT-13762Prohibit annotations with target 'EXPRESSION' and retention 'BINARY' or 'RUNTIME'KT-16681kotlin allows mutating the field of read-only propertyKT-21515Restrict visibility of classifiers, nested in companion objects
Compiler
KT-24848Refine loading Java overrides of Kotlin suspend functionsKT-9580Report an error if 'setparam' target does not make sense for a parameter declarationKT-16310Nested classes inside enum entries capturing outer membersKT-17981Type parameter for catch parameter possible when exception is nested in generic, but fails in runtimeKT-21354Inconsistent behavior of 'for-in-range' loop if range is an array variable modified in loop bodyKT-25333Restrict visibility of Java static members from supertypes of companion objectKT-25623Do not load experimental coroutines as non-suspend function with additional Continuation parameter
Backend. JVM
KT-6301Support JvmStatic annotation on interface companion object membersKT-25508Inject probeCoroutineSuspended to coroutines bodyKT-18987Unroll recursion in CoroutineImpl.resumeKT-11567Companion object INSTANCE field more visible than companion object class itselfKT-13764Support lambdas and function references for arities bigger than 22KT-16615Do not generate ConstantValue attribute for non-const valsKT-25193Names of parameters from Java interface methods implemented by delegation are lostKT-25324VerifyError “Bad type on operand stack” on running code with call of array iterator for array of inline classesKT-25325CCE “Foo cannot be cast to java.lang.String” for iterating over the list of inline classesKT-25626Inline class values inside string literals don't use their own toString implementation
Backend. JVM. Coroutines
KT-20219Inline suspend function can't be used as non-inline functionKT-24863Support new Continuation API in JVM BEKT-24864Create new CoroutineImpl and other internal coroutines interfaces
Backend. JVM. Inline
KT-25511Inline classes fail with cross-inline functions
Binary Metadata
KT-24617Optional expected annotation is unresolved in a dependent platform moduleKT-25120RequireKotlin on nested class and its members is not loaded correctlyKT-25273java.lang.UnsupportedOperationException from incremental JS compilationKT-25310Write isUnsigned flag into metadata for unsigned types
Frontend
KT-15807@JvmField is not applicable to interface companion propertiesKT-16962Annotation classes cannot contain types or static fields because they cannot have a bodyKT-23153Compiler allows to set non constant value as annotation parameterKT-23362Move coroutines to package kolin.coroutines for 1.3KT-24861Fix loading kotlin.suspend compiled with LV=1.2 when release coroutines package is usedKT-25241Kotlin compiler doesn't warn about usage of lambda/reference with more than 22 parametersKT-25600NSEE “Collection is empty” after trying to call default constructor of unsigned number class
Frontend. Data-flow analysis
KT-22517Deprecate smartcasts for local delegated properties
Frontend. Declarations
KT-19618Data classcopy()call with optional parameters leads to broken code when the class implements an interface withcopy()KT-23277Prohibit local annotation classesKT-24197Make 'mod' operator error in 1.3
Frontend. Lexer & Parser
KT-24663Add 'UL' suffix to represent number literals of unsigned Long type
Frontend. Resolution and Inference
KT-16908Support callable references to suspending functionsKT-20588Report error on single element assignment to varargs in named form in annotationsKT-20589Report error on single element assignment to varargs in named form in functionsKT-24859Disallow calls of functions annotated with receiver annotated with @RestrictsSuspension in foreign suspension context
IDE
KT-25466Make coroutines resolve to be independent of language and API versions set inKotlin Compilersettings
IDE. Inspections and Intentions
KT-24243Support quick fix to enable usages of Experimental/UseExperimentalKT-11154Spell checking inspection is not suppressableKT-25169Impossible to suppress UAST/JVM inspections
IDE. Libraries
KT-25129Idea freezes when Kotlin plugin tries to determine if jar is js lib in jvm module
Libraries
New Features
KEEP-131,KT-17261Add random number generator to stdlib and related collection extension functionsKT-7922Companion object for BooleanKT-8247Byte size for primitivesKT-16552Add Sequence.orEmpty()KT-18559Make SafeContinuation and context impl classes serializableKT-18910StringBuilder#setLength(0) in non-JVM KotlinKT-21763Provide Char MIN_VALUE/MAX_VALUE constantsKT-23279isNullOrEmpty() for collections, maps, and arraysKT-23602Make kotlin.Metadata public
Fixes
KT-23564KotlinJS: Math is deprecated yet random is not a global functionKT-24856Create compatibility wrappers for migration from 1.2 to 1.3 coroutinesKT-24862Create new Continuation API for coroutines
Reflection
KT-25541Incorrect parameter names in reflection for inner class constructor from Java class compiled with "-parameters"
1.2.71
Compiler
KT-26806Defining constants using kotlin.math is broken in 1.2.70
IDE
KT-26399Kotlin Migration: NPE at KotlinMigrationProjectComponent$onImportFinished$1.run()KT-26794Bad version detection during migration in Android Studio 3.2KT-26823Fix deadlock in databinding with AndroidX which led to Android Studio hangingKT-26889Don't show migration dialog if no actual migrations are availableKT-25177Report asDynamic on dynamic type as a warningKT-25454Extract function: make default visibility private
JavaScript
KT-26466Uncaught ReferenceError: println is not defined
Tools. Gradle
KT-26208inspectClassesForKotlinIC slows down continuous mode in Gradle
Libraries
KT-26929Kotlin Reflect and Proguard: can’t find referenced class kotlin.annotations.jvm.ReadOnly/Mutable
1.2.70
Compiler
KT-13860Avoid creating KtImportDirective PSI elements for default imports in LazyImportScopeKT-22201Generate nullability annotations for data class toString and equals methods.KT-23870SAM adapter method returns null-values for "genericParameterTypes"KT-24597IDE doesn't report missing constructor on inheritance of an expected class in common moduleKT-25120RequireKotlin on nested class and its members is not loaded correctlyKT-25193Names of parameters from Java interface methods implemented by delegation are lostKT-25405Mismatching descriptor type parameters on inner typesKT-25604Disable callable references to exprerimental suspend functionsKT-25665Add a warning for annotations which target non-existent accessorsKT-25894Do not generate body for functions from Any in light class builder modeKT-20772Incorrect smart cast on enum membersKT-24657Compiler performance issues with big filesKT-25745Do not report warning about annotations on non-existing accessors for JvmStatic propertiesKT-25746Improve message for warning about annotations that have target to non-existing accessorsKT-25810New Inference: Overload resolution ambiguity on method 'provideDelegate(Nothing?, KProperty<*>)' when there's more than oneprovideDelegateoperator in scopeKT-25973Report metadata version mismatch upon discovering a .kotlin_module file in the dependencies with an incompatible metadata versionKT-22281JVM: Incorrect comparison of Double and Float when types are derived from smart-castsKT-22649Compiler: wrong code generated / Couldn't transform method node - using inline extension property inside lambda
IDE
KT-18301kotlin needs crazy amount of memoryKT-23668Methods with internal visibility have different mangling names in IDE and in compilerKT-24892please remove usages of com.intellij.util.containers.ConcurrentFactoryMap#ConcurrentFactoryMap deprecated long agoKT-25144Quick fix “Change signature” changes class of argument when applied for descendant classes with enabled -Xnew-inference optionKT-25356Update Gradle Kotlin-DSL icon according to new IDEA 2018.2 icons styleKT-20056TCE on creating object of an anonymous class in Kotlin scriptKT-25092SourcePsi should be physical leaf element but got OPERATION_REFERENCEKT-25249Uast operates "Unit" type instead of "void"KT-25255Preferences | Languages & Frameworks | Kotlin Updates: show currently installed versionKT-25297Inconsistency inKotlinULambdaExpressionandKotlinLocalFunctionULambdaExpressionKT-25515Add/remove analysis-related compiler setting does not update IDE project model immediatelyKT-25524UAST: proper resolve for function variable callKT-25640"Configure Kotlin" action changes values of language and API version in project settings
IDE. Debugger
KT-25147Conditional breakpoints doesn't work incommoncode of MPPKT-25152MPP debug doesn't navigate tocommoncode if there are same named files incommonandplatformparts
IDE. Gradle
KT-22732TestNG runner is always used for TestNG tests even when Use Gradle runner is selectedKT-25913Honor 'store generated project files externally option' for Kotlin facets imported from GradleKT-25955Support expect/actual in new MPP imported into IDEA
IDE. Inspections and Intentions
New Features
KT-6633Inspection to detect unnecessary "with" callsKT-25146Add quick-fix for default parameter value removalKT-7675Create inspection to replace if with letKT-13515Add intention to replace '?.let' with null checkKT-13854Need intention actions: to convert property with getter to initializerKT-15476Inspection to convert non-lazy chains of collection functions into sequencesKT-22068Force usage of “it” in .forEach{} callsKT-23445Inspection and quickfix to replaceassertTrue(a == b)withassertEquals(a, b)KT-25270"return@foo" outside of lambda should have quickfix to remove "@foo" label
Fixes
KT-11154Spell checking inspection is not suppressableKT-18681"Replace 'if' with 'when'" generates unnecessary else blockKT-24001"Suspicious combination of == and ===" false positiveKT-24385Convert lambda to reference refactor produces red code with companion objectKT-24694Move lambda out of parentheses should not be applied for multiple functional parametersKT-25089False-positive "Call chain on collection type can be simplified" formapandjoinToStringon aHashMapKT-25169Impossible to suppress UAST/JVM inspectionsKT-25321Safe delete of a class property implementing constructor parameter at the platform side doesn't remove all the related declarationsKT-25539Make class openquick fix doesn't update all the related implementations of a multiplatform classKT-25608Confusing "Redundant override" inspection messageKT-16422Replace lambda with method reference inspections failsKT-21999Convert lambda to reference adds this with incorrect labelKT-23467False positivesuspicious callable referenceon scoping function called on another lambdaKT-25044"Implement member" quick-fix should not generate 'actual' modifier with expect declaration in interface onlyKT-25579Redundant semicolon erroneously reported during local var modifier ambiguityKT-25633“Add kotlin-XXX.jar to the classpath” quick fix adds dependency with invalid version in Gradle-based projectsKT-25739"Convert to run" / "Convert to with" intentions incorrectly process references to Java static membersKT-25928"Let extend" quick fix is suggested in case of nullable/non-null TYPE_MISMATCH collisionKT-26042False positive "Remove redundant '.let' call" for lambda with destructured arguments
IDE. KDoc
KT-22815Update quick documentationKT-22648Quick Doc popup: break (long?) declarations into several lines
IDE. Libraries
KT-25129Idea freezes when Kotlin plugin tries to determine if jar is js lib in jvm module
IDE. Navigation
KT-25317Go to actual declarationkeyboard shortcut doesn't work forexpect object, showing "No implementations found" messageKT-25492Find usages: keepExpected functionsoption state while searching for usages of a regular functionKT-25498Find Usagesdoesn't showSupertypeusages ofactualdeclarations with constructor
IDE. Project View
KT-22823Text pasted into package is parsed as Kotlin before Java
IDE. Refactorings
KT-22072"Convert MutableMap.put to assignment" should not be applicable when put is used as expressionKT-23590Incorrect conflict warning "Internal function will not be accessible" when moving class from jvm to common moduleKT-23594Incorrect conflict warning about IllegalStateException when moving class from jvm to common moduleKT-23772MPP: Refactor / Rename class does not update name of file containing related expect/actual classKT-23914Safe search false positives during moves between common and actual modulesKT-25326Refactor/Safe Delete doesn't reportactual objectusagesKT-25438Refactor/Safe delete of a multiplatform companion object: usage is not reportedKT-25857Refactoring → Move moves whole file in case of moving class from Kotlin scriptKT-25858Refactoring → Move can be called only for class declarations in Kotlin script
IDE. Script
KT-25814IDE scripting console -> kotlin (JSR-223) - compilation errors - unresolved IDEA classesKT-25822jvmTarget from the script compiler options is ignored in the IDE
IDE. Multiplatform
KT-23368IDE: Build: JPS errors are reported for valid non-multiplatform module depending on multiplatform one
IDE. Ultimate
KT-25595Rename Kotlin-specific "Protractor" run configuration to distinguish it from the one provided by NodeJS pluginKT-19309Spring JPA Repository IntelliJ tooling with Kotlin
IDE. Tests Support
KT-26228NoClassDefFoundError: org/jetbrains/kotlin/idea/run/KotlinTestNgConfigurationProducer on running a JUnit test with TestNG plugin disabled
Reflection
KT-25541Incorrect parameter names in reflection for inner class constructor from Java class compiled with "-parameters"
Tools. CLI
KT-21910Add-Xfriend-pathscompiler argument to support internal visibility checks in production/test sources from external build systemsKT-25554Do not report warnings when-XXLanguagewas used to turn on deprecationKT-25196Optional expected annotation is visible in platforms where it doesn't have actual
Tools. JPS
KT-25540JPS JS IC does not recompile usages from other modules when package is different
Tools. kapt
KT-25396KAPT Error: Unknown option: infoAsWarningsKT-26211Kotlin plugin 1.2.60+ breaks IDEA source/resource/test roots in a Maven project with Kapt
Tools. Gradle
KT-25025Inter-project IC for JS in GradleKT-25455Gradle IC: when class signature is changed its indirect subclasses in different module are not recompiled
Tools. JPS
KT-25998Build process starts compiling w/o any changes (on release version)KT-25977Can not run a Kotlin testKT-26072MPP compilation issueKT-26113Build takes around 20 seconds in already fully built IDEA project
Tools. Scripts
KT-26142update maven-central remote repository url
Tools. Incremental Compile
KT-26528ISE “To save disabled cache status [delete] should be called (this behavior is kept for compatibility)” on compiling project with enabled IC in Maven
JavaScript
KT-22053JS: Secondary constructor of Throwable inheritor doesn't call to primary oneKT-26064JS inliner calls wrong constructor in incremental buildKT-26117JS runtime error: ArrayList_init instead of ArrayList_init_0
Libraries
KT-18067KotlinJS - String.compareTo(other: String, ignoreCase: Boolean = false): IntKT-19507Using @JvmName from stdlib-common fails to compile in JS module.KT-19508Add @JsName to stdlib-common for controlling JS implementationKT-24478Annotate relevant standard library annotations with @OptionalExpectationKT-25980JvmSynthetic annotation has no description in the docs
1.2.60
Compiler
KT-13762Prohibit annotations with target 'EXPRESSION' and retention 'BINARY' or 'RUNTIME'KT-18882Allow code to have platform specific annotations when compiled for different platformsKT-20356Internal compiler error - This method shouldn't be invoked for INVISIBLE_FAKE visibilityKT-22517Deprecate smartcasts for local delegated propertiesKT-23153Compiler allows to set non constant value as annotation parameterKT-23413IndexOutOfBoundsException on local delegated properties fromprovideDelegateif there's at least one non-local delegated propertyKT-23742Optimise inline class redundant boxing on return from inlined lambdaKT-24513High memory usage in Kotlin and 2018.1KT-24617Optional expected annotation is unresolved in a dependent platform moduleKT-24679KotlinUCallExpression doesn't resolve callee if it is an inline methodKT-24808NI: nestedwithContextcall is reported withSuspension functions can be called only within coroutine bodyerrorKT-24825NoClassDefFoundError on SAM adapter in a nested call in inlined lambda since 1.2.40KT-24859Disallow calls of functions annotated with receiver annotated with @RestrictsSuspension in foreign suspension contextKT-24911Kotlin 1.2.50: UI for @RecentlyNonNull looks strange in the editorKT-25333Restrict visibility of Java static members from supertypes of companion object
IDE
Performance Improvements
KT-20924Slow KtLightAbstractAnnotation.getClsDelegate() lightAnnotations.ktKT-23844Kotlin property accessor searcher consumes CPU when invoked on a scope consisting only of Java files
Fixes
KT-4311"Override members" works wrong when function is extensionKT-13948IDE plugins: improve descriptionKT-15300"INFO - project.TargetPlatformDetector - Using default platform" flood in logKT-17350Implement members from interface fails when one of the generic types is unresolvedKT-17668Edit Configuration dialog doesn't have a button for choosing the "Main class" fieldKT-19102Wrong equals() and hashCode() code generated for arrays of arraysKT-20056TCE on creating object of an anonymous class in Kotlin scriptKT-21863Imported typealias to object declared as "Unused import directive" when only referring to methodsKT-23272Git commit not workingKT-23407Pasting callable reference from different package suggests imports, but inserts incompilable FQNKT-23456UAST: Enum constant constructor call arguments missing from Kotlin enumsKT-23942Fix building light-classes for MPP project containing multi-file facadesKT-24072Kotlin SDK appears as many times as there are modules in the projectKT-24412Kotlin create project wizard: Kotlin/JS no SDKKT-24933please remove usages of com.intellij.psi.search.searches.DirectClassInheritorsSearch#search(com.intellij.psi.PsiClass, com.intellij.psi.search.SearchScope, boolean, boolean) deprecated long agoKT-24943Project leak via LibraryEffectiveKindProviderImplKT-24979IndexNotReadyException in KtLightClassForSourceDeclaration#isInheritorKT-24958Escaping goes insane when editing interpolated string in injected fragment editorKT-25024Wrong resolve scope while resolving java.lang.String PsiClassReferenceTypeKT-25092SourcePsi should be physical leaf element but got OPERATION_REFERENCEKT-25242'Resolved to error element' highlighting is confusingly similar to an active live templateKT-25249Uast operates "Unit" type instead of "void"KT-25255Preferences | Languages & Frameworks | Kotlin Updates: show currently installed versionKT-25297Inconsistency inKotlinULambdaExpressionandKotlinLocalFunctionULambdaExpressionKT-25414Support checking eap-1.3 channel for updatesKT-25524UAST: proper resolve for function variable callKT-25546Create popup in 1.2.x plugin if user upgrade version in gradle or maven to kotlin 1.3
IDE. Android
KT-17946Android Studio: remove Gradle configurator on configuring KotlinKT-23040Wrong run configuration classpath in a mixed Java/Android projectKT-24321Actual implementations from Android platform module are wrongly reported withno corresponding expected declarationin IDEKT-25018ExceptionDependencies for org.jetbrains.kotlin.resolve.calls.* cannot be satisfiedon a simple project in AS 3.2 Canary
IDE. Code Style, Formatting
KT-14066Comments on when branches are misplacedKT-25008Formatter: Use single indent for multiline elvis operator
IDE. Completion
KT-23627Autocompletion inserts FQN of stdlib functions inside of scoping lambda called on explicitthisKT-25239Add postfix template for listOf/setOf/etc
IDE. Debugger
KT-23162Evaluate expression in multiplatform common test fails with JvmName missing when run in JVMKT-24903Descriptors leak fromKotlinMethodSmartStepTarget
IDE. Decompiler
KT-23981Kotlin bytecode decompiler works in AWT thread
IDE. Gradle
KT-24614Gradle can't get published versions until commenting repositories in settings.gradle
IDE. Gradle. Script
KT-24588Multiple Gradle Kotlin DSL script files dependencies lifecycle is flawed
IDE. Hints
KT-22432Type hints: Don't include ".Companion" in the names of types defined inside companion objectKT-22653Lambda return hint is duplicated for increment/decrement expressionsKT-24828Double return hints on labeled expressions
IDE. Inspections and Intentions
New Features
KT-7710Intention to convert lambda to anonymous functionKT-11850Addnested lambdas with implicit parameterswarningKT-13688Add 'Change to val' quickfix for delegates without setValueKT-13782Intention (and may be inspection) to convert toString() call to string templateKT-14779Inspection to replace String.format with string templatesKT-15666Unused symbol: delete header & its implementations togetherKT-18810Quick-fix for 'is' absence in whenKT-22871Add quickfix to move const val into companion objectKT-23082Add quick-fix for type variance conflictKT-23306Add intention of putting remaining when-values even in end, and even if there is "else"KT-23897Inspections: report extension functions declared in same classKT-24295Add "Remove 'lateinit'" quickfixKT-24509Inspection "JUnit tests should return Unit"KT-24815Add Quick fix to remove illegal "const" modifierKT-25238Add quickfix wrapping expression into listOf/setOf/etc in case of type mismatch
Fixes
KT-12298Fix override signature doesn't remove bogus recieverKT-20523Don't mark as unused functions with@kotlin.test.*annotations and classes with such membersKT-20583Report "redundant let" even foritin argument positionKT-21556"Call chain on collection type may be simplified" generates uncompiled code on IntArrayKT-22030Invalid Function can be private inspectionKT-22041"Convert lambda to reference" suggested incorrectlyKT-22089Explict This inspection false negative with synthetic Java propertyKT-22094Can be private false positive with function called from lambda inside inline functionKT-22162Add indices to loop fails on destructing declaratorKT-22180"Can be private" false positive when function is called by inline function inside property initializerKT-22371"Create secondary constructor" quick fix is not suggested for supertype constructor referenceKT-22758"Create ..." and "Import" quick fixes are not available on unresolved class name in primary constructorKT-23105Create actual implementation shouldn't generate default parameter valuesKT-23106Implement methods should respect actual modifier as wellKT-23326"Add missing actual members" quick fix fails with AE at KtPsiFactory.createDeclaration() with wrong expect codeKT-23452"Remove unnecessary parentheses" reports parens of returned functionKT-23686"Add missing actual members" should not add primary actual constructor if it's present as secondary oneKT-23697Android project with 'org.jetbrains.kotlin.platform.android' plugin: all multiplatform IDE features are absentKT-23752False positive "Remove variable" quick fix on property has lambda or anonymous function initializerKT-23762Add missing actual members quick fix adds actual declaration for val/var again if it was in the primary constructorKT-23788Can't convert long char literal to string if it starts with backslashKT-23860Import quick fix is not available in class constructor containing transitive dependency parametersKT-24349False positive "Call on collection type may be reduced"KT-24374"Class member can have private visibility" inspection reportsexpectmembersKT-24422Android Studio erroneously reporting that@Inject lateinit varcan be made privateKT-24423False inspection warning "redundant type checks for object"KT-24425wrong hint remove redundant CompanionKT-24537False positiveproperty can be privateon actual properties in a multiplatform projectKT-24557False warning "Remove redundant call" for nullable.toStringKT-24562actual extension function implementation warns Receiver type unusedKT-24632Quick fix to add getter and setter shouldn't usefieldwhen it is not allowedKT-24816Inspection: Sealed subclass can be object shouldn't be reported on classes with state
IDE. JS
KT-5948JS: project shouldn't have "Java file" in new item menu
IDE. Multiplatform
KT-23722MPP: Run tests from common modules should recompile correspond JVM implementation moduleKT-24159MPP: Show Kotlin Bytecode does not work for common codeKT-24839freeCompilerArgs are not imported into Kotlin facet of Android module in IDEA
IDE. Navigation
KT-11477Kotlin searchers consume CPU in a project without any Kotlin filesKT-17512Finding usages of actual declarations in common modulesKT-20825Header icon on actual class is lost on new line addingKT-21011Difference in information shown for "Is subclassed by" gutter on mouse hovering and clickingKT-21113Expected gutter icon on companion object is unstableKT-21710Override gutter markers are missing for types in sources jarKT-22177Double "A" icon for an expect class with constructorKT-23685Navigation from expect part to actual with ctrl+alt+B shortcut should provide a choice to what actual part to goKT-24812Search suggestion text overlaps for long names
IDE. Refactorings
KT-15159Introduce typealias: Incorrect applying of a typealias in constructor calls in val/var and AssertionErrorKT-15351Extract Superclass/Interface: existent target file name is rejected; TCE: "null cannot be cast to non-null type org.jetbrains.kotlin.psi.KtFile" at ExtractSuperRefactoring.createClass()KT-16281Extract Interface: private member with Make Abstract = Yes produces incompilable codeKT-16284Extract Interface/Superclass: reference to private member turns incompilable, when referring element is made abstractKT-17235Introduce Parameter leaks listener if refactoring is cancelled while in progressKT-17742Refactor / Rename Java getter toget()does not update Kotlin referencesKT-18555Refactor / Extract Interface, Superclass: Throwable: "Refactorings should be invoked inside transaction" at RefactoringDialog.show()KT-18736Extract interface: import for property type is omittedKT-20260AE “Unexpected container” on calling Refactor → Move for class in Kotlin scriptKT-20465"Introduce variable" in build.gradle.kts creates a variable with no template to change its nameKT-20467Refactor → Extract Function: CCE “KtNamedFunction cannot be cast to KtClassOrObject” on calling refactoring for constructorKT-20469NDFDE “Descriptor wasn't found for declaration VALUE_PARAMETER” on calling Refactor → Extract Function on constructor argumentKT-22931Converting a scoping function with receiver into one with parameter may change the semanticsKT-23983Extract function: Reified type parameters are not extracted properlyKT-24460Rename refactoring does not update super callKT-24574Changing Java constructor signature from Kotlin usage is totally brokenKT-24712Extract Function Parameter misses 'suspend' for lambda typeKT-24763"Change signature" refactoring breaks Kotlin codeKT-24968Type hints disappear after "Copy" refactoringKT-24992The IDE got stuck showing a modal dialog (kotlin refactoring) and doesn’t react to any actions
IDE. Script
KT-25373Deadlock in idea plugin
IDE. Tests Support
KT-18319Gradle: Run tests action does not work when test name contains spacesKT-22306Empty gutter menu for main() and test methods in Kotlin/JS projectKT-23672JUnit test runner is unaware of @kotlin.test.Test tests when used in common multiplatform module, even if looked from JVM multiplatform moduleKT-25253No “run” gutter icons for tests in Kotlin/JS project
JavaScript
KT-22376JS: TranslationRuntimeException on 'for (x in ("a"))'KT-23458ClassCastException when compiling when statements to JS
Libraries
KT-24204Empty progression last value overflows resulting in progression being non-emptyKT-25351TestNGAsserterneeds to swap expected/actual
Reflection
KT-16616KotlinReflectionInternalError: Reflection on built-in Kotlin types is not yet fully supported in getMembersOfStandardJavaClasses.ktKT-17542KotlinReflectionInternalError on ::values of enum classKT-20442ReflectJvmMapping.getJavaConstructor() fails with Call is not yet supported for anonymous classKT-21973Method.kotlinFunction for top level extension function returns null when app is started from test sourcesKT-22048Reflection explodes when attempting to get constructors of an enum with overridden method
Tools. Android Extensions
KT-22576Parcelable: Allow Parcelize to work with object and enum typesKT-24459@IgnoredOnParcel annotation doesn't work for @ParcelizeKT-24720Parcelable: java.lang.LinkageError
Tools. Compiler Plugins
KT-23808Array in @Parcelize class generates an java.lang.VerifyError
Tools. Gradle
KT-18621org.jetbrains.kotlin.incremental.fileUtils.kt conflicts when compiler and gradle plugin in classpathKT-24497Externalized all-open plugin is not applied to a projectKT-24559Multiple Kotlin daemon instances are started when building MPP with GradleKT-24560Multiple Kotlin daemon instances are started when Gradle parallel build is usedKT-24653Kotlin plugins don't work when classpath dependency is not declared in current or root projectKT-24675Use Gradle dependency resolution to get compiler classpathKT-24676Use Gradle dependency resolution to form compiler plugin classpathKT-24946ISE: "The provided plugin org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar is not compatible with this version of compiler" when build simple Gradle with Zulu JDK
Tools. Incremental Compile
KT-25051Change in "kotlin-android" project w/o package parts causes non-incremental compilation of dependent modules
Tools. J2K
KT-9945converting java to kotlin confuses git
Tools. JPS
KT-19957Support incremental compilation to JS in JPSKT-22611Support compiling scripts in JPSKT-23558JPS: Support multiplatform projectsKT-23757JPS: Incremental multiplatform projects compilationKT-24936Don't use internal terms in compiler progress messagesKT-25218Build fails as Javac doesn't see Kotlin classes
Tools. Scripts
KT-24926NoSuchElementException in TemplateAnnotationVisitor when upgrading the Gradle Kotlin DSL to Kotlin 1.2.50
Tools. kapt
KT-24313Unable to use KAPT when dependency to it is added to buildSrcKT-24449'kapt.kotlin.generated' is not marked as source root in Android Studio 3.1 and 3.2KT-24538Kapt performs Kotlin compilation when annotation processors are not configuredKT-24919Caused by: org.gradle.api.InvalidUserDataException: 'projectDir' is not a fileKT-24963gradle kapt plugin's assumption on build dir causing duplicate class errorKT-24985Kapt: Allow to disable info->warning mapping in loggerKT-25071kapt sometimes emits java stubs with imports that should be static importsKT-25131Kapt should not load annotation processors when generating stubs
1.2.51
Backend. JVM
KT-23943Wrong autoboxing for non-null inline class inside elvis withnullconstantKT-24952EnumConstantNotPresentExceptionProxy from Java reflection on annotation class with target TYPE on JVM < 8KT-24986Android project release build with ProGuard enabled crashes with IllegalAccessError: Final field cannot be written to by method
Binary Metadata
KT-24944Exception from stubs: "Unknown type parameter with id = 1" (EA-120997)
Reflection
KT-23962MalformedParameterizedTypeException when reflecting GeneratedMessageLite.ExtendableMessage
Tools. Gradle
KT-24956Kotlin Gradle plugin's inspectClassesForKotlinIC task for the new 1.2.50 release takes incredibly longKT-23866Kapt plugin should pass arguments from compiler argument providers to annotation processorsKT-247161.2.50 emits warning "Classpath entry points to a non-existent location:"KT-24832Inter-project IC does not work when "kotlin-android" project depends on "kotlin" projectKT-24938Gradle parallel execution fails on multi-module Gradle ProjectKT-25027Kapt plugin: Kapt and KaptGenerateStubs tasks have some incorrect inputs
Tools. Scripts
KT-24926NoSuchElementException in TemplateAnnotationVisitor when upgrading the Gradle Kotlin DSL to Kotlin 1.2.50
1.2.50
Compiler
KT-23360Do not serialize annotations with retention SOURCE to metadataKT-24278Hard-code to kotlin compiler annotation for android library migrationKT-24472Support argfiles in kotlinc with -XargfileKT-24593Support -XXLanguage:{+|-}LanguageFeature compiler arguments to enable/disable specific featuresKT-24637Introduce "progressive" mode of compiler
Backend. JS
KT-23094JS compiler: Delegation fails to pass the continuation parameter to child suspend functionKT-23582JS: Fails to inline, produces bad codeKT-24335JS: Invalid implement of external interface
Backend. JVM
KT-12330Slightly improve generated bytecode for data class equals/hashCode methodsKT-18576Debugger fails to show decomposed suspend lambda parametersKT-22063Add intrinsics for javaObjectType and javaPrimitiveTypeKT-23402Internal error: Couldn't inline method call because the compiler couldn't obtain compiled body for inline function with reified type parameterKT-23704UnstablecheckExpressionValueIsNotNull()generation in bytecodeKT-23707Unstable bridge generation orderKT-23857Annotation with target TYPE is not applicable to TYPE_USE in Java sourcesKT-23910@JvmOverloads doesn't work with default arguments in common codeKT-24427Protected function having toArray-like signature from collection becomes public in bytecodeKT-24661Support binary compatibility mode for @JvmDefault
Frontend
KT-21129Unused parameter in property setter is not reportedKT-21157Kotlin script: engine can take forever to eval certain code after several timesKT-22740REPL slows down during extensions compilingKT-23124Kotlin multiplatform project causes IntelliJ build errorsKT-23209Compiler throwing frontend exceptionKT-23589Report a warning on local annotation classesKT-23760Unable to implement common interface with fun member function with typealiased parameter
Android
KT-23244Option to Disable View Binding generation in Kotlin Android Extensions Plugin
IDE
KT-8407TestNG: running tests from context creates new run configuration every timeKT-9218Searching for compilable files takes too longKT-15019Editor:argsreference in .kts file is redKT-18769Expand Selection on opening curly brace should select the entire block right awayKT-19055Idea hangs on copy-paste big Kotlin filesKT-20605Unresolved reference on instance from common module functionKT-20824Type mismatch for common function taking a non-mapped Kotlin's expected class from stdlib-common, with actual typealias on JVMKT-20897Can't navigate to declaration after PsiInvalidElementAccessException exceptionKT-22527Kotlin UAST does not evaluate values inside delegation expressionsKT-22868Implementing anexpected classdeclaration usingactual typealiasproduces "good code that is red"KT-22922Override Members should add experimental annotation when requiredKT-23384Hotspot in org.jetbrains.kotlin.idea.caches.resolve.IDELightClassGenerationSupport.getKotlinInternalClasses(FqName, GlobalSearchScope) IDELightClassGenerationSupport.kt ?KT-23408Don't render @NonNull and @Nullable annotations in parameter info for Java methodsKT-23557Expression Bodies should have implicitreturnin UastKT-23745Unable to implement common interfaceKT-23746Logger$EmptyThrowable "[kts] cannot find a valid script definition annotation on the class class ScriptTemplateWithArgs" with LivePlugin enabledKT-23975Move Kotlin internal actions under Idea Internal actions menuKT-24268Other main menu itemKT-24438ISE “The provided plugin org.jetbrains.kotlin.scripting.compiler.plugin.ScriptingCompilerConfigurationComponentRegistrar is not compatible with this version of compiler” after rebuilding simple Gradle-based project via JPS.
IDE. Configuration
KT-10935Add menu entry to create new kotlin .kts scriptsKT-20511Library added from maven (using IDEA UI) is not detected as Kotlin/JS library (since type="repository")KT-20665Kotlin Gradle script created by New Project/Module wizard fails with Gradle 4.1+KT-21844Create Kotlin class dialog: make class abstract automaticallyKT-22305Language and API versions of Kotlin compiler are “Latest” by default in some ways of creating new projectKT-23261New MPP design: please show popup with error message if module name is not setKT-23638Kotlin plugin breaks project opening for PhpStorm/WebStormKT-23658Unclear options “Gradle” and “Gradle (Javascript)” on configuring Kotlin in Gradle- and Maven-based projectsKT-23845IntelliJ Maven Plugin does not pass javaParameters option to Kotlin facetKT-23980Move "Update Channel" from "Configure Kotlin Plugin Updates" to settingsKT-24504Existent JPS-based Kotlin/JS module is converted to new format, while New Project wizard and facet manipulations still create old format
IDE. Debugger
KT-23886Both java and kotlin breakpoints in kotlin filesKT-24136Debugger: update drop-down menu for the line with lambdas
IDE. Editing
KT-2582When user inputs triple quote, add matching triple quote automaticallyKT-5206Long lists of arguments are not foldableKT-23457Auto-import and Import quick fix do not suggest classes from common module [Common test can't find class with wordAbstractin name.]KT-23235Super slow editing with auto imports enabled
IDE. Gradle
KT-23234Test names for tests containing inner classes are sporadically reported to teamcity runs.KT-23383Optional plugin dependency for kotlin gradle plugin 'java' subsystem dependent featuresKT-22588Resolver for 'project source roots and libraries for platform JVM' does not know how to resolve on Gradle Kotlin DSL project without Java and KotlinKT-23616Synchronize script dependencies not at Gradle SyncKT-24444Do not store proxy objects from Gradle importer in the project modelKT-24586MVNFE “Cannot resolve external dependency org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.41 because no repositories are defined.” on creating Gradle project with Kotlin only (probably due to lack of repositories block)KT-24671dependencies missed in buildscript block after creating new Gradle-based project in 173 IDEA
IDE. Inspections and Intentions
New Features
KT-7822Convert foreach to for loop should place caret on the variable declarationKT-9943Quick fix/Intention to indent a raw stringKT-15063Inspection for coroutine: unused Deferred resultKT-16085Inspection "main should return Unit"KT-20305Inspection: Refactor sealed sub-class to objectKT-21413Missing inspection: parentheses can be deleted when the only constructor parameter is a function not existingKT-23137Intention for converting to block comment and vise versaKT-23266Add intention(s) to put arguments / parameters on one lineKT-23419Intention to replace vararg with array and vice versaKT-23617Add inspection: redundant internal in local anonymous object / classKT-23775IntelliJ plugin: improve "accessor call that can be replaced with property"KT-24235Inspection to replace async.await with withContextKT-24263AddMake variable immutablequickfix for constKT-24433Inspection for coroutines: unused async result
Performance Improvements
KT-23566"Can be private" works on ResolutionResultsCache.kt (from Kotlin project) enormously slow
Fixes
KT-6364Incorrect quick-fixes are suggested for nullable extension function callKT-11156Incorrect highlighting for nested class in "Redundant SAM-constructor" inspectionKT-11427"Replace if with when" does not take break / continue into accountKT-11740Invert if condition intention should not remove line breaksKT-12042"Merge with next when" is not applicable when the statements delimited by semicolon or commentKT-12168"Remove explicit type specification" intention produce incompilable code in case of function typeKT-14391RemoveUnnecessaryParenthesesIntention lost comment on closing parenthesisKT-14556Quickfix to suggest use of spread operator does not work with mapOfKT-15195Redundant parentheses shouldn't be reported if lambda is not on the same lineKT-16770Change type of function quickfix does not propose most idiomatic solutionsKT-19629"Convert to primary constructor" quick fix should not moveinit{...}section downKT-20123Kotlin Gradle script: “Refactoring cannot be performed. Cannot modify build.gradle.kts” for some refactorings and intentionsKT-20332Unused property declaration suppression by annotation doesn't work if annotation is targeted to getterKT-21878"arrayOf() call can be replaced by array litteral [...]" quick fix inserts extra parenthesesKT-22092Intention "Specify return type explicitly": Propose types from overriden declarationsKT-22615"Replace with" intention does not work for equal namesKT-22632Gutter icon "go to actual declaration" is absent for enum values on actual sideKT-22741Wrong suggestion forReplace 'if' expression with elvis expressionKT-22831Inspection for converting to elvis operator does not work for local varsKT-22860"Add annotation target" quick fix does not take into account existent annotations in Java sourceKT-22918Create interface quickfix is missing 'current class' containerKT-23133"Remove redundant calls of the conversion method" wrongly shown for Boolan to Int conversionKT-23167Report "use expression body" also on left braceKT-23194Inspection "map.put() should be converted to assignment" leads to red code in case of labled returnKT-23303"Might be const" inspection does not check explicit type specificationKT-23320Quick fix to add constructor invocation doesn't work for sealed classesKT-23321Intention to move type to separate file shouldn't be available for sealed classesKT-23346Lift Assignment quick fix incorrectly processes block assignmentsKT-23377Simplify boolean expression produces incorrect results when mixing nullable and non-nullable variablesKT-23465False positivesuspicious callable referenceon lambda invoke with parametersKT-23511"Remove parameter" quick fix makes generic function call incompilable when type could be inferred from removed parameter onlyKT-23513"Remove parameter" quick fix makes caret jump to the top of the editorKT-23559Wrong hint text for "assignment can be replaced with operator assignment"KT-23608AE “Failed to create expression from text” after applying quick fix “Convert too long character literal to string”KT-23620False positiveRedundant Companion referenceon calling object from companionKT-23634'Add use-site target' intention drops annotation argumentsKT-23753"Remove variable" quick fix should not remove commentKT-23756Bogus "Might be const" warning in object expressionKT-23778"Convert function to property" intention shows broken warningKT-23796"Create extension function/property" quick fix suggests one for nullable type while creates for not-nullKT-23801"Convert to constructor" (IntelliJ) quick fix uses wrong use-site target for annotating propertiesKT-23977wrong hint Unit redundantKT-24066'Remove redundant Unit' false positive when Unit is returned as AnyKT-24165@Deprecated ReplaceWith Constant gets replaced with nothingKT-24207Add parameter intent/red bulb should use auto casted type.KT-24215ReplaceWith produces broken code for lambda following default parameter
IDE. Multiplatform
KT-20406Overload resolution ambiguity in IDE on expect class / actual typealias from kotlin-stdlib-common / kotlin-stdlibKT-24316Missing dependencies in Kotlin MPP when using gradle composite builds
IDE. Navigation
KT-7622Searching usages of a field/constructor parameter in a private class seems to scan through the whole projectKT-23182Find Usages checks whether there are unused variables in functions which contain search result candidatesKT-23223Navigate to actual declaration from actual usage
IDE. Refactorings
KT-12078Introduce Variable adds explicit type when invoked on anonymous objectKT-15517Change signature refactoring shows confusing warning dialogKT-22387Change signature reports "Type cannot be resolved" for class from different packageKT-22669Refactor / Copy Kotlin source to plain text causes CCE: "PsiPlainTextFileImpl cannot be cast to KtFile" at CopyKotlinDeclarationsHandler$doCopy$2$1$1.invoke()KT-22888Rename completion cuts off all characters except letters from existent nameKT-23298AE: "2 declarations in null..." on rename of a field toobjectorclassKT-23563null by org.jetbrains.kotlin.idea.refactoring.rename.KotlinMemberInplaceRenameHandler$RenamerImpl exception on trying in-place Rename of non-scratch functionsKT-23613Kotlin safe delete processor handles java code when it should notKT-23644Named parameters in generated Kotlin AnnotationsKT-23714Add Parameter quickfix not working when the called method is in java.KT-23838Do not search for usages in other files when renaming local variableKT-24069'Create from usage' doesn't use type info with smart casts
IDE. Scratch
KT-6928Support Kotlin scratch filesKT-23441Scratch options reset on IDE restartKT-23480java.util.NoSuchElementException: "Collection contains no element matching the predicate" on run of a scratch file with unresolved function parameterKT-23587Scratch: references from scratch file aren't taken into accountKT-24016Make long scratch output lines readableKT-24315Checkbox labels aren't aligned in scratch panelKT-24636Run Scratch when there are compilation errors in module
Tools. J2K
KT-22989Exception "Assertion failed: Refactorings should be invoked inside transaction" on creating UI Component/Notification
Libraries
KT-10456Common Int.toString(radix: Int) methodKT-22298Improve docs for Array.copyOf(newSize: Int)KT-22400coroutineContext shall be in kotlin.coroutines.experimental packageKT-23356Cross-platform function to convert CharArray slice to StringKT-23920CharSequence.trimEnd calls substring instead of subSequenceKT-24353Add support for junit 5 in kotlin.testKT-24371Invalid @returns tag does not display in Android Studio popup properly
Gradle plugin
KT-20214NoClassDefFound from Gradle (should report missing tools.jar)KT-20608Cannot reference operator overloads across submodules (.kotlin_module not loaded when a module name has a slash)KT-22431Inter-project incremental compilation does not work with Android plugin 2.3+KT-22510Common sources aren't added when compiling custom source set with Gradle multiplatform pluginKT-22623Kotlin JVM tasks in independent projects are not executed in parallel with Gradle 4.2+ and Kotlin 1.2.20+KT-23092Gradle plugin for MPP common modules should not remove the 'compileJava' task fromproject.tasksKT-23574'archivesBaseName' does not affect module name in common modulesKT-23719Incorrect Gradle Warning for expectedBy in kotlin-platform-android moduleKT-23878Kapt: Annotation processors are run when formatting is changedKT-24420Kapt plugin: Kapt task has overlapping outputs (and inputs) with Gradle's JavaCompile taskKT-24440Gradle daemon OOM due to function descriptors stuck forever
Tools. kapt
KT-23286kapt + nonascii = weird pathesKT-23427kapt: for element with multiple annotations, annotation values erroneously use default when first annotation uses defaultKT-23721Warning informing user that 'tools.jar' is absent in the plugin classpath is not show when there is also an errorKT-23898Kapt: Do now show a warning for APs from 'annotationProcessor' configuration also declared in 'kapt' configurationKT-23964Kotlin Gradle plugin does not define inputs and outputs of annotation processors
1.2.41
Compiler – Fixes
KT-23901Incremental compilation fails on Java 9KT-23931Exception on optimizing eternal loopsKT-23900Exception on some cases with nested arraysKT-23809Exception on processing complex hierarchies withsuspendfunctions when-Xdump-declarations-tois active
Other
KT-23973New compiler behavior lead to ambiguous mappings in Spring Boot temporarily reverted
1.2.40
Compiler
New Features
KT-22703Allow expect/actual annotation constructors to have default valuesKT-19159Supportcrossinlinelambda parameters ofsuspendfunction typeKT-21913Support default arguments for expected declarationsKT-19120Provide extra compiler arguments inScriptTemplateDefinitionKT-19415Introduce@JvmDefaultannotationKT-21515Restrict visibility of classifiers insidecompanion objects
Performance Improvements
KT-10057Uselcmpinstruction instead ofkotlin/jvm/internal/Intrinsics.compareKT-14258Suboptimal codegen for private fieldaccess to private field in companion objectKT-18731==between enums should use reference equality, notIntrinsics.areEqual().KT-22714Unnecessary checkcast to array of object from an array of specific typeKT-5177Optimize code generation forforloop withwithIndex()KT-19477Allow to implement several common modules with a single platform moduleKT-21347Add compiler warning about using kotlin-stdlib-jre7 or kotlin-stdlib-jre8 artifacts
Fixes
KT-16424Broken bytecode for nullable generic methodsKT-17171ClassCastExceptionin case of SAM conversion withoutvarianceKT-19399Incorrect bytecode generated for inline functions in some complex casesKT-21696Incorrect warning for use-site target on extension functionKT-22031Non-abstractexpect classes should not haveabstractmembersKT-22260Never flaginline suspend funwithNOTHING_TO_INLINEKT-22352Expect/actual checker can't handle properties and functions with the same nameKT-22652Interface with default overrides is not perceived as a SAMKT-22904Incorrect bytecode generated for withIndex iteration onArray<Int>KT-22906Invalid class name generated for lambda created from method reference in anonymous objectKT-23044Overriden public property with internal setter cannot be found in runtimeKT-23104Incorrect code generated for LHS of an intrinsifiedinoperator in case of generic type substituted withCharacterKT-23309Minor spelling errors in JVM internal error messagesKT-22001JS: compiler crashes on += with "complex" receiverKT-23239JS: Default arguments for non-final member function support is missing for MPPKT-17091Converting to SAM Java type appends non-deterministic hash to class nameKT-21521Compilation exception when trying to compile asuspendfunction withtailreckeywordKT-21605Cross-inlined coroutine with captured outer receiver creates unverifiable codeKT-21864Expect-actual matcher doesn't consider generic upper boundsKT-21906ACTUAL_MISSINGis reported for actual constructor of non-actual classKT-21939ImproveACTUAL_MISSINGdiagnostics messageKT-22513Flaky "JarURLConnection.getUseCaches" NPE during compilation when using compiler plugins
Libraries
KT-11208readLine()shouldn't use buffered reader
IDE
New Features
KT-10368Run Action for Kotlin Scratch FilesKT-16892Shortcut to navigate between header and implKT-23005Supportprefix/suffixattributes for language injection in Kotlin with annotations and comments
Performance Improvements
KT-19484KotlinBinaryClassCache retains a lot of memoryKT-23183ConfigureKotlinNotification.getNotificationString()scans modules with Kotlin files twiceKT-23380Improve IDE performance when working with Spring projects
Fixes
KT-15482KotlinNullPointerExceptionin IDE from expected class with nested classKT-15739Internal visibility across common and platform-dependent modulesKT-19025Not importedbuild.gradle.ktsis all redKT-19165IntelliJ should suggest to reload Gradle projects whenbuild.gradle.ktschangesKT-20282'Move statement up' works incorrectly for statement afterfinallyblock iftryblock contains closureKT-20521Kotlin Gradle script: validbuild.gradle.ktsis red and becomes normal only after reopening the projectKT-20592KotlinNullPointerException: nested class inside expect / actual interfaceKT-21013"Move statement up/down" fails for multiline declarationsKT-21420.gradle.ktseditor should do no semantic highlighting until the first successful dependency resolver responseKT-21683Language injection: JPAQL. Injection should be present for "query" parameter of@NamedNativeQueriesKT-21745Warning and quickfix about kotlin-stdlib-jre7/8 -> kotlin-stdlib-jdk7/8 in MavenKT-21746Warning and quickfix about kotlin-stdlib-jre7/8 -> kotlin-stdlib-jdk7/8 in GradleKT-21753Language injection: SpEL. Not injected for key in@CachingKT-21771All annotations inAnnotations.ktfrom kotlin-test-js module wrongly have ACTUAL_MISSINGKT-21831Opening class fromkotlin-stdlib-jdk8.jarfails with EE: "Stub list in ... length differs from PSI"KT-22229Kotlin local delegated property Import auto-removed with "Java: Optimize imports on the fly"KT-22724ISE: "psiFile must not be null" atKotlinNodeJsRunConfigurationProducer.setupConfigurationFromContext()KT-22817Hitting 'Propagate Parameters' in Change Signature throwsUnsupportedOperationExceptionKT-22851Apply button is always active on Kotlin compiler settings tabKT-22858Multiplatform: String constructor parameter is reported in Java file of jvm module on creation of a new instance of a class from common moduleKT-22865Support multiple expectedBy dependencies when importing project from Gradle or MavenKT-22873Common module-based light classes do not see JDKKT-22874Exception on surround with "if else" when resulting if should be wrapped with()KT-22925Unable to view Type Hierarchy from constructor call in expressionKT-22926Confusing behavior of Type Hierarchy depending on the caret position at superclass constructorKT-23097Enhance multiplatform project wizardKT-23271Warn about using kotlin-stdlib-jre* libs independencyManagementsection in Maven witheapanddevKotlin versionsKT-20672IDE can't resolve references to elements from files with@JvmPackageNameKT-23546Variable name auto-completion popup gets in the wayKT-23546Do not show duplicated names in variables completion listKT-19120Use script compiler options on script dependencies in the IDE as well
IDE. Gradle. Script
KT-23228Do not highlight.gradle.ktsfiles in non-Gradle projects
IDE. Inspections and Intentions
New Features
KT-16382Intention to convertexpr.unsafeCast<Type>()toexpr as Typeand vice versaKT-20439Intentions to add/remove labeled return to last expression in a lambdaKT-22011Inspection to report the usage of Java Collections methods on immutable Kotlin CollectionsKT-22933Intention/inspection to convert Pair constructor totofunctionKT-19871Intentions for specifying use-site targets for an annotationKT-22971Inspection to highlight and remove unnecessary explicit companion object references
Fixes
KT-12226"Convert concatenation to template" does not process$sign as a CharKT-15858"Replace with aforeachfunction call" intention breaks codeKT-16332Add braces to 'if' statement intention does not put end-of-line comment properly into bracesKT-17058"Create implementations from headers": each implementation gets own fileKT-17306Don't report package name mismatch if there's no Java code in the moduleKT-19730Quickfix for delegated properties boilerplate generation doesn't work on localsKT-21005"Missing KDoc inspection" is brokenKT-21082"Create actual declaration" of top-level subclass of expectedsealed classin the same file as actual declaration of sealed class presentKT-22110"Can be joined with assignment" inspection underlining extends into commentKT-22329"Create class" quickfix is not suggested inwhenbranchKT-22428Create member function from usage shouldn't present type parameters as optionsKT-22492"Specify explicit lambda signature" intention is available only on lambda bracesKT-22719Incorrect warning 'Redundant semicolon' when having method call before lambda expressionKT-22861"Add annotation target" quickfix is not available on annotation with use site targetKT-22862"Add annotation target" quickfix does not process existent annotations with use site targetKT-22917Update order of containers forcreate classquickfixKT-22949NPE on conversion ofrun/applywith explicit lambda signature tolet/alsoKT-22950Convert stdlib extension function to scoping function works incorrectly in case of explicit lambda signatureKT-22954"Sort modifiers" quickfix works incorrectly when method is annotatedKT-22970Add explicit this intention/inspection missing for lambda invocationKT-23109"Remove redundant 'if' statement" inspection breaks code with labeled returnKT-23215"Add function to supertype" quickfix works incorrectlyKT-14270Intentions "Add/Remove braces" should be applied to the statement where caret is if there several nested statements one into anotherKT-21743Method reference not correctly moved into parenthesesKT-23045AE “Failed to create expression from text” on concatenating string with broken quote mark char literalKT-23046CCE ”KtBinaryExpression cannot be cast to KtStringTemplateExpression” on concatenating broken quote mark char literal with stringKT-23227"Add annotation target" quickfix is not suggested forfield:use-site target
IDE. Refactorings
Fixes
KT-13255Refactor / Rename: renaming local variable or class to existing name gives no warningKT-13284Refactor / Rename: superfluous imports and FQNs in Java using@JvmOverloadsfunctionsKT-13907Rename refactoring warns about name conflict if there is function with different signature but the same nameKT-13986Full qualified names of classes in comments should be changed after class Move, if comment contains backquotesKT-14671typealias: refactor/rename should propose to rename occurrences in commentsKT-15039Extra usage is found for a parameter in data class in destructuring constructionKT-15228Extract function from inline function should create public functionKT-15302Reference to typealias in SAM conversion is not foundKT-16510Can't rename quoted identifierisKT-17827Refactor / Move corrupts bound references when containing class of member element is changedKT-19561Name conflict warning when renaming method to a name matching an extension method with the same name existsKT-20178Refactor → Rename can't make companion object name emptyKT-22282Moving a Kotlin file to another package does not change imports in itselfKT-22482Rename refactoring insert qualifier for non related property callKT-22661Refactor/Move: top level field reference is not imported automatically after move to the source rootKT-22678Refactor / Copy: "Class uses constructor which will be inaccessible after move" when derived class has a protected constructorKT-22692Refactor/Move: unnecessary curly braces added on moving to a separate file a top level function with a top level field usageKT-22745Refactor/Move inserts FQ function name at the call site if there is a field same named as the functionKT-22747Moving top-level function to a different (existing) file doesn't update references from JavaKT-22751Refactor/Rename: type alias name clash is not reportedKT-22769Refactor/Move: there is no warning on moving sealed class or its inheritors to another fileKT-22771Refactor/Move: there is no warning on moving nested class to another class with stricter visibilityKT-22812Refactor/Rename extension functions incorrectly conflicts with other extension functionsKT-23065Refactor/Move: Specify the warning message on moving sealed class inheritors without moving the sealed class itself
IDE. Script
KT-22647Run script Action in IDE should use Kotlin compiler from the IDE pluginKT-18930IDEA is unstable With Gradle Kotlin DSLKT-21042Gradle Script Kotlin project is full-redKT-11618Running .kts file from IntelliJ IDEA doesn't allow to import classes in other files which are also part of the project
IDE. Debugger
KT-22205Breakpoints won't work for Kotlin testing with JUnit
JavaScript
KT-22019Fix wrong list sorting order
Tools. CLI
KT-22777Unstable language version setting has no effect when attached runtime has lower version
Tools. Gradle
KT-22824expectedBydependency should be expressed ascompiledependency in POMKT-15371Multiplatform: setting free compiler args can break buildKT-22864Allow multiple expectedBy configuration dependencies in GradleKT-22895'kotlin-runtime' library is missing in the compiler classpath sometimesKT-23085Use proper names for the Gradle task inputs/outputs added at runtimeKT-23694Fix parallel build in Kotlin IC – invalid KotlinCoreEnvironment disposal
Tools. Android
- Android Extensions: Support fragments from kotlinx package;
Tools. Incremental Compile
KT-20516"Unresolved reference" when project declares same class as its dependencyKT-22542"Source file or directory not found" for incremental compilation with KobaltKT-23165Incremental compilation is sometimes broken after moving one class
Tools. JPS
KT-16091Incremental compilation ignores changes in Java static fieldKT-22995EA-91869 - NA:LookupStorage.<init>
Tools. kapt
KT-21735Kapt cache was not cleared sometimes
Tools. REPL
KT-21611REPL: Empty lines should be ignored
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-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-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-22514IDE Freeze related to IdeAllOpenDeclarationAttributeAltererExtension.getAnnotationFqNames()KT-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-22593AE when invoking find usages on constructor in decompiled java fileKT-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 presentKT-22967Debugger: Evaluator fails on evaluating huge lambdas on Android
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 extensionKT-22963KotlinJS - When statement can cause illegal break
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. Maven
KT-21581kotlin.compiler.incremental not copying resources
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)
1.2.21
Fixes
KT-22349Android: creating new Basic activity fails with Throwable: "Inconsistent FILE tree in SingleRootFileViewProvider" at SingleRootFileViewProvider.checkLengthConsistency()KT-22459Remove .proto files from kotlin-reflect.jar
1.2.20
Android
KT-20085Android Extensions: ClassCastException after changing type of view in layout XMLKT-20235Error, can't use plugin kotlin-android-extensionsKT-20269Mark 'kapt.kotlin.generated' as a source root automatically in Android projectsKT-20545Parcelable: Migrate to canonical NEW-DUP-INVOKESPECIAL formKT-20742@Serializable and @Parcelize do not work togetherKT-20928@Parcelize. Verify Error for Android Api 19
Binary Metadata
KT-11586Support class literal annotation arguments in AnnotationSerializer
Compiler
New Features
KT-17944Allow 'expect' final member be implemented by 'actual' open memberKT-21982Recognize Checker Framework declaration annotationsKT-17609Intrinsic suspend val coroutineContext
Performance Improvements
Fixes
KT-4174Verify error on lambda with closure in local class super callKT-10473Inapplicable diagnostics for mixed JS / JVM projectsKT-12541VerifyError: Bad type on operand stack for local variable captured in local classKT-13454VerifyError on capture of outer class properties in closure inside inner class constructorKT-14148VerifyError: Bad type on operand stackfor anonymous type inheriting inner classKT-18254enumValueOf and enumValues throw UnsupportedOperationException when used within a non-inline function blockKT-18514IllegalStateException on compile object that inherits its inner interface or classKT-18639VerifyError: Bad type on operand stackKT-19188Nondeterministic method order in class files using DefaultImplsKT-19827Strange VerifyError in simple ExampleKT-19928Analyze / Inspect Code: ISE "Concrete fake override public final fun ()" at BridgesKt.findConcreteSuperDeclaration()KT-20433NPE during JVM code generationKT-20639Obsolete term "native" used in error messageKT-20802USELESS_CAST diagnostic in functions with expression bodyKT-20873False CAST_NEVER_SUCCEEDS when upcasting NothingKT-20903Method reference to expect function results in bogus resolution ambiguityKT-21105Compiler incorrectly optimize the operatorinwith a floating point type range with NaN bound.KT-21146ArrayIndexOutOfBoundsException at org.jetbrains.kotlin.codegen.MemberCodegen.generateMethodCallTo(MemberCodegen.java:841)KT-21267Report pre-release errors if pre-release compiler is run with a release language versionKT-21321for-in-array loop improvementsKT-21343Compound assignment operator compiles incorrectly when LHS is a property imported from objectKT-21354Inconsistent behavior of 'for-in-range' loop if range is an array variable modified in loop bodyKT-21532Enum constructor not foundKT-21535SAM wrapper is not created for a value of functional type in delegating or super constructor call in secondary constructorKT-21671Inline sam wrapper during inline in another moduleKT-21919Invalid MethodParameters attribute generated for "$DefaultImpls" synthetic class with javaParameters=trueKT-20429False-positive 'Unused return value of a function with lambda expression body' in enum constant constructorKT-21827SMAP problem during default lambda parameter inline
IDE
New Features
KT-4001Allow to set arguments indent to 1 tab (currently two and not customized)KT-13378Provide ability to configure highlighting for !! in expressions and ? in typesKT-17928Support code folding for primary constructorsKT-20591Show @StringRes/@IntegerRes annotations in parameter infoKT-20952"Navigate | Related symbol" should support expect/actual navigationKT-21229Make it possible to explicitly select "latest" language/API versionKT-21469Wrap property initializers after equals signKT-14670Support kotlinPackageName() macro in live templatesKT-14951Editor: navigate actions could be available in intention menu (as done in Java)KT-15320Live templates: Add function which returns the "outer" class nameKT-20067Return label hintsKT-20533Show "this" and "it" type hints in lambdas.KT-20614Change location of initial parameter type hint when parameters are on multiple linesKT-21949Please add a separate Color Scheme settings for properties synthesized from Java accessorsKT-21974Editor color scheme option for Kotlin typealias names
Performance Improvements
KT-17367Rebuild requested for index KotlinJavaScriptMetaFileIndexKT-21632Freezing on typingKT-21701IDEA 2017.3 high CPU usage
Fixes
KT-9562Wrong indent after Enter after an annotationKT-12176Formatter could reformat long primary constructorsKT-12862Formatting: Weird wrapping setting for long ?: operatorKT-15099Odd code formatting when chaining lambdas and splitting lines on operatorsKT-15254Use Platform icons for "Run" icon in gutterKT-17254Remove obsolete unfold-icons in structure viewKT-17838Can't report exceptions from the Kotlin plugin 1.1.4-dev-119 in IDEA #IU-171.4424.37KT-17843Don't show parameter name hints when calling Java methods with unknown parameter namesKT-17964Local variable type hints in editor for anonymous objectKT-17965Do not shown argument name hints for assertKT-18829Do not show parameter name hints for mapOfKT-18839Semantic highlighting not work for local variables in initKT-19012Data Flow from here: doesn't find template usagesKT-19017Data Flow from here doesn't find usage in range position of for cycleKT-19018Data Flow from here doesn't find any usages of for-variableKT-19036Data Flow from here: please find calls of extension tooKT-19039Data Flow from here: please find cases when an investigated variable is transferred as a parameter into a library functionKT-19087Data flow to here: usages with explicit receiver are not foundKT-19089Data Flow to here: assigned values are not found if an investigated property is a delegated oneKT-19104Data Flow from here: usage of parameter or variable not found when used as lambda receiver/parameterKT-19106Data Flow from here: show point of call of a function used as a parameter investigated parameter/variableKT-19112Data Flow to here for a function (or its return value) doesn't find shorten forms of assignmentsKT-19519Structure view is not updated properly for function classesKT-19727Code style: New line after '(' with anonymous object or multi-line lambda unexpected behaviorKT-19820Strange highlightning for enum constructorKT-19823Kotlin Gradle project import into IntelliJ: import kapt generated classes into classpathKT-19824Please provide a separate icon for a common libraryKT-19915TODO calls not blue highlighted in lambdas/DSLsKT-20096Kotlin Gradle script: SOE after beginning of Pair definition before some script sectionKT-20314Kotlin formatter does not respect annotations code style settingsKT-20329Multiplatform: gutter "Is subclassed by" should show expect subclass from the common moduleKT-20380Configure Kotlin plugin updates dialog does not open without opened projectKT-20521Kotlin Gradle script: valid build.gradle.kts is red and becomes normal only after reopening the projectKT-20603Facet import: when API version > language version, set API version = language version, not to 1.0KT-20782Non-atomic trees updateKT-20813SAM with receiver: call with SAM usage is compiled with Gradle, but not with JPSKT-20880Add documentation quick fix should create multiline comment and place caret in right placeKT-20883Provide more information in "Missing documentation" inspection messageKT-20884Functions with receivers should allow [this] in KDocKT-20937Exception thrown on RMB click on folder in Kotlin projectKT-20938IDE: kotlinc.xml with KotlinCommonCompilerArguments/freeArgs: XSE: "Cannot deserialize class CommonCompilerArguments$DummyImpl" at BaseKotlinCompilerSettings.loadState()KT-20953"Choose actual" popup shows redundant informationKT-20985Additional reimport is required in 2017.3/2018.1 idea after creating or importing mp projectKT-20987(PerModulePackageCache miss) ISE: diagnoseMissingPackageFragmentKT-21002"Highlight usages of identifier under caret" should work for "it"KT-21076Recursive Companion.ivoke() call should be marked with according iconKT-21132containsKey() in SoftValueMap considered pointlessKT-21150Do not infer compiler version from build.txtKT-21200Improve Structure-view for Kotlin filesKT-21214Fix funcion selection in kotlinKT-21275Don't show argument name hints in calls of methods on 'dynamic' typeKT-21318Highlighting of function exit points does not work if the function is a getter for propertyKT-21363IDE: kotlinc.xml with KotlinCommonCompilerArguments: build fails with UOE: "Operation is not supported for read-only collection" at EmptyList.clear()KT-21409UAST: Super-call arguments are not modeled/visitedKT-21418Gradle based project in IDEA 181: Kotlin facets are not createdKT-21441Folding multiline strings adds a space at the start if there is not one.KT-21546java.lang.IllegalArgumentException: Unexpected container fatal IDE errorKT-21575Secondary constructor call body is missingKT-21645Weird parameter hint positionKT-21733Structure view is not updatedKT-21756Find Usages for "type" in ts2kt provokes exceptionKT-21770Pastingthis into an interpolated string shouldn't escapeKT-21833Type hints shown when destructing triple with type parametersKT-21852Custom API version is lost when settings are reopen after restarting IDEKT-11503cmd+shift+enter action in .kt files does not work on empty linesKT-17217Navigate to symbol: hard to choose between a lot of extension overloadsKT-18674Join Lines should join stringsKT-19524"Local variable type hints" should respect static importsKT-21010Gutter "Is subclassed by" should show actual subclass from the all platform modules in IDEA 2017.3/2018.1KT-21036Throwable “Access is allowed from event dispatch thread only.” after creating nine similar classes with functions.KT-21213Multiline kdoc - intellij joins lines together without spaceKT-21592-Xjsr305=strict not taken into account during the kotlin files compilation in Idea (maven)KT-22050Redundant parameter type hint on SAMKT-22071Formatter insists on increasing indentation in forEach lambdaKT-22093Unnecessary line wrap with new Kotlin code styleKT-22111Error while indexing PsiPlainTextFileImpl cannot be cast to KtFileKT-22121Enter in empty argument list should apply normal indent if "Continuation indent for argument list" is offKT-21702KtLightAnnotationcan't be converted to UASTKT-19900IntelliJ does not recognise no-arg "invokeInitializers" set in pom.xml
IDE. Completion
KT-13220Completion for non-primary-constructor properties should suggest names with types instead of typesKT-12797Code completion does not work for inner in base classKT-16402AssertionError on completing expression after template in string literalKT-20166Completion: property declaration completion should be greedy iftabpressedKT-20506Second smart completion suggests the same value recursively
IDE. Debugger
KT-17514Debugger, evaluate value: cannot find local variable error on attempt to evaluate outer variableKT-20962NullPointerException because of nullable location in debuggerKT-21538"Step into" method doesn't work after adding lambda parameter to the callKT-21820Debugger: Evaluation fails for instance properties (older Android SDKs)
IDE. Inspections and Intentions
New Features
KT-4580Intention + inspection to convert between explicit and implicit 'this'KT-11023Inspection to highlight usages of Collections.sort() and replace them with .sort() method from Kotlin stdlibKT-13702Issue a warning when equals is called recursively within itselfKT-18449Multiplatform project: provide a quick fix "Implement methods" for a impl classKT-18828Provide an intention action to move a companion object member to top levelKT-19103Inspection to remove unnecessary suspend modifierKT-20484Add quick fix to add required target to annotation used on a typeKT-20492Offer "Simplify" intention for 'when' expression where only one branch is known to be trueKT-20615Inspection to detect usages of values incorrectly marked by Kotlin as const from Java codeKT-20631Inspection to detect use of Unit as a standalone expressionKT-20644Warning for missing const paired with val modifier for primitives and stringsKT-20714Inspection for self-assigment of propertiesKT-21023Inspection to highlight variables / functions with implicitNothing?typeKT-21510Add inspection to add/remove this to/from bound callableKT-21560Inspection to sort modifiersKT-21573Code Style Inspection:to -> Pairfunction used not in infix formKT-16260Add intention to specify all types explicitly in destructuring assignmentKT-21547Allow separate regex for test class and function names in IDE inspectionKT-21741Inspection to detect is checks for object typesKT-21950Enable quick-fixes for annotator-reported problems in "Inspect Code"KT-22103SortModifiersInspection should report annotations after modifiers
Fixes
KT-15941"Convert to secondary constructor" produces invalid code for generic property with default valueKT-16340"Unused receiver parameter" for invoke operator on companion objectKT-17161IDE suggest to replace a for loop withforEachto aggresivelyKT-17332Intention to replace forEach with a 'for' loop should convert return@forEach to continueKT-17730Incorrect suggestion to replace loop with negation toany{}KT-18816IDEA suggests replacing for-in-range with stdlib operationsKT-18881Invalid "Loop can be replaced with stdlib operations" warning when class hasadd()functionKT-19560Do not warn about receiver parameter not used for companion objectKT-19977Convert Lambda to reference produces red code when wrong implicit receiver is in scopeKT-20091"Convert object literal to class" should create inner class if necessaryKT-20300"Variable can be inlined" should not be suggested if there's a variable with the same name in nested scopeKT-20349Convert lambda to reference for trailing lambda inserts parameter names for all arguments if at least one named argument was passedKT-20435False "function is never used" warningKT-20622Don't propose “Remove explicit type specification” when it can change semantic?KT-20763Wrong resulting code for "add star projection" quick-fix for inner class with generic outer oneKT-20887Missing documentation warning shouldn't be triggered for a member of a private classKT-20888Documentation should be inherited from Map.Entry typeKT-20889Members of anonymous objects should be treated as private and not trigger "Missing documentation" warningKT-20894"Add type" quick fix does not take into accountvarargmodifierKT-20901IntelliJ autocorrect to add parameter to data class constructor should make the parameter a valKT-20981False positive for "redundant super" in data classKT-21025Kotlin UAST violatesJvmDeclarationUElementcontract by employingJavaUAnnotationKT-21061Cant work with UElement.kt in IDEA with 1.2.0-rc-39: "Stub index points to a file without PSI"KT-21104Do not propose to make local lateinit var immutableKT-21122QuickFix to create member for expect class shouldn't add bodyKT-21159Fix signature invoked from Java breaks Kotlin codeKT-21179Remove empty class body on companion object breaks codeKT-21192Confusing "unused expression"KT-21237ReplaceWith incorrectly removes property assignmentKT-21332Create from usage: do not propose to create abstract function in non-abstract classKT-21373'Remove redundant let' quickfix does not work withinKT-21497Inspection considers if block to be a lambdaKT-21544"Add type" quick fix incorrectly processesvarargmodifier with primitive type array initializerKT-21603"Join declaration and assignment" should remove 'lateinit' for 'var'KT-21612The "Remove redundant getter" inspection removes the type specifierKT-21698Create interfaceshouldn't suggest to declare it inside a class which implements itKT-21726"arrayOf can be replaced with literal" inspection quick fix produces incompilable result in presence of spread operatorKT-21727"Redundant spread operator" inspection does not report array literalKT-12814Specify type explicitly produces erroneous code when platform type overrides not-null typeKT-15180Incorrect quickfix 'Specify type explicitly'KT-17816"Replace elvis with if" produce nasty code when safe casts are involvedKT-18396Bad quickfix for wrong nested classes in inner classKT-19073No-op quick fix for "Convert lambda to reference" IDE suggestionKT-19283Kotlin KProperty reference cannot be converted to lambdaKT-19736Rephrase text in the unconventional property name inspectionKT-19771Preserve old "Convert to expression body" rangeKT-20437Naming convetions inspection: Add separate inspection for top-level and object propertiesKT-20620Replace operator with function call breaks codeKT-21414OverridersSearch attempts to create nameless fake light methodKT-21780Wrong redundant setter inspectionKT-21837Don't require documentation on tests and test classesKT-21929Inappropriate quick fix for a sealed class instantiationKT-21983Do not suggest to remove explicit Unit type for expression bodyKT-16619Incorrect 'accessing non-final property in constructor' warning
IDE. Refactorings
New Features
KT-20095Allow conversion of selected companion methods to methods with @JvmStatic
Fixes
KT-15840Introduce type alias: don't change not-nullable type with nullable typealiasKT-17212Refactor / Inline Function: with 1 occurrence both "Inline all" and "Inline this only" are suggestedKT-18594Refactor / Extract (Functional) Parameter are available for annotation arguments, but fail with AE: "Body element is not found"KT-20146IAE “parameter 'name' of NameUtil.splitNameIntoWords must not be null” at renaming classKT-20335Refactor → Extract Type Parameter: “AWT events are not allowed inside write action” after processing duplicatesKT-20402Throwable “PsiElement(IDENTIFIER) by KotlinInplaceParameterIntroducer” on calling Refactor → Extract Parameter for default valuesKT-20403AE “Body element is not found” on calling Refactor → Extract Parameter for default values in constructor of class without bodyKT-20790Refactoring extension function/property overagressiveKT-20766Typealias end-of-line is removed when moving function and typealias to new fileKT-21071Cannot invoke move refactoring on a typealiasKT-21162Adding parameters to kotlin data class leads to compilation errorKT-21288Change Signature refactoring fails to change signature of overridersKT-21334Extract variable doesn't take into account the receiver of a bound callable referenceKT-21371Rename refactoring sometimes erases identifier being renamed when popping up name proposalsKT-21530KNPE in introduce variableKT-21508java.lang.AssertionError: PsiLiteralExpressionon property safe delete in Idea 173KT-21536Rename refactoring sometimes doesn't quite workKT-21604Rename package missing titleKT-21963Refactor / Inline Property: "null" in place of number of occurrences of local variable referencesKT-21964Refactor / Inline: on declaration of element with one usage "Inline and keep" choice is not suggestedKT-21965Refactor / Inline: wording in dialog could be unified
JavaScript
New Features
KT-20210[JS] Ultra-fast builds for development
Performance Improvements
KT-2218JS: Optimise in checks for number rangesKT-20932JS: Make withIndex() on arrays intrinsicKT-21160JS: generate switch statement for when statement when possible
Fixes
KT-7653JS: TypeError when try to access to "simple" property (w/o backing field at runtime)KT-18963javascript project: No output directory found for Module 'xxx_test' production on JPS compilingKT-19290JS integer overflow for unaryMinusKT-19826JS: don't remove debugger statement from suspend functionsKT-20580JS: JSON.stringify could improve 'replacer' argument handlingKT-20694JS: add missed parts to JS DateKT-20737JS: cache KProperty instances that used to access to delegated propertyKT-20738JS: remove useless calls to constructor of KProperty* (PropertyMetadata) when it generated for access to delegated propertyKT-20854valparameters of typekotlin.Chararen't boxedKT-20898JS: inline js withforwithout initializer causes compiiler to crashKT-20905JS: compiler crashes on invalid inline JavaScript code instead of reporting errorKT-20908JS frontend crashes on uncompleted call to function with reified parametersKT-20978JS: inline doesn't work for Array's constructor when it called through typealiasKT-20994JS extension property in interface problemKT-21004JS: don't use short-circuit operators when translating Boolean.and/or(Boolean)KT-21026JS: wrong code generated for suspend fun that calls inline suspend fun as a tail call.KT-21041'TypeError: ... is not a function' for lambda with closure passed as an argument to super type constructorKT-21043JS: inlining coroutine from other module sometimes causes incorrect code generatedKT-21093Kotlin.JS doesnt escape ‘in’ identifier and conflicts with in keywordKT-21245JS: interface function with default parameter, overridden by other interface indirectly cannot be found at runtimeKT-21307JS DCE does not remap paths to sourcesKT-21309JS: incorrect source map generated for inline lambda when it's last expression is a statement-like expression (e.g. when or try/catch)KT-21317JS: safe call to suspend function returning Unit causes incorrectKT-21421JS: accesors of overridden char properties with backing fields aren't boxedKT-21468JS: don't use enum entry's name for when over external enumsKT-21850JS: support nested tests
Language design
KT-10532ISE by ThrowingLexicalScope at compile time with specific override chain
Libraries
KT-20864ProvideReadOnlyandMutableannotations to control java collection mutability in kotlinKT-18789Delegating val to out-projectedMutableMapresulted in NPE due to cast toNothingKT-21828JS: The List produced by theIntArray.asListfunction caused weird resultsKT-21868Eliminate potential data race inSafePublicationLazyImplKT-21918MaketoTypedArray()implementation more efficient and thread-safeKT-22003JS: ReplaceRegexconstructor-like functions with secondary constructors- JS:
VolatileandSynchornizedannotations are moved tokotlin.jvmpackage with the migration type aliases provided KT-16348ProvideString.toBoolean()conversion in JS and common platforms- Add missing declarations to kotlin-stdlib-common, those that are already supported in both platforms
KT-20968Improve docs for String.format and String.Companion.format
Reflection
KT-20875Support Void.TYPE as underlying Class object for KClassKT-21453NPE in TypeSignatureMappingKt#computeInternalName
Tools
KT-20298Lint warning when using @Parcelize with delegated propertiesKT-20299Android non-ASCII TextView Id Unresolved Reference BugKT-20717@Parcelize Creator.newArray method is generated incorrectlyKT-20751kotlin-spring compiler plugin does not open @Validated classesKT-21171_$_findViewCache and _$_findCachedViewById are created in Activity subclass without Kotlin Android Extensions.KT-21628Can't find referenced class kotlin.internal.annotations.AvoidUninitializedObjectCopyingCheckKT-21777RMI "Connection refused" errors with daemonKT-21992@Transient warning for lazy property
Tools. Gradle
KT-20892Support module name option in K2MetadataCompilerArgumentsKT-17621Incremental compilation is very slow when Java file is modifiedKT-14125Android-extensions don't track xml changes wellKT-20233Kapt: using compiler in-process w/ gradle leads to classloader conflictKT-21009Running Gradle build withcleanpreventsKotlinCompiletasks from loading from cacheKT-21596Improve Kapt Gradle Plugin to be more friendly for Kotlin-DSLKT-15753Support cacheable tasksKT-17656Kotlin and Kotlin Android plugin not using available build cachesKT-20017Support local (non-relocatable) Gradle build cacheKT-20598Missing input annotations on AbstractKotlinCompileToolKT-20604Kotlin plugin breaks relocatability and compile avoidance for Java compile tasksKT-21203Kotlin gradle plugin does not create proper Ivy metadata for dependenciesKT-21261Gradle plugin 1.1.60 creates "build-history.bin" outside project.buildDirKT-21805Gradle plugin does not work with JDK 1.7 (KaptGradleModel)KT-21806Gradle Plugin: Using automatic dependency versions with 'maven-publish' plugin does not include dependency version in generated publication POMs
Tools. Incremental Compile
KT-20840Multiplatform IC fails if expected or actual file is modified separatelyKT-21622Make IC work more accurately with changes of Android layouts xml filesKT-21699JS IC produces different source maps when enum usage is compiled separatelyKT-20633Class is not recompiled
Tools. J2K
KT-21502Inspection to convert map.put(k, v) into map[k] = vKT-19390Character and string concatenation in Java is converted to code with multiple type errors in KotlinKT-19943Redundant 'toInt' after converting explicit Integer#intValue call
Tools. JPS
KT-21574JPS build: API version in project settings is ignoredKT-21841JPS throws exception creating temporary file for moduleKT-21962Source file dependencies (lookups) are not tracked in JPS when Kotlin daemon is used
Tools. Maven
KT-20816Repeated Maven Compiles With Kapt Fail
Tools. REPL
KT-17561Embedding kotlin-script-utils may cause version conflicts e.g. with guavaKT-17921The JSR 223 scripting engine fails to eval anything after encountering an unresolved referenceKT-21075KotlinJsr223JvmLocalScriptEngineFactory does not well with kotlin-compiler-embeddableKT-21141Kotlin script: KotlinJsr223JvmLocalScriptEngine.state.history.reset() seems not clearing the compiler cache
Tools. kapt
Fixes
KT-18791Kapt: Constants from R class should not be inlinedKT-19203Kapt3 generator doesn't seem to print log level lower to Mandatory WarningKT-19402kapt.correctErrorTypesmakes typealias not work.KT-19505Kapt doesn't always stub classes about to be generated.KT-19518Kapt: Support 'correctErrorTypes' option in annotationsKT-20257Kapt is incompatible with compiler pluginsKT-20749Kapt: Support Java 9KT-21144Kapt: Compilation error with maven plugin (Java 9 compatibility)KT-21205KDoc unavailable via javax.lang.model.util.Elements#getDocComment(Element e)KT-21262Kapt: Remove artificial KaptError exception on errors from annotation processorKT-21264Kapt: -Xmaxerrs javac option is not propagated properlyKT-21358Kapt: Support import directive with aliases (correctErrorTypes)KT-21359Kapt: Filter out non-package imports whenever possible (correctErrorTypes)KT-21425kapt warning when assembling unit testsKT-21433Annotations on enum constants are not kept on the generated stubKT-21483Kapt: Loading resources doesn't work without restarting the gradle daemonKT-21542Kapt: Report additional info about time spent in each annotation processorKT-21565Kapt, Maven: Support passing arguments for annotation processorsKT-21566Kapt, Maven: Support passing Javac optionsKT-21729Error message says "androidProcessor" should be "annotationProcessor"KT-21936Kapt 1.2.20-eap: cannot find symbol @KaptSignatureKT-21735Kapt cache not clearedKT-22056Applying Kapt plugin causes RuntimeException on Gradle import: "Kapt importer for generated source roots failed, source root name: debug" at KaptProjectResolverExtension.populateAndroidModuleModelIfNeeded()KT-22189ISE from com.sun.tools.javac.util.Context.checkState when switching from 1.2.10 to 1.2.20-eap-33
1.2.10
Compiler
KT-20821Error while inlining function reference implicitly applied to thisKT-21299Restore adding JDK roots to the beginning of the classpath list
IDE
KT-21180Project level api/language version settings are erroneously used as default during Gradle importKT-21335Fix exception on Project Structure view openKT-21610Fix "Could not determine the class-path for interface KotlinGradleModel" on Gradle sync- Optimize dependency handling during import of Gradle project
JavaScript
KT-21493Losing lambda defined in inline function after incremental recompilation
Tools. CLI
KT-21495Bash scripts in Kotlin v1.2 compiler have Windows line terminatorsKT-21537javac 7 do nothing when kotlin-compiler(-embeddable) is in classpath
Libraries
- Unify docs wording of 'trim*' functions
- Improve cover documentation page of kotlin.test library
- Provide summary for kotlin.math package
- Fix unresolved references in the api docs
1.2
Android
KT-20974NSME "AndroidModuleModel.getMainArtifact" on Gradle refreshKT-20975IAE "Missing extension point" on Gradle refresh
Compiler
KT-6359Provide the way to share code with different targets(JVM, JS)
IDE
KT-21300IDEA slow down in Kotlin + Spring projectKT-20450Exception in UAST during function inliningKT-20789Can't navigate to inline call/inline use site when runner is delegated to GradleKT-21236New project button doesn't work with Kotlin plugin enabled and Gradle plugin disabledKT-21263"Configure Kotlin Plugin Updates" suggests incompatible plugin for AS 3.0
Tools. JPS
KT-20757Rebuild when language/api version is changed
1.2-RC2
Compiler
KT-20844VerifyError on Android after upgrading to 1.2.0-beta-88KT-20895NPE in Kotlin 1.2-beta88 PseudocodeVariablesData.kt:337KT-21377Create fallback flag for "Illegal smart cast is allowed after assignment in try block"
IDE
KT-18719Configure Kotlin in Gradle project to 1.2-Mx: add repository mavenCentral() to buildscriptKT-20782Exception when working with routing in ktor (non-atomic trees update)KT-20966ISE: Facade class not found from Kotlin test filesKT-20967Kotlin plugin upgrade breaks Gradle refreshKT-20990String literal in string template causes ISEKT-21028Add kotlin-stdlib-jre7/8 instead of kotlin-stdlib-jdk7/8 for Kotlin versions below 1.2KT-21383Unsupported method: Library.getProject()when importing Anko project- Downgrade "use expression body" inspection to INFORMATION default level
IDE. Debugger
KT-20962NullPointerException because of nullable location in debugger
IDE. Inspections and Intentions
KT-20803Create actual declaration in the same source root as expect declaration
IDE. Refactorings
KT-20979Move class refactoring doesn't work anymore
Libraries
- Remove deprecated
pairwisefunction
Tools. Gradle
KT-21395“Unable to load class 'kotlin.collections.CollectionsKt'” on creating gradle project in IDEA 2016.3.7
Tools. kapt
- Add
kotlin-annotation-processing-embeddableartifact (compatible withkotlin-compiler-embeddable) - Return
kotlin-annotation-processingartifact back (compatible with CLI Kotlin compiler)
1.2-RC
Compiler
Fixes
KT-20774"::foo.isInitialized" for lateinit member properties produces incorrect bytecodeKT-20826Can't compile Ultimate Idea with Kotlin 1.2KT-20879Compiler problem in when-expressionsKT-20959Regression: Unexpected diagnostic NINITIALIZED_ENUM_COMPANION reported in 1.1.60 & 1.2.0-rcKT-20651Don't know how to generate outer expression" for enum-values with non-trivial self-closures
IDE
New Features
KT-20286"Configure Kotlin in project" should add kotlin-stdlib-jdk7/8 instead of kotlin-stdlib-jre7/8 starting from Kotlin 1.2
Fixes
KT-19599No indentation for multiline collection literalKT-20346Can't build tests in common code due to missing org.jetbrains.kotlin:kotlin-test-js testCompile dependency in JSKT-20550Spring: "Navigate to autowired candidates" gutter action is missed (IDEA 2017.3)KT-20566Spring: "Navigate to the spring beans declaration" gutter action for@ComponentScanis missed (IDEA 2017.3)KT-20843Kotlin TypeDeclarationProvider may stop other declarations providers executionKT-20906Find symbol by name doesn't workKT-20920UAST: SOE Thrown in JavaColorProviderKT-20922Couldn't match ClsMethodImpl from Kotlin test filesKT-20929Import Project from Gradle wizard: the same page is shown twiceKT-20833MP project: add dependency to kotlin-test-annotation-common to common module
IDE. Completion
KT-18458Spring: code completion does not suggest bean names inside@Qualifierbefore function parameter
IDE. Inspections and Intentions
KT-20899Code Cleanup fails to convert Circlet codebase to 1.2KT-20949CCE from UAST (File breadcrumbs don't update when file tree does)
IDE. Refactorings
KT-20251Kotlin Gradle script: Refactor → Inline works incorrect when you need to inline all function occurrences
JavaScript
KT-2976Suggestion for cleaner style to implement !! operatorKT-5259JS: RTTI may be break by overwriting constructor fieldKT-17475JS: object and companion object named "prototype" cause exceptionsKT-18095JS: Wrong behavior of fun named "constructor"KT-18105JS: inner class "length" cause runtime exceptionKT-20625JS: Interface function with default parameter, overridden by other interface cannot be found at runtimeKT-20820JS: IDEA project doesn't generate paths relative to .map
Libraries
KT-4900Finalize math operation parameter names
Tools. JPS
KT-20852IllegalArgumentException: URI has an authority component on attempt to jps compile the gradle project with javascript module
Tools. kapt
KT-20877Butterknife: UninitializedPropertyAccessException: "lateinit property has not been initialized" for field annotated with@BindView.
1.2-Beta2
Multiplatform projects
New Features
KT-20616Compiler options forKotlinCompileCommontaskKT-15522Treat expect classes without explicit constructors as not having constructors at allKT-16099Do not require obvious override of super-interface methods in non-abstract expect classKT-20618RenameimplementtoexpectedByin gradle module dependency
Fixes
KT-16926'implement' dependency is not transitive when importing gradle project to IDEAKT-20634False error about platform project implementing non-common projectKT-19170Forbid private expected declarationsKT-20431Prohibit inheritance by delegation in 'expect' classesKT-20540Report errors about incompatible constructors of actual classKT-20398Do not highlight declarations with not implemented implementations with red during typingKT-19937Support "implement expect class" quickfix for nested classesKT-20657Actual annotation with all parameters that have default values doesn't match expected annotation with no-arg constructorKT-20680No actual class member: inconsistent modality checkKT-18756multiplatform project: compilation error on implementation of extension property in javascript client moduleKT-17374Too many "expect declaration has no implementation" inspection in IDE in a multi-platform projectKT-18455Multiplatform project: show gutter Navigate to implementation on expect side of method in the expect classKT-19222Useless tooltip on a gutter icon for expect declarationKT-20043multiplatform: No H gutter if a class has nested/inner classes inherited from itKT-20164expect/actual navigation does not work when actual is a typealiasKT-20254multiplatform: there is no link between expect and actual classes, if implementation has a constructor when expect doesn'tKT-20309multiplatform: ClassCastException on mouse hovering on the H gutter of the actual secondary constructorKT-20638Context menu in common module: NSEE: "Collection contains no element matching the predicate." at KotlinRunConfigurationProducerKt.findJvmImplementationModule()KT-18919multiplatform project: expect keyword is lost on converting to objectKT-20008multiplatform: Create expect class implementation should add actual keyword at secondary constructorsKT-20044multiplatform: Create expect class implementation should add actual constructor at primary constructorKT-20135"Create expect class implementation" should open created class in editorKT-20163multiplatform: it should be possible to create an implementation for overloaded method if for one method implementation is present alreadyKT-20243multiplatform: quick fix Create expect interface implementation should add actual keyword at interface membersKT-20325multiplatform: Quick fix Create actual ... should specify correct classifier name for object, enum class and annotation class
Compiler
New Features
KT-16028Allow to have different bodies of inline functions inlined depending on apiVersion
Performance Improvements
KT-20462Don't create an array copy for '*(...)'
Fixes
KT-13644Information from explicit cast should be used for type inferenceKT-14697Use-site targeted annotation is not correctly loaded from class fileKT-17981Type parameter for catch parameter possible when exception is nested in generic, but fails in runtimeKT-19251Stack spilling in constructor arguments breaks QuasarKT-20387Wrong argument generated for accessor call of a protected generic 'operator fun get/set' from base class with primitive type as type parameterKT-20491Incorrect synthetic accessor generated for a generic base class function specialized with primitive typeKT-20651"Don't know how to generate outer expression" for enum-values with non-trivial self-closuresKT-20752Do not register new kinds of smart casts for unstable values
IDE
New Features
KT-19146Parameter hints could be shown for annotation
Fixes
KT-19207"Configure Kotlin in project" should add "requires kotlin.stdlib" to module-info for Java 9 modulesKT-19213Formatter/Code Style: space between type parameters andwhereis not insertedKT-19216Parameter name hints should not be shown for functional type invocationKT-20448Exception in UAST during reference search in J2KKT-20543java.lang.ClassCastException on usage of array literals in Spring annotationKT-20709Loop in parent structure when converting a LITERAL_STRING_TEMPLATE_ENTRY
IDE. Completion
KT-17165Support array literals in annotations in completion
IDE. Debugger
KT-18775Evaluate expression doesn't allow access to properties of private nested objects, including companion
IDE. Inspections and Intentions
New Features
KT-20108Support "add requires directive to module-info.java" quick fix on usages of non-required modules in Kotlin sourcesKT-20410Add inspection for listOf().filterNotNull() to replace it with listOfNotNull()
Fixes
KT-16636Remove parentheses after deleting the last unused constructor parameterKT-18549"Add type" quick fix adds non-primitive Array type for annotation parametersKT-18631Inspection to convert emptyArray() to empty literal does not workKT-18773Disable "Replace camel-case name with spaces" intention for JS and common projectsKT-20183AE “Classifier descriptor of a type should be of type ClassDescriptor” on adding element to generic collection in functionKT-20315"call chain on collection type may be simplified" generates code that does not compile
JavaScript
Fixes
KT-8285JS: don't generate tmp when only need one componentKT-8374JS: some Double values converts to Int differently on JS and JVMKT-14549JS: Non-local returns from secondary constructors don't workKT-15294JS: parse error injs()functionKT-17629JS: Equals function (==) returns true for all primitive numeric typesKT-17760JS: Nothing::class throws errorKT-17933JS: toString, hashCode method and simplename property of KClass return senseless results for some classesKT-18010JS: JsName annotation in interfaces can cause runtime exceptionKT-18063Inlining does not work properly in JS for suspend functions from another moduleKT-18548JS: wrong string interpolation with generic or Any parametersKT-19772JS: wrong boxing behavior for open val and final fun inside open classKT-19794runtime crash with empty object (Javascript)KT-19818JS: generate paths relative to .map file by default (unless "-source-map-prefix" is used)KT-19906JS: rename compiler option "-source-map-source-roots" to avoid misleading since sourcemaps have field called "sourceRoot"KT-20287Functions don't actually return Unit in Kotlin-JS -> unexpected null problems vs JDK versionKT-20451KotlinJs - interface function with default parameter, overridden by implementor, can't be found at runtimeKT-20527JS: use prototype chain to check that object implements kotlin interfaceKT-20650JS: compiler crashes in Java 9 with NoClassDefFoundErrorKT-20653JS: compiler crashes in Java 9 with TranslationRuntimeException
Language design
KT-20171Deprecate assigning single elements to varargs in named form
Libraries
KT-19696Provide a way to write multiplatform testsKT-18961Closeable.use should call addSuppressedKT-2460PR-1300shuffleandfillextensions for MutableList now also available in JSPR-1230Add assertSame and assertNotSame methods to kotlin-test
Tools. Gradle
KT-20553RenamewarningsAsErrorscompiler option toallWarningsAsErrorsKT-20217src/main/javaandsrc/test/javasource directories are no longer included by default in Kotlin/JS and Kotlin/Common projects
Tools. Incremental Compile
KT-20654AndroidStudio: NSME “PsiJavaModule.getName()Ljava/lang/String” on calling simple Kotlin functions like println(), listOf()
Binary Metadata
KT-20547Write pre-release flag into class files if language version > LATEST_STABLE
1.2-Beta
Android
New Features
KT-20051Quickfixes to support @Parcelize
Fixes
KT-19747Android extensions + Parcelable: VerifyError in case of RawValue annotation on a type when it's unknown how to parcel itKT-19899Parcelize: Building with ProGuard enabledKT-19988[Android Extensions] inner class LayoutContainer causes NoSuchMethodErrorKT-20002Parcelize explodes on LongArrayKT-20019Parcelize does not propogate flags argument when writing nested ParcelableKT-20020Parcelize does not use primitive array read/write methods on ParcelKT-20021Parcelize does not serialize Parcelable enum as ParcelableKT-20022Parcelize should dispatch directly to java.lang.Enum when writing an enum.KT-20034Application installation failed (INSTALL_FAILED_DEXOPT) in Android 4.3 devices if I use ParcelizeKT-20057Parcelize should use specialized write/create methods where available.KT-20062Parceler should allow otherwise un-parcelable property types in enclosing class.KT-20170UAST: Getting the location of a UIdentifier is tricky
Compiler
KT-4565Support smart casting of safe cast's subject (and also safe call's receiver)KT-8492Null check should work after save call with elvis in conditionKT-9327Need a way to check whether a lateinit property was assignedKT-14138Allow lateinit local variablesKT-15461Allow lateinit top level propertiesKT-7257NPE when accessing properties of enum from inner lambda on initializationKT-9580Report an error if 'setparam' target does not make sense for a parameter declarationKT-16310Nested classes inside enum entries capturing outer membersKT-20155Confusing diagnostics on a nested interface in inner class
IDE
KT-14175Surround with try ... catch (... finally) doesn't work for expressionsKT-20308New Gradle with Kotlin DSL project wizardKT-18353Support UAST for .kts filesKT-19823Kotlin Gradle project import into IntelliJ: import kapt generated classes into classpathKT-20185Stub and PSI element type mismatch for "var nullableSuspend: (suspend (P) -> Unit)? = null"
Language design
KT-14486Allow smart cast in closure if a local variable is modified only before it (and not after or inside)KT-15667Support "::foo" as a short-hand syntax for bound callable reference to "this::foo"KT-16681kotlin allows mutating the field of read-only property
Libraries
KT-19258Java 9: module-info.java withrequires kotlin.stdlibcauses compiler to fail: "module reads package from both kotlin.reflect and kotlin.stdlib"
Tools
KT-19692kotlin-jpa plugin doesn't support @MappedSuperclass annotationKT-20030Parcelize can directly reference writeToParcel and CREATOR for final, non-Parcelize Parcelable types in same compilation unit.KT-19742[Android extensions] Calling clearFindViewByIdCache causes NPEKT-19749Android extensions + Parcelable: NoSuchMethodError on attempt to pack into parcel a serializable objectKT-20026Parcelize overrides describeContents despite being already implemented.KT-20027Parcelize uses wrong classloader when reading parcelable type.KT-20029Parcelize should not directly reference parcel methods on types outside compilation unitKT-20032Parcelize does not respect type nullability in case of Parcelize parcelables
Tools. CLI
KT-10563Support a command line argument -Werror to treat warnings as errors
Tools. Gradle
KT-20212Cannot access internal components from test code
Tools. kapt
KT-17923Reference to Dagger generated class is highlighted redKT-18923Kapt: Do not use the Kotlin error message collector to issue errors from kaptKT-19097Request: Decent support ofkapt.kotlin.generatedon Intellij/Android StudioKT-20001kapt generate stubs Gradle task does not depend on the compilation of sub-project kapt dependencies
1.1.60
Android
New Features
KT-20051Quickfixes to support @Parcelize
Fixes
KT-19747Android extensions + Parcelable: VerifyError in case of RawValue annotation on a type when it's unknown how to parcel itKT-19899Parcelize: Building with ProGuard enabledKT-19988[Android Extensions] inner class LayoutContainer causes NoSuchMethodErrorKT-20002Parcelize explodes on LongArrayKT-20019Parcelize does not propogate flags argument when writing nested ParcelableKT-20020Parcelize does not use primitive array read/write methods on ParcelKT-20021Parcelize does not serialize Parcelable enum as ParcelableKT-20022Parcelize should dispatch directly to java.lang.Enum when writing an enum.KT-20034Application installation failed (INSTALL_FAILED_DEXOPT) in Android 4.3 devices if I use ParcelizeKT-20057Parcelize should use specialized write/create methods where available.KT-20062Parceler should allow otherwise un-parcelable property types in enclosing class.
Compiler
Performance Improvements
KT-20462Don't create an array copy for '*(...)'
Fixes
KT-14697Use-site targeted annotation is not correctly loaded from class fileKT-17680Android Studio and multiple tests in single fileKT-19251Stack spilling in constructor arguments breaks QuasarKT-19592Apply JSR 305 default nullability qualifiers with to generic type arguments if they're applicable for TYPE_USEKT-20016JSR 305: default nullability qualifiers are ignored in TYPE_USE and PARAMETER positionsKT-20131Support @NonNull(when = NEVER) nullability annotationKT-20158Preserve flexibility for Java types annotated with @NonNull(when = UNKNOWN)KT-20337No multifile class facade is generated for files with type aliases onlyKT-20387Wrong argument generated for accessor call of a protected generic 'operator fun get/set' from base class with primitive type as type parameterKT-20418Wrong code generated for literal long range with mixed integer literal endsKT-20491Incorrect synthetic accessor generated for a generic base class function specialized with primitive typeKT-20651"Don't know how to generate outer expression" for enum-values with non-trivial self-closuresKT-20707Support when by enum in kotlin scriptsKT-20879Compiler problem in when-expressions
IDE
New Features
KT-14175Surround with try ... catch (... finally) doesn't work for expressionsKT-15769Join lines could "convert to expression body"KT-19134IntelliJ Color Scheme editor - allow changing color of colons and double colonsKT-20308New Gradle with Kotlin DSL project wizard
Fixes
KT-15932Attempt to rename private property finds unrelated usagesKT-18996After Kotlin compiler settings change: 'Apply' button doesn't workKT-19458Resolver for 'completion/highlighting in ScriptModuleInfo for build.gradle.kts / JVM' does not know how to resolve LibraryInfoKT-19474Kotlin Gradle Script: highlighting fails on unresolved referencesKT-19823Kotlin Gradle project import into IntelliJ: import kapt generated classes into classpathKT-19958Android: kotlinOptions from build.gradle are not imported into facetKT-19972AssertionError “Resolver for 'completion/highlighting in ModuleProductionSourceInfo(module=Module: 'kotlin-pure_main') for files dummy.kt for platform JVM' does not know how to resolve SdkInfo“ on copying Kotlin file with kotlin.* imports from other projectKT-20112maven dependency type test-jar with scope compile notKT-20185Stub and PSI element type mismatch for "var nullableSuspend: (suspend (P) -> Unit)? = null"KT-20199Cut action is not available during indexingKT-20331Wrong EAP repositoryKT-20346Can't build tests in common code due to missing org.jetbrains.kotlin:kotlin-test-js testCompile dependency in JSKT-20419Android Studio plugin 1.1.50 show multiple gutter icon for the same itemKT-20519Error “Parameter specified as non-null is null: method ModuleGrouperKt.isQualifiedModuleNamesEnabled” on creating Gradle (Kotlin DSL) project from scratchKT-20550Spring: "Navigate to autowired candidates" gutter action is missed (IDEA 2017.3)KT-20566Spring: "Navigate to the spring beans declaration" gutter action for@ComponentScanis missed (IDEA 2017.3)KT-20621Provide automatic migration from JetRunConfigurationType to KotlinRunConfigurationTypeKT-20648Do we need a separate ProjectImportProvider for gradle kotlin dsl projects?KT-20782Non-atomic trees updateKT-20789Can't navigate to inline call/inline use site when runner is delegated to GradleKT-20843Kotlin TypeDeclarationProvider may stop other declarations providers executionKT-20929Import Project from Gradle wizard: the same page is shown twice
IDE. Completion
KT-16383IllegalStateException: Failed to create expression from text: '' on choosing ByteArray from completion listKT-18458Spring: code completion does not suggest bean names inside@Qualifierbefore function parameterKT-20256java.lang.Throwable “Invalid range specified” on editing template inside string literal
IDE. Inspections and Intentions
New Features
KT-14695Simplify comparison intention produces meaningless statement for assert()KT-17204AddAssign to property quickfixKT-18220Add data modifier to a class quickfixKT-18742Add quick-fix for CANNOT_CHECK_FOR_ERASEDKT-19735Add quickfix for type mismatch that converts Sequence/Array/ListKT-20259Show warning if arrays are compared by '!='
Fixes
KT-10546Wrong "Unused property" warning on using inline object syntaxKT-16394"Convert reference to lambda" generates wrong codeKT-16808Intention "Remove unnecessary parantheses" is erroneously proposed for elvis operator on LHS ofinoperator if RHS of elvis is return with valueKT-17437Class highlighted as unused even if Companion methods/fields really usedKT-19377Inspections are run for Kotlin Gradle DSL sourcesKT-19420Kotlin Gradle script editor: suggestion to import required class from stdlib fails with AE: ResolverForProjectImpl.descriptorForModule()KT-19626(Specify type explicitly) Descriptor was not found for VALUE_PARAMETERKT-19674'Convert property initializer to getter' intention fails on incompilable initializer with AssertionError at SpecifyTypeExplicitlyIntention$Companion.addTypeAnnotationWithTemplate()KT-19782Surround with if else doesn't work for expressionsKT-20010'Replace safe access expression with 'if' expression' IDEA Kotlin plugin intention may failedKT-20104"Recursive property accessor" reports false positive when property reference is used in the assignmentKT-20218AE on calling intention “Convert to secondary constructor” for already referred argumentKT-20231False positive 'Redundant override' when delegated member hides super type overrideKT-20261Incorrect "Redundant Unit return type" inspection for Nothing-typed expressionKT-20315"call chain on collection type may be simplified" generates code that does not compileKT-20333Assignment can be lifted out of try is applied too broadlyKT-20366Code cleanup: some inspections are brokenKT-20369Inspection messages with INFORMATION highlight type are shown in Code InspectKT-20409useless warning "Remove curly braces" for Chinese characterKT-20417Converting property getter to block body doesn't insert explicit return type
IDE. Refactorings
Performance Improvements
KT-18823Move class to a separate file is very slow in 'kotlin' projectKT-20205Invoke MoveKotlinDeclarationsProcessor.findUsages() under progress
Fixes
KT-15840Introduce type alias: don't change not-nullable type with nullable typealiasKT-17949Rename private fun should not search it out of scopeKT-18196Refactor / Copy: the copy is formattedKT-18594Refactor / Extract (Functional) Parameter are available for annotation arguments, but fail with AE: "Body element is not found"KT-19439Kotlin introduce parameter causes exceptionKT-19909copy a kotlin class removes imports and other modificationsKT-19949AssertionError „Resolver for 'project source roots and libraries for platform JVM' does not know how to resolve ModuleProductionSourceInfo“ through MoveConflictChecker.getModuleDescriptor() on copying Kotlin file from other projectKT-20092Refactor / Copy: copy of .kt file removes all the blank lines and 'hanging' commentsKT-20335Refactor → Extract Type Parameter: “AWT events are not allowed inside write action” after processing duplicatesKT-20402Throwable “PsiElement(IDENTIFIER) by KotlinInplaceParameterIntroducer” on calling Refactor → Extract Parameter for default valuesKT-20403AE “Body element is not found” on calling Refactor → Extract Parameter for default values in constructor of class without body
JavaScript
Fixes
KT-8285JS: don't generate tmp when only need one componentKT-14549JS: Non-local returns from secondary constructors don't workKT-15294JS: parse error injs()functionKT-17450PlatformDependent members of collections are compiled in JSKT-18010JS: JsName annotation in interfaces can cause runtime exceptionKT-18063Inlining does not work properly in JS for suspend functions from another moduleKT-18548JS: wrong string interpolation with generic or Any parametersKT-19794runtime crash with empty object (Javascript)KT-19818JS: generate paths relative to .map file by default (unless "-source-map-prefix" is used)KT-19906JS: rename compiler option "-source-map-source-roots" to avoid misleading since sourcemaps have field called "sourceRoot"KT-20287Functions don't actually return Unit in Kotlin-JS -> unexpected null problems vs JDK versionKT-20451KotlinJs - interface function with default parameter, overridden by implementor, can't be found at runtimeKT-20650JS: compiler crashes in Java 9 with NoClassDefFoundErrorKT-20653JS: compiler crashes in Java 9 with TranslationRuntimeExceptionKT-20820JS: IDEA project doesn't generate paths relative to .map
Libraries
KT-20596'synchronized' does not allow non-local return in Kotlin JSKT-20600Typo in POMs for kotlin-runtime
Tools
KT-19692kotlin-jpa plugin doesn't support @MappedSuperclass annotationKT-20030Parcelize can directly reference writeToParcel and CREATOR for final, non-Parcelize Parcelable types in same compilation unit.KT-19742[Android extensions] Calling clearFindViewByIdCache causes NPEKT-19749Android extensions + Parcelable: NoSuchMethodError on attempt to pack into parcel a serializable objectKT-20026Parcelize overrides describeContents despite being already implemented.KT-20027Parcelize uses wrong classloader when reading parcelable type.KT-20029Parcelize should not directly reference parcel methods on types outside compilation unitKT-20032Parcelize does not respect type nullability in case of Parcelize parcelables
Tools. Gradle
KT-3463Gradle plugin ignores kotlin compile options changesKT-16299Gradle build does not recompile annotated classes on changing compiler's plugins configurationKT-16764Kotlin Gradle plugin should replicate task dependencies of Java source directoriesKT-17564Applying Kotlin's Gradle plugin results in src/main/java being listed twice in sourceSets.main.allSourceKT-17674Test code is not compiled incrementally when main is changedKT-18765Move incremental compilation message from Gradle's warning to info logging levelKT-20036Gradle tasks up-to-date-ness
Tools. J2K
KT-19565Java code using Iterator#remove converted to red codeKT-19651Java class with static-only methods can contain 'protected' members
Tools. JPS
KT-20082Java 9: incremental build reports bogus error for reference to Kotlin sourceKT-20671Kotlin plugin compiler exception when compiling under JDK9
Tools. Maven
KT-20064Maven + Java 9: compile task warns about module-info in the output pathKT-20400Do not output module name, version and related information by default in Maven builds
Tools. REPL
KT-20167JDK 9unresolved supertypes: Objectwhen working with Kotlin Scripting API
Tools. kapt
KT-17923Reference to Dagger generated class is highlighted redKT-18923Kapt: Do not use the Kotlin error message collector to issue errors from kaptKT-19097Request: Decent support ofkapt.kotlin.generatedon Intellij/Android StudioKT-20877Butterknife: UninitializedPropertyAccessException: "lateinit property has not been initialized" for field annotated with@BindView.
1.1.50
Android
KT-14800Kotlin Lint:@SuppressLintannotation on local variable is ignoredKT-16600False positive "For methods, permission annotation should specify one ofvalue,anyOforallOf"KT-16834Android Lint: Bogus warning on @setparam:StringResKT-17785Kotlin Lint: "Incorrect support annotation usage" does not pick the value of const valKT-18837Android Lint: Collection.removeIf is not flagged when used on RealmListKT-18893Android support annotations (ColorInt, etc) cannot be used on properties: "does not apply for type void"KT-18997KLint: False positive "Could not find property setter method setLevel on java.lang.Object" if using elvis with return on RHSKT-19671UAST: Parameter annotations not provided for val parameters
Compiler
Performance Improvements
KT-17963Unnecessary boxing in case of primitive comparison to objectKT-18589'Equality check can be used instead of elvis' produces code that causes boxingKT-18693Optimize in-expression with optimizable range in RHSKT-18721Improve code generation for if-in-primitive-literal expression ('if (expr in low .. high)')KT-18818Optimize null cases inwhenstatement to avoid Intrinsics usageKT-18834Do not create ranges for 'x in low..high' where type of x doesn't match range element typeKT-19029Use specialized equality implementations for 'when'KT-19149Use 'for-in-until' loop in intrinsic array constructorsKT-19252Use 'for-in-until' loop for 'for-in-rangeTo' loops with constant upper bounds when possibleKT-19256Destructuring assignment generates redundant code for temporary variable nullificationKT-19457Extremely slow analysis for file with deeply nested lambdas
Fixes
KT-10754Bogus unresolved extension functionKT-11739Incorrect error message on getValue operator with KProperty parameterKT-11834INAPPLICABLE_LATEINIT_MODIFIER is confusing for a generic type parameter with nullable (default) upper boundKT-11963Exception: recursive call in a lazy value under LockBasedStorageManagerKT-12737Confusing error message when calling extension function with an implicit receiver, passing value parameter of wrong typeKT-12767Too much unnecessary information in "N type arguments expected" error messageKT-12796IllegalArgumentException on referencing inner class constructor on an outer class instanceKT-12899Platform null escapes if passed as an extension receiver to an inline functionKT-13665Generic componentN() functions should provide better diagnostics when type cannot be inferredKT-16223Confusing diagnostic for local inline functionsKT-16246CompilationException caused by intersection type overload and wrong type parameterKT-16746DslMarker doesn't work with typealiasesKT-17444Accessors generated for private file functions should respect @JvmNameKT-17464Calling super constructor with generic function call in arguments fails at runtimeKT-17725java.lang.VerifyError when both dispatch receiver and extension receiver have smart castsKT-17745Unfriendly error message on creating an instance of interface via typealiasKT-17748Equality for class literals of primitive types is not preserved by reificationKT-17879Comparing T::class from a reified generic with a Class<> and KClass<> variable in when statement is brokenKT-18356Argument reordering in super class constructor call for anonymous object fails with VerifyErrorKT-18819JVM BE treats 'if (a in low .. high)' as 'if (a >= low && a <= high)', so 'high' can be non-evaluatedKT-18855Convert "Remove at from annotation argument" inspection into compiler error & quick-fixKT-18858Exception within typealias expansion with dynamic used as one of type argumentsKT-18902NullPointerException when using provideDelegate with properties of the base class at runtimeKT-18940REPEATED_ANNOTATION is reported on wrong location for typealias argumentsKT-18944Type annotations are lost for dynamic typeKT-18966Report full package FQ name in compilation errors related to visibilityKT-18971Missing non-null assertion for platform type passed as a receiver to the member extension functionKT-18982NoSuchFieldError on access to imported object property from the declaring object itselfKT-18985Too large highlighting range for UNCHECKED_CASTKT-19058VerifyError: no CHECKAST on dispatch receiver of the synthetic property defined in Java interfaceKT-19100VerifyError: missing CHECKCAST on extension receiver of the extension propertyKT-19115Report warnings on usages of JSR 305-annotated declarations which rely on incorrect or missing nullability informationKT-19128java.lang.VerifyError with smart cast to String from AnyKT-19180Bad SAM conversion of Java interface causing ClassCastException: [...] cannot be cast to kotlin.jvm.functions.Function1KT-19205Poor diagnostic message for deprecated class referenced through typealiasKT-19367NSFE if property with name matching companion object property name is referenced within lambdaKT-19434Object inheriting generic class with a reified type parameter looses method annotationsKT-19475AnalyserException in case of combination ofwhile (true)+ stack-spilling (coroutines/try-catch expressions)KT-19528Compiler exception on inline suspend function inside a generic classKT-19575Deprecated typealias is not marked as such in access to companion objectKT-19601UPPER_BOUND_VIOLATED reported on type alias expansion in a recursive upper bound on a type parameterKT-19814Runtime annotations for open suspend function are not generated correctlyKT-19892Overriding remove method on inheritance from TreeSetKT-19910Nullability assertions removed when inlining an anonymous object in crossinline lambdaKT-19985JSR 305: nullability qualifier of Java function return type detected incorrectly in case of using annotation nickname
IDE
New Features
KT-6676Show enum constant ordinal in quick doc like in JavaKT-12246Kotlin source files are not highlighted in Gradle build output in IntelliJ
Performance Improvements
KT-19670When computing argument hints, don't resolve call if none of the arguments are unclear expressions
Fixes
KT-9288Call hierarchy ends on function call inside local val initializer expressionKT-9669Join Lines should add semicolon when joining statements into the same lineKT-14346IllegalArgumentException on attempt to call Show Hierarchy view on lambdaKT-14428AssertionError in KotlinCallerMethodsTreeStructure. on attempt to call Hierarchy viewKT-19466Kotlin based Gradle build not recognized when added as a moduleKT-18083IDEA: Support extension main functionKT-18863Formatter should add space after opening brace in a single-line enum declarationKT-19024build.gradle.kts is not supported as projectKT-19124Creating source file with directory/package throws AE: "Write access is allowed inside write-action only" at NewKotlinFileAction$Companion.findOrCreateTarget()KT-19154Completion and auto-import does not suggest companion object members when inside an extension functionKT-19202Applying 'ReplaceWith' fix in type alias can change program behaviourKT-19209"Stub and PSI element type mismatch" in when receiver type is annotated with @receiverKT-19277Optimize imports on the fly should not work in test data filesKT-19278Optimize imports on the fly should not remove incomplete import while it's being typedKT-19322Script editor: Move Statement Down/Up can't move one out of top level lambdaKT-19451"Unresolved reference" with Kotlin Android Extensions when layout defines the Android namespace as something other than "android"KT-19492Java 9: references from unnamed module to not exported classes of named module are compiled, but red in the editorKT-19493Java 9: references from named module to classes of unnamed module are not compiled, but green in the editorKT-19843Performance warning: LineMarker is supposed to be registered for leaf elements onlyKT-19889KotlinGradleModel : Unsupported major.minor version 52.0KT-19885200% CPU for some time on Kotlin sources (PackagePartClassUtils.hasTopLevelCallables())KT-19901KotlinLanguageInjector#getLanguagesToInject can cancel any progress in which it was invokedKT-19903Copy Reference works incorrectly for const valKT-20153Kotlin facet: Java 9-Xadd-modulessetting produces more and more identical sub-elements of<additionalJavaModules>in .iml file
IDE. Completion
KT-8848Code completion does not support import aliasesKT-18040There is no auto-popup competion after typing "$x." anymoreKT-19015Smart completion: parameter list completion is not available when some of parameters are already written
IDE. Debugger
KT-19429Breakpoint appears in random place during debug
IDE. Inspections and Intentions
New Features
KT-4748Remove double negation for boolean expressions intention + inspectionKT-5878Quickfix for "variable initializer is redundant" (VARIABLE_WITH_REDUNDANT_INITIALIZER)KT-11991Kotlin should have an inspection to suggest the simplified format for a no argument lambdaKT-12195Quickfix @JvmStatic on main() method in an objectKT-12233"Package naming convention" inspection could show warning in .kt sourcesKT-12504Intention to make open class with only private constructors sealedKT-12523Quick-fix to removewhenwith onlyelseKT-12613"Make abstract" on member of open or final class should make abstract both member and classKT-16033Automatically static import the enum value name when "Add remaining branches" on an enum from another class/fileKT-16404Create from usage should allow generating nested classesKT-17322Intentions to generate a getter and a setter for a propertyKT-17888Inspection to warn about suspicious combination of == and ===KT-18826INAPPLICABLE_LATEINIT_MODIFIER should have a quickfix to remove initializerKT-18965Add quick-fix for USELESS_IS_CHECKKT-19126Add quickfix for 'Property initializes are not allowed in interfaces'KT-19282Support "flip equals" intention for String.equals extension from stdlibKT-19428Add inspection for redundant overrides that only call the super methodKT-19514Redundant getter / setter inspection
Fixes
KT-13985"Add remaining branches" action does not use back-ticks correctlyKT-15422Reduce irrelevant reporting of Destructure inspectionKT-17480Create from usage in expression body of override function should take base type into accountKT-18482"Move lambda argument to parenthesis" action generate uncompilable codeKT-18665"Use destructuring declaration" must not be suggested for invisible propertiesKT-18666"Use destructuring declaration" should not be reported on a variable used in destructuring declaration onlyKT-18978Intention Move to class body generates incorrect code for vararg val/varKT-19006Inspection message "Equality check can be used instead of elvis" is slightly confusingKT-19011Unnecessary import for companion object property with extension function type is automatically insertedKT-19299Quickfix to correct overriding function signature keeps java NotNull annotationsKT-19614Quickfix for INVISIBLE_MEMBER doesn't offer to make member protected if referenced from subclassKT-19666ClassCastException in IfThenToElvisIntentionKT-19704Don't remove braces in redundant cascade ifKT-19811Internal member incorrectly highlighted as unusedKT-19926Naming convention inspections: pattern is validated while edited, PSE at Pattern.error()KT-19927"Package naming convention" inspection checks FQN, but default pattern looks like for simple name
IDE. Refactorings
KT-17266Refactor / Inline Function: reference to member of class containing extension function is inlined wrongKT-17776Inline method of inner class adds 'this' for methods from enclosing classKT-19161Safe delete conflicts are shown incorrectly for local declarations
JavaScript
Performance Improvements
KT-18329JS: for loop implementation depends on parentheses
Fixes
KT-12970Empty block expression result is 'undefined' (expected: 'kotlin.Unit')KT-13930Safe call for a function returning 'Unit' result is 'undefined' or 'null' (instead of 'kotlin.Unit' or 'null')KT-13932'kotlin.Unit' is not materialized in some functions returning supertype of 'Unit' ('undefined' returned instead)KT-16408JS: Inliner loses imported values when extending a class from another moduleKT-17014Different results in JVM and JavaScript on Unit-returning functionsKT-17915JS: 'kotlin.Unit' is not materialized as result of try-catch block expression with empty catchKT-18166JS: Delegated property named with non-identifier symbols can crash in runtime.KT-18176JS: dynamic type should not allow methods and properties with incorrect identifier symbolsKT-18216JS: Unit-returning expression used in loop can cause wrong behaviorKT-18793Kotlin Javascript compiler null handling generates if-else block where else is always takenKT-19108JS: Inconsistent behaviour from JVM code when modifying variable whilst calling run on itKT-19495JS: Wrong compilation of nested conditions with if- and when-clausesKT-19540JS: prohibit to use illegal symbols on call siteKT-19542JS: delegate field should have unique name otherwise it can be accidentally overwrittenKT-19712KotlinJS - providing default value of lambda-argument produces invalid js-codeKT-19793build-crash with external varargs (Javascript)KT-19821JS remap sourcemaps in DCEKT-19891Runtime crash with inline function with reified type parameter and object expression: "T_0 is not defined" (JavaScript)KT-20005Invalid source map with option sourceMapEmbedSources = "always"
Libraries
KT-19133Specializeanyandnonefor CollectionKT-18267Deprecate CharSequence.size extension function on the JS sideKT-18992JS: Missing MutableMap.iterator()KT-19881Expand doc comment of @PublishedApi
Tools. CLI
KT-18859Strange error message when kotlin-embeddable-compiler is run without explicit -kotlin-homeKT-19287Common module compilation: K2MetadataCompiler ignores coroutines state
Tools. Gradle
KT-17150Support 'packagePrefix' option in Gradle pluginKT-19956Support incremental compilation to JS in GradleKT-13918Cannot access internal classes/methods in androidTest source set in an Android library moduleKT-17355UsearchivesBaseNameinstead ofproject.namefor module names, get rid of_mainformainsource setKT-18183Kotlin gradle plugin uses compile task output as "friends directory"KT-19248Documentation suggested way to enable coroutines (gradle) doesn't workKT-19397local.properties file not closed by KotlinProperties.kt
Tools. Incremental Compile
KT-19580IC does not detect non-nested sealed class addition
Tools. J2K
KT-103750xFFFFFFFFFFFFFFFFL conversion issueKT-13552switch-to-when conversion creates broken codeKT-17379Converting multiline expressions creates dangling operationsKT-18232Kotlin code converter misses annotationsKT-18786Convert Kotlin to Java generates error: Variable cannot be initialized before declarationKT-19523J2K produce invalid code when convert some numbers
Tools. JPS
KT-17397Kotlin JPS Builder can mark dirty files already compiled in roundKT-19176Java 9: JPS build fails for Kotlin source referring exported Kotlin class from another module: "unresolved supertypes: kotlin.Any"KT-19833Cannot access class/superclass from SDK on compilation of JDK 9 module together with non-9 module
Tools. REPL
KT-11369REPL: Ctrl-C should interrupt the input, Ctrl-D should quit
Tools. kapt
KT-19996Error with 'kotlin-kapt' plugin and dagger2, clean project required
1.1.4-3
KT-18062SamWithReceiver compiler plugin not used by IntelliJ for .kt filesKT-18497Gradle Kotlin Plugin does not work with the gradle java-library pluginKT-19276Console spam when opening idea-community project in debug IDEAKT-19433[Coroutines + Kapt3] Assertion failed in ClassClsStubBuilder.createNestedClassStubKT-19680kapt3 & Parcelize: Compilation errorKT-19687Kotlin 1.1.4 noarg plugin breaks with sealed classesKT-19700Kapt error after updating to 1.1.4 - stub adds type parameters where there are noneKT-19713Mocking of final named suspend methods with mockito failsKT-19729kapt3: not always including argument to @javax.inject.Named in generated stubsKT-19759"Convert to expression body" is not shown in 162 / AS23 branches for multi-linersKT-19767NPE caused by Map<String, Boolean>?.getKT-19769PerModulePackageCacheService calls getOrderEntriesForFile() for every file, even those that can't affect Kotlin resolveKT-19774Provide an opt-out flag for separate classes directories (Gradle 4.0+)KT-19847if an imported library already exists it should be redetected during gradle import
1.1.4-2
KT-19679CompilationException: Couldn't inline method call 'methodName' into...KT-19690Lazy field in interface default method leads to ClassFormatErrorKT-19716QuickdocCtrl+Qbroken while browsing code completion listCtrl-SpaceKT-19717Library kind incorrectly detected for vertx-web in Kotlin projectKT-19723"Insufficient maximum stack size" during compilation
1.1.4
Android
New Features
KT-11048Android Extensions: cannot evaluate expression containing generated properties
Performance Improvements
KT-10542Android Extensions: No cache for ViewsKT-18250Android Extensions: Allow to use SparseArray as a View cache
Fixes
KT-11051Android Extensions: completion of generated properties is unclear for ambiguous idsKT-14086Android-extensions not generated using flavors dimensionKT-14912Lint: "Code contains STOPSHIP marker" ignores suppress annotationKT-15164Kotlin Lint: problems in delegate expression are not reportedKT-16934Android Extensions fails to compile when importing synthetic properties for layouts in other modulesKT-17641Problem with Kotlin Android Extensions and Gradle syntaxKT-17783Kotlin Lint: quick fixes to add inapplicable @RequiresApi and @SuppressLint make code incompilableKT-17786Kotlin Lint: "Surround with if()" quick fix is not suggested for single expressionget()KT-17787Kotlin Lint: "Add @TargetApi" quick fix is not suggested for top level property accessorKT-17788Kotlin Lint: "Surround with if()" quick fix corrupts code in case of destructuring declarationKT-17890[kotlin-android-extensions] Renaming layout file does not rename importKT-18012Kotlin Android Extensions generates@NotNullproperties for views present in a configuration and potentially missing in anotherKT-18545Accessing to synthetic properties on smart casted Android components crashed compiler
Compiler
New Features
KT-10942Support meta-annotations from JSR 305 for nullability qualifiersKT-14187Redundant "is" check is not detectedKT-16603Supportinline suspendfunctionKT-17585Generate state machine for named functions in their bodies
Performance Improvements
KT-3098Generate efficient comparisonsKT-6247Optimization for 'in' and '..'KT-7571Don't box Double instance to call hashCode on Java 8KT-9900Optimize range operations for 'until' extension from stdlibKT-11959Unnceessary boxing/unboxing due to Comparable.compareToKT-12158Optimize away boxing when comparing nullable primitive type value to primitive valueKT-13682Reuse StringBuilder for concatenation and string interpolationKT-14323IntelliJ lockup when using Apache Spark UDFKT-14375Kotlin compiler failure with spark when creating a flexible type for scala.Function22KT-15235Escaped characters in template strings are generating inefficient implementationsKT-17280Inline constant expressions in string templatesKT-17903Generate 'for-in-indices' as a precondition loopKT-18157Optimize out trivial INSTANCEOF checksKT-18162Do not check nullability assertions twice for effectively same valueKT-18164Do not check nullability for values that have been already checked with !!KT-18478Unnecessary nullification of bound variablesKT-18558Flatten nested string concatenationKT-18777Unnecessary boolean negation generated for 'if (expr !in range)'
Fixes
KT-1809Confusing diagnostics when wrong number of type arguments are specified and there are several callee candiatesKT-2007Improve diagnostics when + in not resolved on a pair of nullable intsKT-5066Bad diagnostic message for ABSTRACT_MEMBER_NOT_IMPLEMENTED for (companion) objectKT-5511Inconsistent handling of inner enumKT-7773Disallow to explicitly extend Enum classKT-7975Unclear error message when redundant type arguments suppliedKT-8340vararg in a property setter must be an errorKT-8612Incorrect error message for var extension property without getter or setterKT-8829Type parameter of a class is not resolved in the constructor parameter's default valueKT-8845Bogus diagnostic on infix operation "in"KT-9282Improve diagnostic on overload resolution ambiguity when a nullable argument is passed to non-null parameterKT-10045Not specific enough compiler error message in case of trying to call overloaded private methodsKT-10164Incorrect error message for external inline methodKT-10248Smart casts: Misleading error on overloaded function callKT-10657Confusing diagnostic when trying to invoke value as a functionKT-10839Weird diagnostics on callable reference of unresolved classKT-11119Confusing error message when overloaded method is called on nullable receiverKT-12408Generic information lost for override valuesKT-12551Report "unused expression" on unused bound double colon expressionsKT-13749Error highlighting range for no 'override' modifier is bigger than neededKT-14598Do not report "member is final and cannot be overridden" when overriding something from final classKT-14633"If must have both main and else branches" diagnostic range is too highKT-14647Confusing error message "'@receiver:' annotations could be applied only to extension function or extension property declarations"KT-14927TCE in QualifiedExpressionResolverKT-15243Report deprecation on usages of type alias expanded to a deprecated classKT-15804Prohibit having duplicate parameter names in functional typesKT-15810destructuring declarations don't work in scripts on the top levelKT-15931IllegalStateException: ClassDescriptor of superType should not be null: T by aKT-16016Compiler failure with NO_EXPECTED_TYPEKT-16448Inline suspend functions with inlined suspend invocations are miscompiled (VerifyError, ClassNotFound)KT-16576Wrong code generated with skynet benchmarkKT-17007Kotlin is not optimizing away unreachable code based on const valsKT-17188Do not propose to specify constructor invocation for classes without an accessible constructorKT-17611Unnecessary "Name shadowed" warning on parameter of local function or local class memberKT-17692NPE in compiler when calling KClass.java on function result of type UnitKT-17820False "useless cast" when target type is flexibleKT-17972Anonymous class generated from lambda captures its outer and tries to set nonexistent this$0 field.KT-18029typealias not working in .kts filesKT-18085Compilation Error:Kotlin: [Internal Error] kotlin.TypeCastException: null cannot be cast to non-null type com.intellij.psi.PsiElementKT-18115Generic inherited classes in different packages with coroutine causes java.lang.VerifyError: Bad local variable typeKT-18189Incorrect generic signature generated for implementation methods overriding special built-insKT-18234Top-level variables in script aren't local variablesKT-18413Strange compiler error - probably incremental compilerKT-18486Superfluos generation of suspend function state-machine because of inner suspension of different coroutineKT-18598Report error on access to declarations from non-exported packages and from inaccessible modules on Java 9KT-18698java.lang.IllegalStateException: resolveToInstruction: incorrect index -1 for label L12 in subroutineKT-18702Proguard warning with Kotlin 1.2-M1KT-18728Integer method reference application fails with CompilationException: Back-end (JVM) Internal errorKT-18845Exception on building gradle project with collection literalsKT-18867Getting constant "VerifyError: Operand stack underflow" from Kotlin pluginKT-18916Strange bytecode generated for 'null' passed as SAM adapter for Java interfaceKT-18983Coroutines: miscompiled suspend for loop (local variables are not spilled around suspension points)KT-19175Compiler generates different bytecode when classes are compiled separately or togetherKT-19246Using generic inline function inside inline extension function throws java.lang.VerifyError: Bad return typeKT-19419Support JSR 305 meta-annotations in libraries even when JSR 305 JAR is not on the classpath
IDE
New Features
KT-2638Inline property (with accessors) refactoringKT-7107Rename refactoring for labelsKT-9818Code style for method expression bodiesKT-11994Data flow analysis support for Kotlin in IntelliJKT-14126Code style wrapping options for enum constantsKT-14929Deprecated ReplaceWith for type aliasesKT-14950Code Style: Wrapping and Braces / "Local variable annotations" setting could be supportedKT-14965"Configure Kotlin in project" should support build.gradle.ktsKT-15504Add code style options to limit number of blank linesKT-16558Code Style: Add Options for "Spaces Before Parentheses"KT-18113Add new line options to code style for method parametersKT-18605Option to not use continuation indent in chained callsKT-18607Options to put blank lines between 'when' branches
Performance Improvements
KT-14606Code completion calculates decompiled text when building lookup elements for PSI from compiled classesKT-17751Kotlin slows down java inspections big timeKT-1783510s hang on IDEA project openKT-18842Very slow typing in certain files of Kotlin projectKT-18921Configure library kind explicitly
Fixes
KT-6610Language injection doesn't work with String InterpolationKT-8893Quick documentation shows type for top-level object-type elements, but "no name provided" for local onesKT-9359"Accidental override" error message does not mention class (type) namesKT-10736Highlighting usages doesn't work for synthetic properties created by the Android ExtensionsKT-11980Spring: Generate Constructor, Setter Dependency in XML for Kotlin class: IOE at LightElement.add()KT-12123Formatter: always indent after newline in variable initializationKT-12910spring: create init-method/destroy-method from usage results in IOEKT-13072Kotlin struggles to index JDK 9 classesKT-13099formatting in angle brackets ignored and not fixedKT-14083Formatting of where clasusesKT-14271Value captured in closure doesn't always get highlightedKT-14561Use regular indent for the primary constructor parametersKT-14974"Find Usages" hangs in ExpressionsOfTypeProcessorKT-15093Navigation to library may not work if there's another module in same project that references same jar via a different libraryKT-15270Quickfix to migrate from @native***KT-16352Create from usage inserts extra space in first stepKT-16725Formatter does not fix spaces before square bracketsKT-16999"Parameter info" shows duplicates on toStringKT-17357BuiltIns for module build with project LV settings, not with facet module settingsKT-17394Core formatting is wrong for expression body propertiesKT-17759Breakpoints not working in JSKT-17771Kotlin IntelliJ plugin should resolve Gradle script classpath asynchronouslyKT-17818Formatting of long constructors is inconsistent with Kotlin code conventionsKT-17849Automatically insert trimMargin() or trimIndent() on enter in multi-line stringsKT-17855Main function is shown as unusedKT-17894StringtrimIndentsupport inserts wrong indent in some casesKT-17942Enter in multiline string with injection doesn't add a proper indentKT-17956Type hints for properties that only consist of constructor calls don't add much valueKT-18006Copying part of string literal with escape sequences converts this sequences to special charactersKT-18030Parameters hints:kotlin.arrayOf(elements)should be on the blacklist by defaultKT-18059Kotlin Lint: False positive error "requires api level 24" for interface method with bodyKT-18149PIEAE "Element class CompositeElement of type REFERENCE_EXPRESSION (class KtNameReferenceExpressionElementType)" at PsiInvalidElementAccessException.createByNode()KT-18151Do not import jdkHome from Gradle/Maven modelKT-18158Expand selection should select the comment after expression getter on the same lineKT-18186Create function from usage should infer expected return typeKT-18221AE at org.jetbrains.kotlin.analyzer.ResolverForProjectImpl.descriptorForModuleKT-18269Find Usages fails to find operator-style usages ofinvoke()defined as extensionKT-18298spring: strange menu at "Navige to the spring bean" gutterKT-18309Join lines breaks codeKT-18373Facet: can't change target platform between JVM versionsKT-18376Maven import fails with NPE at ArgumentUtils.convertArgumentsToStringList() ifjvmTargetsetting is absentKT-18418Generate equals and hashCode should be available for classes without propertiesKT-18429Android strings resources folding false positivesKT-18444Type hints don't work for destructuring declarationsKT-18475Gradle/IntelliJ sync can result in IntelliJ modules getting gradle artifacts added to the classpath, breaking compilationKT-18479Can't find usages of invoke operator with vararg parameterKT-18501Quick Documentation doesn't show when @Supress("unused") is above the javadocKT-18566Long find usages for operators when there are several operators for the same typeKT-18596"Generate hashCode" produces poorly formatted codeKT-18725Android:kotlin-languagefacet disappears on reopening the projectKT-18974Type hints shouldn't appear for negative literalsKT-19054Lags in typing in string literalKT-19062Member navigation doesn't work in expression bodies of getters with inferred property typeKT-19210Command line flags like -Xload-jsr305-annotations have no effect in IDEKT-19303Project language version settings are used to analyze libraries, disabling module-specific analysis flags like -Xjsr305-annotations
IDE. Completion
KT-8208Support static member completion with not-imported-yet classesKT-12104Smart completion does not work with "invoke" when receiver is expressionKT-17074Incorrect autocomplete suggestions for contexts affected by @DslMarkerKT-18443IntelliJ not handling default constructor argument from companion object wellKT-19191Disable completion binding context caching by default
IDE. Debugger
KT-14845Evaluate expression freezes debugger while evaluating filter, for time proportional to number of elements in collection.KT-17120Evaluate expression: cannot find local variableKT-18453Support 'Step over' and 'Force step over' action for suspended callsKT-18577Debug: Smart Step Into does not enter functions passed as variable or parameter: "Method invoke() has not been called"KT-18632Debug: Smart Step Into does not enter functions passed as variable or parameter when signature of lambda and parameter doesn't matchKT-18949Can't stop on breakpoint after call to inline in Android StudioKT-1940330s complete hangs of application on breakpoints stop attempt
IDE. Inspections and Intentions
New Features
KT-12119Intention to replace .addAll() on a mutable collection with +=KT-13436Replace 'when' with return: handle case when all branches jump out (return Nothing)KT-13458Cascade "replace with return" for if/when expressionsKT-13676Add better quickfix for 'let' and 'error 'only not null or asserted calls are allowed'KT-14648Add quickfix for @receiver annotation being applied to extension member instead of extension typeKT-14799Add inspection to simplify successive null checks into safe-call and null checkKT-14900"Lift return out of when/if" should work with control flow expressionsKT-15257JS: quickfix to migrate from @native to externalKT-15368Add intention to convert Boolean? == true to ?: false and vice versaKT-15893"Array property in data class" inspection could have a quick fix to generateequals()andhashcode()KT-15958Inspection to inline "unnecessary" variablesKT-16063Inspection to suggest converting block body to expression bodyKT-17198Inspection to replace filter calls followed by functions with a predicate variantKT-17580Add remaning branches intention should be available for sealed classesKT-17583Support "Declaration access can be weaker" inspection for kotlin propertiesKT-17815Quick-fix "Replace with safe call & elvis"KT-17842Add quick-fix for NO_CONSTRUCTOR errorKT-17895Inspection to replace 'a .. b-1' with 'a until b'KT-17919Add "Simplify if" intention/inspectionKT-17920Add intention/inspection removing redundant spread operator for arrayOf callKT-17970Intention actions to format parameter/argument list placing each on separate lineKT-18236Add inspection for potentially wrongly placed unary operatorsKT-18274Add inspection to replace map+joinTo with joinTo(transform)KT-18386Inspection to detect safe calls of orEmpty()KT-18438Add inspection for empty ranges with start > endInclusiveKT-18460Add intentions to apply De Morgan's laws to conditionsKT-18516Add inspection to detect & remove redundant UnitKT-18517Provide "Remove explicit type" inspection for some obvious casesKT-18534Quick-fix to add empty brackets after primary constructorKT-18540Add quickfix to create data class property from usage in destructuring declarationKT-18615Inspection to replace if with three or more options with whenKT-18749Inspection for useless operations on collection with not-null elementsKT-18830"Lift return out of try"
Fixes
KT-11906Spring: "Create getter / setter" quick fixes cause IOE at LightElement.add()KT-12524Wrong "redundant semicolon" for semicolon inside an enum class before the companion object declarationKT-13870Wrong caption "Change to property access" for Quick Fix to convert class instantiation to object referenceKT-13886Unused variable intention should remove constant initializerKT-14092"Make " intention inserts modifier between annotation and class keywordsKT-14093"Make " intention available only on modifier when declaration already have a visibility modifierKT-14643"Add non-null asserted call" quickfix should not be offered on literal null constantsKT-15242Create type from usage should include constraints into base typesKT-16046Globally unused typealias is not marked as suchKT-16069"Simplify if statement" doesn't work in specific caseKT-17026"Replace explicit parameter" should not be shown on destructuring declarationKT-17092Create function from usage works incorrectly with ::class expressionKT-17353"Create type parameter from usage" should not be offered for unresolved annotationsKT-17537Create from Usage should suggest Boolean return type if function is used in if conditionKT-17623"Remove explicit type arguments" is too conservative sometimesKT-17651Create property from usage should make lateinit varKT-17726Nullability quick-fixes operate incorrectly with implicit nullable receiverKT-17740CME at MakeOverriddenMemberOpenFix.getText()KT-18506Inspection on final Kotlin spring components is false positiveKT-17823Intention "Make private" and friends should respect modifier orderKT-17917Superfluos suggestion to add replaceWith for DeprecationLevel.HIDDENKT-17954Setting error severity on "Kotlin | Function or property has platform type" does not show up as error in IDEKT-17996Android Studio Default Constructor Command Removes Custom SetterKT-18033Do not suggest to cast expression to non-nullable type when it's the same as !!KT-18035Quickfix for "CanBePrimaryConstructorProperty" does not work correctly with vararg constructor propertiesKT-18044"Move to class body" intention: better placement in the bodyKT-18074Suggestion in Intention 'Specify return type explicitly' doesn't support generic type parameterKT-18120Recursive property accessor gives false positivesKT-18148Incorrect, not working quickfix - final and can't be overriddenKT-18160Circular autofix actions between redundant modality and non-final variable with allopen pluginKT-18194"Protected in final" inspection works incorrectly with all-openKT-18195"Redundant modality" is not reported with all-openKT-18197Redundant "make open" for abstract class member with all-openKT-18253Wrong location of "Redundant 'toString()' call in string template" quickfixKT-18347Nullability quickfixes are not helpful when using invoke operatorKT-18368"Cast expression x to Type" fails for expression inside argument listKT-18375Backticked function name is suggested to be renamed to the same nameKT-18385Spring: Generate Dependency causes Throwable "AWT events are not allowed inside write action"KT-18407"Move property to constructor" action should not appear on properties declared in interfacesKT-18425Make intention inserts modifier at wrong position for sealed classKT-18529Add '!!' quick fix applies to wrong expression on operation 'in'KT-18642Remove unused parameter intention transfers default value to another parameterKT-18683Wrong 'equals' is generated for Kotlin JS projectKT-18709"Lift assignment out of if" changes semanticsKT-18711"Lift return out of when" changes semantics for functional typeKT-18717Report MemberVisibilityCanBePrivate on visibility modifier if presentKT-18722Correct "before" sample in description for intention Convert to enum classKT-18723Correct "after" sample for intention Convert to applyKT-18852"Lift return out of when" does not work for exhaustive when without elseKT-18928In IDE, "Replace 'if' expression with safe access expression incorrectly replace expression when using propertyKT-18954Kotlin plugin updater activates in headless modeKT-18970Do not report "property can be private" on JvmField propertiesKT-19232Replace Math.min with coerceAtMost intention is brokenKT-19272Do not report "function can be private" on JUnit 3 test methods
IDE. Refactorings
New Features
KT-4379Support renaming import aliasKT-8180Copy ClassKT-17547Refactor / Move: Problems Detected / Conflicts in View: only referencing file is mentioned
Fixes
KT-9054Copy / pasting a Kotlin file should bring up the Copy Class dialogKT-13437Change signature replaces return type with Unit when it's not requestedKT-15859Renaming variables or functions with backticks removes the backticksKT-16180Opened decompiled editor blocks refactoring of involved elementKT-17062Field/property inline refactoring works incorrectly with Kotlin & Java usagesKT-17128Refactor / Rename in the last position of label name throws Throwable "PsiElement(IDENTIFIER) by com.intellij.refactoring.rename.inplace.MemberInplaceRenamer" at InplaceRefactoring.buildTemplateAndStart()KT-17489Refactor / Inline Property: cannot inline val with the following plusAssignKT-17571Refactor / Move warns about using private/internal class from Java, but this is not related to the moveKT-17622Refactor / Inline Function loses type argumentsKT-18034Copy Class refactoring replaces all usages of the class with the new one!KT-18076Refactor / Rename on alias of Java class suggests to select between refactoring handlersKT-18096Refactor / Rename on import alias usage of a class member element tries to rename the element itselfKT-18098Refactor / Copy can't generate proper import if original code uses import alias of java memberKT-18135Refactor: no Problems Detected for Copy/Move source using platform type to another platform's moduleKT-18200Refactor / Copy is enabled for Java source selected with Kotlin file, but not for Java source selected with Kotlin classKT-18241Refactor / Copy (and Move) fails for chain of lambdas and invoke()'s with IllegalStateException: "No selector for PARENTHESIZED" at KtSimpleNameReference.changeQualifiedName()KT-18325Renaming a parameter name in one implementation silently rename it in all implementationsKT-18390Refactor / Copy called for Java class opens only Copy File dialogKT-18699Refactor / Copy, Move loses necessary parenthesesKT-18738Misleading quick fix message for an 'open' modifier on an interface memberKT-19130Refactor / Inline val: "Show inline dialog for local variables" setting is ignored
JavaScript
Performance Improvements
KT-18331JS: compilation performance degrades fast when inlined nested labels are used
Fixes
KT-4078JS sourcemaps should contain relative path. The relative base & prefix should be set from project/module preferencesKT-8020JS: String? plus operator crashes on runtimeKT-13919JS: Source map weirdnessKT-15456JS: inlining doesn't work for array constructor with size and lambdaKT-16984KotlinJS - 1 > 2 > false causes unhandled javascript exceptionKT-17285JS: wrong result when call function with default parameter overridden by delegation by function from another interfaceKT-17445JS: minifier for Kotlin JS appsKT-17476JS: Some symbols in identifiers compile, but are not legalKT-17871JS: spread vararg call doesn't work on functions imported with @JsModuleKT-18027JS: Illegal symbols are possible in backticked labels, but cause crash in runtime and malformed js codeKT-18032JS: Illegal symbols are possible in backticked package names, but cause crash in runtime and malformed js codeKT-18169JS: reified generic backticked type name containing non-identifier symbols causes malformed JS and runtime crashKT-18187JS backend does not copy non-abstract method of interface to implementing class in some casesKT-18201JS backend generates wrong code for inline function which calls non-inline function from another moduleKT-18652JS: Objects from same package but from different libraries are incorrectly accessed
Libraries
KT-18526Small typo in documentation for kotlin-stdlib / kotlin.collections / retainAllKT-18624JS: Bad return type for Promise.allKT-18670Incorrect documentation of MutableMap.valuesKT-18671Provide implementation for CoroutineContext.Element functions.
Reflection
KT-15222Support reflection for local delegated propertiesKT-14094IllegalAccessException when try to get members annotated by private annotation with parameterKT-16399Embedded Tomcat fails to load Class-Path: kotlin-runtime.jar from kotlin-reflect-1.0.6.jarKT-16810Do not include incorrect ExternalOverridabilityCondition service file into kotlin-reflect.jarKT-18404“KotlinReflectionInternalError: This callable does not support a default call” when function or constructor has more than 32 parametersKT-18476KClass<*>.superclasses does not contain Any::classKT-18480Kotlin Reflection unable to call getter of protected read-only val with custom getter from parent class
Tools
KT-18245NoArg: IllegalAccessError on instantiating sealed class child via Java reflectionKT-18874Crash during compilation after switching to 1.1.3-release-IJ2017.2-2KT-19047Private methods are final event if used with the all-open-plugin.
Tools. CLI
KT-17297Report error when CLI compiler is not being run under Java 8+KT-18599Support -Xmodule-path and -Xadd-modules arguments for modular compilation on Java 9KT-18794kotlinc-jvm prints an irrelevant error message when a JVM Home directory does not existKT-3045Report error instead of failing with exception on "kotlinc -script foo.kt"KT-18754Rename CLI argument "-module" to "-Xbuild-file"KT-18927run kotlin app crashes eclipse
Tools. Gradle
KT-10537Gradle plugin doesn't pick up changed project.buildDirKT-17031JVM crash on in-process compilation in Gradle with debugKT-17035Gradle Kotlin Plugin can not compile tests calling source internal fields/variables if compileJava dumps classes to a different directory and then copied classes are moved to sourceSets.main.output.classesDir by a different taskKT-17197Gradle Kotlin plugin does not wire task dependencies correctly, causing compilation failuresKT-17618Pass freeCompilerArgs to compiler unchangedKT-18262kotlin-spring should also open @SpringBootTest classesKT-18647Kotlin incremental compile cannot be disabled.KT-18832Java version parsing error with Gradle Kotlin plugin + JDK 9
Tools. J2K
KT-10762J2K removes empty lines from Doc-commentsKT-13146J2K goes into infinite loop with anonymous inner class that references itselfKT-15761Converting Java to Kotlin corrupts string which includes escaped backslashKT-16133Converting switch statement inserts dead code (possibly as a false positive for fall-through)KT-16142Kotlin Konverter produces empty line in KdocKT-18038Java to Kotlin converter messes up empty lines while converting from JavaDoc to KDocKT-18051Doesn't work the auto-convert Java to Kotlin in Android Studio 3.0KT-18141J2K changes semantic when while does not have a bodyKT-18142J2K changes semantics whenifdoes not have a bodyKT-18512J2K Incorrect null parameter conversion
Tools. JPS
KT-14848JPS: invalid compiler argument causes exception (see also EA-92062)KT-16057Provide better error message when the same compiler argument is set twiceKT-19155IllegalArgumentException: Unsupported kind: PACKAGE_LOCAL_VARIABLE_LIST in incremental compilation
Tools. Maven
KT-18022kotlin maven plugin - adding dependencies overwrites arguments.pluginClassPath preventing kapt goal from runningKT-18224Maven compilation with JDK 9 fails with InaccessibleObjectException
Tools. REPL
KT-5620REPL: Support destructuring declarationsKT-12564Kotlin REPL Doesn't Perform Many ChecksKT-15172REPL: function declarations that contain empty lines throw errorKT-18181REPL: support non-headless execution for Swing codeKT-18349REPL: do not show warnings when there are errors
Tools. kapt
KT-18682Kapt: Anonymous class types are not rendered properly in stubsKT-18758Kotlin 1.1.3 / Kapt fails with gradleKT-18799Kapt3, IC: Kapt does not generate annotation value for constant values in documented typesKT-19178Kapt: Build dependencies from 'kapt' configuration should go into the 'kaptCompile' task dependenciesKT-19179Kapt: Gradle silently skips 'kotlinKapt' task sometimesKT-19211Kapt3: Generated classes output is not synchronized with Java classes output in pure Java projects (Gradle 4+)
1.1.3-2
Fixes
- Noarg compiler plugin reverted to 1.1.2 behavior: by default, it will not run any initialization code
from the generated default constructor. If you want to run initializers, you need to enable
the corresponding option as described in the documentation.
Note that if a @noarg class has initializers that depend on constructor parameters, you will get incorrect
compiler behavior, so you shouldn't enable this option if you have such classes in your project.
This resolves
KT-18667andKT-18668. KT-18689Incorrect bytecode generated when passing a bound member reference to an inline function with default argument valuesKT-18377Syntax error while generating kapt stubsKT-18411Slow debugger step-in into inlined functionKT-18687Deadlock in resolve with Kotlin 1.1.3KT-18726Frequent UI hangs in 2017.2 EAPs
1.1.3
Android
New Features
KT-12049Kotlin Lint: "Missing Parcelable CREATOR field" could suggest "Add implementation" quick fixKT-16712Show warning in IDEA when using Java 1.8 api in AndroidKT-16843Android: provide gutter icons for resources like colors and drawablesKT-17389Implement Intention "Add Activity / BroadcastReceiver / Service to manifest"KT-17465Add intentions Add/Remove/Redo parcelable implementation
Fixes
KT-14970ClassCastException: butterknife.lint.LintRegistry cannot be cast to com.android.tools.klint.client.api.IssueRegistryKT-17287Configure kotlin in Android Studio: don't show menu Choose Configurator with single choiceKT-17288Android Studio: please remove menu item Configure Kotlin (JavaScript) in ProjectKT-17289Android Studio: Hide "Configure Kotlin" balloon if Kotlin is configured from a kt file bannerKT-17291Android Studio 2.4: Cannot get property 'metaClass' on null object error after Kotlin configuringKT-17610"Unknown reference: kotlinx"
Compiler
New Features
KT-11167Support compilation against JRE 9KT-17497Warn about redundant else branch in exhaustive when
Performance Improvements
KT-7931Optimize iteration over strings/charsequences on JVMKT-10848Optimize substitution of inline function with default parametersKT-12497Optimize inlined bytecode for functions with default parametersKT-17342Optimize control-flow for case of many variablesKT-17562Optimize KtFile::isScript
Fixes
KT-4960Redeclaration is not reported for type parameters of interfacesKT-5160No warning when a lambda parameter hides a variableKT-5246is check fails on cyclic type parameter boundsKT-5354Wrong label resolution when label name clash with fun nameKT-7645Prohibit default value forcatch-block parameterKT-7724Can never import private memberKT-7796Wrong scope for default parameter value resolutionKT-7984Unexpected "Unresolved reference" in a default value expression in a local functionKT-7985Unexpected "Unresolved reference to a type parameter" in a default value expression in a local functionKT-8320It should not be possible to catch a type parameter typeKT-8877Automatic labeling doesn't work for infix callsKT-9251Qualified this does not work with labeled function literalsKT-9551False warning "No cast needed"KT-9645Incorrect inspection: No cast NeededKT-9986'null as T' should be unchecked castKT-10397java.lang.reflect.GenericSignatureFormatError when generic inner class is mentioned in function signatureKT-11474ISE: Requested A, got foo.A in JavaClassFinderImpl on Java file with package not matching directoryKT-11622False "No cast needed" when ambiguous call because of smart castKT-12245Code with annotation that has an unresolved identifier as a parameter compiles successfullyKT-12269False "Non-null type is checked for instance of nullable type"KT-12683A problem withisoperator and non-reified type-parametersKT-12690USELESS_CAST compiler warning may break code when fix is appliedKT-13348Report useless cast on safe cast from nullable type to the same not null typeKT-13597No check for accessing final field in local object in constructorKT-13997Incorrect "Property must be initialized or be abstract" error for property with external accessorsKT-14381Possible val reassignment not detected inside init blockKT-14564java.lang.VerifyError: Bad local variable typeKT-14801Invoke error message if nested class has the same name as a function from base classKT-14977IDE doesn't warn about checking null value of variable that cannot be nullKT-15085Label and function naming conflict is resolved in unintuitive wayKT-15161False warning "no cast needed" for array creationKT-15480Cannot destruct a list when "if" has an "else" branchKT-15495Internal typealiases in the same module are inaccessible on incremental compilationKT-15566Object member imported in file scope used in delegation expression in object declaration should be a compiler errorKT-16016Compiler failure with NO_EXPECTED_TYPEKT-16426Return statement resolved to function instead of property getterKT-16813Anonymous objects returned from private-in-file members should behave as for private class membersKT-16864Local delegate + ad-hoc object leads to CCEKT-17144Breakpoint insidewhenKT-17149Incorrect warning "Kotlin: This operation has led to an overflow"KT-17156No re-parse after lambda was converted to blockKT-17318Typo in DSL Marker messagecantKT-17384break/continue expression in inlined function parameter argument causes compilation exceptionKT-17457Suspend + LongRange couldn't transform method node issue in Kotlin 1.1.1KT-17479val reassign is allowed via explicit this receiverKT-17560Overload resolution ambiguity on semi-valid class-files generated by ScalaKT-17572try-catch expression in inlined function parameter argument causes compilation exceptionKT-17573try-finally expression in inlined function parameter argument fails with VerifyErrorKT-17588Compiler error while optimizer tries to get rid of captured variableKT-17590conditional return in inline function parameter argument causes compilation exceptionKT-17591non-conditional return in inline function parameter argument causes compilation exceptionKT-17613'this' expression referring to deprecated class instance is highlighted as deprecated in IDEKT-18358Keep smart pointers instead of PSI elements in JavaElementImpl and its descendants
IDE
New Features
KT-7810Separate icon for abstract classKT-8617Recognize TODO method usages and highlight them same as TODO-commentKT-12629Add rainbow/semantic-highlighting for local variablesKT-14109support parameter hints in idea pluginKT-16645Support inlay type hints for implicitly typed vals, properties, and functionsKT-17807Add Smart Enter processor for object expessions
Performance Improvements
KT-16995Typing during in-place refactorings is impossibly laggyKT-17331Frequent long editor freezesKT-17383Slow editing in Kotlin files If breadcrumbs are enabled in module with many dependenciesKT-17495Much time spent in LibraryDependenciesCache.getLibrariesAndSdksUsedWith
Fixes
KT-7848When you paste text into a string literal special symbols should be escapedKT-7954'Go to symbol' doesn't show containing declaration for local symbolsKT-9091Sometimes backticks of the method name with spaces are highlighted with rose backgroundKT-10577Refactor / Move Kotlin + Java files adds wrong import in very specific caseKT-12856Import fold region is not updated to include imports added while editing fileKT-14161Navigate to symbol doesn't see local named functionsKT-14601Formatter inserts unnecessary indent before 'else'KT-14639Incorrect name of code style setting: Align in columns 'case' branchesKT-15029"Go to symbol" action doesn't find properties declared in primary constructorsKT-15255Move cursor to a better place when creating a new Kotlin fileKT-15273Kotlin IDE plugin addsimport java.lang.Stringwith "Optimize Imports", making project brokenKT-16159Wrong "Constructor call" highlighting if operator is called on newly created objectKT-16392Gradle/Maven java module: Add framework support/ Kotlin (Java or JavaScript) adds nothingKT-16423Show expression type doesn't work when selecting from the middle of expression with "Expand Selection"KT-16635Do not show kotlin-specific live templates macros for all context typesKT-16755No "Is sublassed by" icon for sealed classKT-16775Rewrite at slice CLASS key: OBJECT_DECLARATION while writing code in IDEKT-16803Suspending iteration is not marked in the gutter by IDEA as suspending invocationKT-17037Editor suggests to importEmptyCoroutineContext.plusfor any unresolved+KT-17046Kotlin facet, Compiler plugins: last line is shown empty when not selectedKT-17088Settings: Kotlin Compiler: "Destination directory" should be enabled if "Copy library runtime files" is on on the dialog openingKT-17094Kotlin facet, additional command line parameters dialog: please provide a titleKT-17138Configure Kotlin in Project: Choose Configurator popup: names could be unifiedKT-17145Kotlin facet: IllegalArgumentException on attempt to show settings common for several javascript kotlin facets with different moduleKindKT-17223Absolute path to Kotlin compiler plugin in IMLKT-17293Project Structure dialog is opened too slow for a project with a lot of empty gradle modulesKT-17304IDEA shows wrong type for expressionsKT-17439Kotlin: 'autoscroll from source' doesn't work in Structure viewKT-17448Regression: Sample ResolveKT-17482Set jvmTarget to 1.8 by default when configuring a project with JDK 1.8KT-17492-jvm-target is ignored by IntelliJKT-17505LazyLightClassMemberMatchingError from collection implementationKT-17517Compiler options specified as properties are not handled by Maven importerKT-17521Quickfix to enable coroutines should work for Maven projectsKT-17525IDE: KNPE at KotlinAddImportActionKt.createSingleImportActionForConstructor() on invalid reference to inner class constructorKT-17578Throwable: "Reported element PsiIdentifier:AnnotationConfiguration is not from the file 'PsiFile:InSource.kt' the inspection 'ImplicitSubclassInspection'"KT-17638ISE in KotlinElementDescriptionProvider.renderShortKT-17698Unknown library format - prevents IDEA from configuring Kotlin JSKT-17714UAST inspection on non-physical elementKT-17722IntelliJ plugin uses wrong JVM target when Kotlin Facet is not configuredKT-17770Kotlin IntelliJ plugin fails to re-index Gradle script classpath after change to thepluginsblockKT-17777Logger$EmptyThrowable: "Facet Kotlin (app) [kotlin-language] not found" at FacetModelImpl.removeFacet()KT-17810Exception from unused import inspection leads to code analysis hangsKT-17821In Kotlin's plugin KotlinJsMetadataVersionIndex loads file with VfsUtilCore.loadTextKT-17840Show expression type onthisshows bogus disambiguationKT-17845Searching for usages of override property in primary constructor doesn't suggest base property searchKT-17847Kotlin facet: strange warning if API version = 1.2KT-17857Java should see classes affected by "allopen" plugin as openKT-17861Setting 'kotlin.experimental.coroutines "enable"' doesn't work for Android projectsKT-17875New Project/Module with Kotlin: on attempt to use libraries from plugin IDE suggests to rewrite themKT-17876New Project/Module with Kotlin: with "Copy to" option only part of jars are copiedKT-17899Navigate to symbol: vararg signatures are indistinguishable from non-vararg onesKT-18070KtLightModifierList.hasExplicitModifier("default") is true for interface method with body
IDE. Completion
New Features
KT-11250Auto-completion for convention function names in 'operator fun' definitionsKT-12293Autocompletion should proposelateinit varin addition tolateinitKT-13673Add 'companion { ... }' code completion opsion
Performance Improvements
KT-10978Kotlin + JOOQ + Intellij performance is unusableKT-16715Typing is very slow since 1.1KT-16850UI freeze for several seconds during inserting selected completion variant
Fixes
KT-13524Completing the keyword 'constructor' before a primary constructor wrongly inserts parenthesesKT-14665No completion for "else" keywordKT-15603Annoying completion when making a primary constructor privateKT-16161Completion of 'onEach' inserts unneeded angular bracketsKT-16856Code completion optimization
IDE. Debugger
KT-15823Breakpoints not work inside crossinline from init of object passed into collectionKT-15854Debugger not able to evaluate internal member functionsKT-16025Step into suspend functions stops at the function endKT-17295Can't stop in kotlin.concurrent.timer lambda parameter
IDE. Inspections and Intentions
New Features
KT-10981Quickfix for INAPPLICABLE_JVM_FIELD to replace with 'const' when possibleKT-14046Add intention to add inline keyword if a function has parameter with noinline and/or crossinline modifierKT-14137Add intention to convert top level val with object expression to objectKT-15903QuickFix to add/remove suspend in hierarchiesKT-16786Intention to add "open" modifier to a non-private method or property in an open classKT-16851Quickfix adding qualifier@callto unallowed 'return' in closuresKT-17053Inspection to detect use of callable reference as a lambda bodyKT-17054Intention/ inspection to convert 'if' with 'is' check to 'as?' with safe callKT-17191Intention to name anonymous (_) parameterKT-17221Inspection for recursive calls in property accessorsKT-17520Quickfix to update language/API version should work for Maven projectsKT-17650Add quickfix inserting 'lateinit' modifier for not-initialized propertyKT-17660Inspection: data class copy without named argument(s)
Fixes
KT-10211"Replace infix call with ordinary call" appears both as a quickfix and as an intention in the pop-upKT-11003Invalid quickfix in companion object for open propertiesKT-12805False positive redundant semicolon after while without block expressionKT-14335Unexpected range of "convert lambda to reference" intentionKT-14435"Use destructuring declaration" should be available as intention even without usagesKT-14443IDEA intention suggest to make a method in an interface finalKT-14820Convert function to property shouldn't insert explicit type if it was inferred previouslyKT-15076Replace if with elvis inspection should not be reported in some complex casesKT-15543"Convert receiver to parameter" refactoring breaks codeKT-15942"Convert to secondary constructor" intention is available for data classKT-16136Wrong type parameter variance suggested if type parameter is used in nested anonymous objectKT-16339Incorrect warning: 'protected' visibility is effectively 'private' in a final classKT-16577"Redundant semicolon" is not reported for semicolon after package statement in file with no importsKT-17079Kotlin: Bad conversion of double comparison to range check if bounds have mixed typesKT-17372Specify explicit lambda signature handles anonymous parameters incorrectlyKT-17404Editor: attempt to pass type parameter as reified argument causes AE "Classifier descriptor of a type should be of type ClassDescriptor" at DescriptorUtils.getClassDescriptorForTypeConstructor()KT-17408"Convert to secondary constructor" intention is available for annotation parametersKT-17503Intention "To raw string literal" should handle string concatenationsKT-17599"Make primary constructor internal" intention is available for annotation classKT-17600"Make primary constructor private" intention is available for annotation classKT-17707"Final declaration can't be overridden at runtime" inspection reports Kotlin classes non final due to compiler pluginKT-17708"Move to class body" intention is available for annotation parametersKT-17762'Convert to range' intention generates inequivalent code for doubles
IDE. Refactorings
Performance Improvements
KT-17234Refactor / Inline on library property is rejected after GUI freeze for a whileKT-17333KotlinChangeInfo retains 132MB of the heap
Fixes
KT-8370"Can't move to original file" should not be an errorKT-8930Refactor / Move preivew: moved element is shown as reference, and its file as subjectKT-9158Refactor / Move preview mentions the package statement of moved class as a usageKT-13192Refactor / Move: to another class: "To" field code completion suggests facade and Java classesKT-13466Refactor / Move: class to upper level: the package statement is not updatedKT-15519KDoc comments for data class values get removed by Change SignatureKT-17211Refactor / Move several files: superfluous FQN is inserted into reference to same file's elementKT-17213Refactor / Inline Function: parameters of lambda as call argument turn incompilableKT-17272Refactor / Inline Function: unused String literal in parameters is kept (while unsed Int is not)KT-17273Refactor / Inline Function: PIEAE: "Element: class org.jetbrains.kotlin.psi.KtCallExpression because: different providers" at PsiUtilCore.ensureValid()KT-17296Refactor / Inline Function: UOE at ExpressionReplacementPerformer.findOrCreateBlockToInsertStatement() for call of multi-statement function in declarationKT-17330Inline kotlin function causes an infinite loopKT-17395Refactor / Inline Function: arguments passed to lambda turns code to incompilableKT-17496Refactor / Move: calls to moved extension function type properties are updated (incorrectly)KT-17515Refactor / Move inner class to another class, Move companion object: disabled in editor, but available in Move dialogKT-17526Refactor / Move: reference to companion member gets superfluous companion name in certain casesKT-17538Refactor / Move: moving file with import alias removes alias usage from codeKT-17545Refactor / Move: false Problems Detected on moving class using parent's protected class, objectKT-18018F5 (for Copy) does not work for Kotlin files anymoreKT-18205Moving multiple classes causes imports to be converted to fully qualified class names
Infrastructure
KT-14988Support running the Kotlin compiler on Java 9KT-17112IncompatibleClassChangeError on invoking Kotlin compiler daemon on JDK 9
JavaScript
Fixes
KT-12926JS: use # instead of @ when linking to sourcemap from generated codeKT-13577Double.hashCode is zero for big numbersKT-15135JS: support friend modulesKT-15484JS: (node): println with object /number argument leads to "TypeError: Invalid data, chunk must be a string or buffer, not object/number"KT-16658JS: Suspend function with default param value in interfaceKT-16717KotlinJs - copy() on data class doesn't work with when there is a secondary constructorKT-16745JS: initialize enum fields before calling companion objects's initializerKT-16951JS: coroutine suspension point is not inserted when inlining suspend function with tail call to another suspend functionKT-16979Kotlin.js : Intellij test and productions sources produce a AMD module with the same nameKT-17067JS: suspendCoroutine not working as expectedKT-17219Hexadecimal literals in js(...) argument are replaced by wrong decimal constantsKT-17281JS: wrong code generated for a recursive call in suspend functionKT-17446JS: incorrect code generated for call tosuspendCoroutineOrReturnwhen the same function calls another suspend functionKT-17540Incorrect inlining optimization ofalso/applyfunctionKT-17700Wrong code generated for 'str += (nullableChar ?: break)'KT-17966JS: Char literal inside of string template
Libraries
KT-17453Array iterators throw IndexOutOfBoundsException instead of NoSuchElementExceptionKT-17635Document String#toIntOfNull may throw an exceptionKT-17686takeLast(n) incorrectly performs drop(n) for Lists without random accessKT-17704Update JavaDoc for ReentrantReadWriteLock.write to put more stress on the fact that to upgrade to write lock, read lock is first released.KT-17853JS: Confusing parameter names in 'Math.atan2`KT-18092Issue using kotlin-reflect with proguard: missing annotations Mutable and ReadOnlyKT-18210JS String::match(regex) should have nullable return type
Reflection
KT-17055NPE in hashCode and equals of kotlin.jvm.internal.FunctionReference (on local functions)KT-17594Cache the result of val Class.kotlin: KClassKT-18494KNPE from Kotlin reflection (sometimes) in UtilKt.toJavaClass
Tools
KT-16692No-Arg-Constructor plugin should generate code to initialize delegates
Tools. CLI
KT-17696Allow kotlinc to take friend modules as .jar filesKT-17697Allow kotlinc to take .java files as argumentsKT-9370not possible to pass an argument that starts with "-" to a script using kotlincKT-17100"kotlin" launcher script: do not add current working directory to classpath if explicit "-classpath" is specifiedKT-17140Warning "classpath entry points to a file that is not a jar file" could just be disabledKT-17264Change the format of advanced CLI arguments ("-X...") to require value after "=", not a whitespaceKT-18180Modules not exported by java.se are not readable when compiling against JRE 9
Tools. Gradle
KT-15151Kapt3: Support incremental compilation of Java stubsKT-16298Gradle: IOException "Parent file doesn't exist:/.../artifact-difference.tab.len" on non-incremental clean after incremental buildKT-17681Support the new API of Android Gradle plugin (2.4.0+)KT-17936Circular dependency between gradle tasks dataBindingExportBuildInfoDebug and compileDebugKotlinKT-17960Improve test of memory leak with Gradle daemonKT-18047Gradle kotlin options should use unset value as default for languageVersion and apiVersion
Tools. J2K
KT-16754J2K: Apply quick-fixes from EDT thread onlyKT-16816Java To Kotlin bug: if + chained assignment doesn't include bracketsKT-17230J2K DeadlockKT-17712Exception in J2K during InlineCodegen convertion: com.intellij.psi.impl.source.JavaDummyHolder cannot be cast to com.intellij.psi.PsiJavaFile
Tools. JPS
KT-16568modulesWhoseInternalsAreVisible in ModuleDependencies are not filled in for JS projectsKT-17387When compiling in the IDE, progress tracker says "configuring the compilation environment" when it clearly isn'tKT-17665JPS: Kotlin: The '-d' option with a directory destination is ignored because '-module' is specifiedKT-17801Unresolved supertypes from JRE on JDK 9 in JPS
Tools. Maven
KT-17093Import from maven: please provide a special tag for coroutine optionKT-10028Support parallel builds in mavenKT-15050Random build failures using maven 3 (multi-thread) + bambooKT-15318Intermitent Kotlin compilation errorsKT-16283Maven compiler plugin warns, "Source root doesn't exist"KT-16743Update configuration options in Kotlin Maven pluginKT-16762Maven: JS compiler option main is missing
Tools. REPL
KT-5822Exception on package directive in REPLKT-10060REPL: Cannot execute more than 255 linesKT-17365REPL crash when referencing a variable whose definition threw an exception
Tools. kapt
KT-17245Kapt: Javac compiler arguments can't be specified in GradleKT-17418"The following options were not recognized by any processor: '[kapt.kotlin.generated]'" warning from Javac shouldn't be shown even if no processor supports the generated annotationKT-17456kapt3: NoClassDefFound com/sun/tools/javac/util/ContextKT-17567Kapt (1.1.2-eap-77) generates invalid Java stub for internal classKT-17620Kapt3 IC: avoid running AP when API is not changedKT-17959Kapt3 doesn't preserve method parameter names for abstract methodsKT-17999Cannot use KAPT3 1.1.2-4 in Android Studio java libs (null TypeCastException to WrappedVariantData<*> on Gradle Sync)
1.1.2
Compiler
Front-end
KT-16113Support destructuring parameters of suspend lambda with suspend componentXKT-3805Report error on double constants out of rangeKT-6014Wrong ABSTRACT_MEMBER_NOT_IMPLEMENTED for toString implemented by delegationKT-8959Missing diagnostic when trying to call inner class constructor qualificated with outer class nameKT-12477Do not report 'const' inapplicability on property of error typeKT-11010NDFDE for local object with type parametersKT-12881Descriptor wasn't found for declaration TYPE_PARAMETERKT-13342Unqualified super call should not resolve to a method of supertype overriden in another supertypeKT-14236Allow to use emptyArray in annotationKT-14536IllegalStateException: Type parameter T not found for lazy class Companion at LazyDeclarationResolver visitTypeParameterKT-14865Throwable exception at KotlinParser parseLambdaExpression on typing { inside a string inside a lambdaKT-15516Compiler error when passing suspending extension-functions as parameter and casting stuff to AnyKT-15802Java constant referenced using subclass is not considered a constant expressionKT-15872Constant folding is mistakenly triggered for user functionKT-15901Unstable smart cast target after type checkKT-15951Callable reference to class constructor from object is not resolvedKT-16232Prohibit objects inside inner classesKT-16233Prohibit inner sealed classesKT-16250Import methods from typealias to object throws compiler exception "Should be class or package: typealias"KT-16272Missing deprecation and SinceKotlin-related diagnostic for variable as function callKT-16278Public member method can't be used for callable reference because of private static with the same nameKT-16372'mod is deprecated' warning should not be shown when language version is 1.0KT-16484SimpleTypeImpl should not be created for error type: ErrorScopeKT-16528Error: Loop in supertypes when using Java classes with type parameters having raw interdependent supertypesKT-16538No smart cast when equals is presentKT-16782Enum entry is incorrectly forbidden on LHS of '::' with language version 1.0KT-16815Assertion error from compiler: unexpected classifier: class DeserializedTypeAliasDescriptorKT-16931Compiler cannot see inner class when for outer class exist folder with same nameKT-16956Prohibit using function calls inside default parameter values of annotationsKT-8187IAE on anonymous object in the delegation specifier listKT-8813Do not report unused parameters for anonymous functionsKT-12112Do not consider nullability of error functions and properties for smart castsKT-12276No warning for unnecessary non-null assertion after method call with generic return typeKT-13648Spurious warning: "Elvis operator (?:) always returns the left operand of non-nullable type (???..???)"KT-16264Forbid usage of _ without backticksKT-16875Decrease severity of unused parameter in lambda to weak warningKT-17136ModuleDescriptorImpl.allImplementingModules should be evaluated lazilyKT-17214Do not show warning about useless elvis for error function typesKT-13740Plugin crashes at accidentally wrong annotation argument typeKT-17597Pattern::compile resolves to private instance method in 1.1.2
Back-end
KT-8689NoSuchMethodError on local functions inside inlined lambda with variables captured from outer contextKT-11314Abstract generic class with Array<Array> parameter compiles fine but fails at runtime with "Bad type on operand stack" VerifyErrorKT-12839Two null checks are generated when manually null checking platform typeKT-14565Cannot pop operand off empty stack when compiling enum classKT-14566Make kotlin.jvm.internal.Ref$...Ref classes serializableKT-14567VerifyError: Bad type on operand stack (generics with operator methods)KT-14607Incorrect class name "ava/lang/Void from AsyncTask extension functionKT-14811Unecessary checkcast generated in parameterized functions.KT-14963unnecessary checkcast java/lang/ObjectKT-15105Comparing Chars in a Pair results in ClassCastExceptionKT-15109Subclass from a type alias with named parameter in constructor will produce compiler exceptionKT-15192Compiler crashes on certain companion objects: "Error generating constructors of class Companion with kind IMPLEMENTATION"KT-15424javac crash when calling Kotlin function having generic varargs with default and @JvmOverloadsKT-15574Can't instantiate Array through Type AliasKT-15594java.lang.VerifyError when referencing normal getter in @JvmStatic getters inside an objectKT-15759tailrec suspend function fails to compileKT-15862Inline generic functions can unexpectedly box primitivesKT-15871Unnecessary boxing for equality operator on inlined primitive valuesKT-15993Property annotations are stored in private fields and killed by obfuscatorsKT-15997Reified generics don't work properly with crossinline functionsKT-16077Redundant private getter for private var in a class within a JvmMultifileClass annotated fileKT-16194Code with unnecessary safe call contains redundant boxing/unboxing for primitive valuesKT-16245Redundant null-check generated for a cast of already non-nullable valueKT-16532Kotlin 1.1 RC - Android cross-inline synchronized won't runKT-16555VerifyError: Bad type on operand stackKT-16713Insufficient maximum stack sizeKT-16720ClassCastException during compilationKT-16732Type 'java/lang/Number' (current frame, stack[0]) is not assignable to 'java/lang/CharacterKT-16929VerifyErrorwhen using bound method reference on generic propertyKT-16412Exception from compiler when try call SAM constructor where argument is callable reference to nested class inside objectKT-17210Smartcast failure results in "Bad type operand on stack" runtime error
Tools
KT-15420Maven, all-open plugin: in console the settings of all-open are always reported as emptyKT-11916Provide incremental compilation for MavenKT-15946Kotlin-JPA plugin support for @EmbeddableKT-16627Do not make private members open in all-open pluginKT-16699Script resolving doesn't work with custom templates located in an external jarKT-16812import in .kts file does not worksKT-16927UsingKotlinJsr223JvmLocalScriptEngineFactorycauses multiple warningsKT-15562Service is dyingKT-17125> Failed to apply plugin [id 'kotlin'] > For input string: “”
Kapt
KT-12432Dagger 2 does not generate Component which was referenced from Kotlin file.KT-8558KAPT only works with service-declared annotation processorsKT-16753kapt3 generates invalid stubs when IC is enabledKT-16458kotlin-kapt / kapt3: "cannot find symbol" error for companion object with same name as enclosing classKT-14478Add APT / Kapt support to the maven pluginKT-14070Kapt3: kapt doesn't compile generated Kotlin files and doesn't use the "kapt.kotlin.generated" folder anymoreKT-16990Kapt3: java.io.File cannot be cast to java.lang.StringKT-16965Error:Kotlin: Multiple values are not allowed for plugin option org.jetbrains.kotlin.kapt:outputKT-16184AbstractMethodError in Kapt3ComponentRegistrar while compiling from IntelliJ 2016.3.4 using Kotlin 1.1.0-beta-38
Gradle
KT-15084Navigation into sources of gradle-script-kotlin doesn't workKT-16003Gradle Plugin Fails When Run From Jenkins On Multiple NodesKT-16585Kotlin Gradle Plugin makes using Gradle Java incremental compiler not workKT-16902Gradle plugin compilation on daemon fails on Linux ARMKT-14619Gradle: The '-d' option with a directory destination is ignored because '-module' is specifiedKT-12792Automatically configure standard library dependency and set its version equal to compiler version if not specifiedKT-15994Compiler arguments are not copied from the main compile task to kapt taskKT-16820Changing compileKotlin.destinationDir leads to failure in :copyMainKotlinClasses task due to an NPEKT-16917First connection to daemon after start timeouts when DNS is slowKT-16580Kotlin gradle plugin cannot resolve the kotlin compiler
Android support
KT-16624Implement quickfix "Add TargetApi/RequiresApi annotation" for Android api issuesKT-16625Implement quickfix "Surround with if (VERSION.SDK_INT >= VERSION_CODES.SOME_VERSION) { ... }" for Android api issuesKT-16840Kotlin Gradle plugin fails with Android Gradle plugin 2.4.0-alpha1KT-16897Gradle plugin 1.1.1 duplicates all main classes into Android instrumentation test APKKT-16957Android Extensions: Support Dialog classKT-15023Androidgradle installDebugAndroidTestfails unless you first callgradle assembleDebugAndroidTestKT-12769"Name for method must be provided" error occurs on trying to use spaces in method name in integration tests in AndroidKT-12819Kotlin Lint: False positive for "Unconditional layout inflation" when using elvis operatorKT-15116Kotlin Lint: problems in property accessors are not reportedKT-15156Kotlin Lint: problems in annotation parameters are not reportedKT-15179Kotlin Lint: problems inside local function are not reportedKT-14870Kotlin Lint: problems inside local class are not reportedKT-14920Kotlin Lint: "Android Lint for Kotlin | Incorrect support annotation usage" inspection does not report problemsKT-14947Kotlin Lint: "Calling new methods on older versions" could suggest specific quick fixesKT-12741Android Extensions: Enable IDE plugin only if it is enabled in the build.gradle fileKT-13122Implement '@RequiresApi' intention for android and don't report warning on annotated classesKT-16680Stack overflow in UAST containsLocalTypes()KT-15451Support "Android String Reference" folding in Kotlin filesKT-16132Renaming property provided by kotlinx leads to renaming another membersKT-17200Unable to build an android projectKT-13104Incorrect resource name in Activity after renaming ID attribute value in layout fileKT-17436Refactor | Rename android:id corrupts R.id references in kotlin codeKT-17255Kotlin 1.1.2 EAP is broken with 2.4.0-alpha3KT-17610"Unknown reference: kotlinx"
IDE
KT-6159Inline Method refactoringKT-4578Intention to move property between class body and constructor parameterKT-8568Provide a QuickFix to replace typeArray<Int>in annotation withIntArrayKT-10393Detect calls to functions returning a lambda from expression body which ignore the return valueKT-11393Inspection to highlight and warn on usage of internal members in other module from JavaKT-12004IDE inspection that destructuring variable name matches the other name in data classKT-12183Intention converting several calls with same receiver to 'with'/apply/runKT-13111Support bound references in lambda-to-reference intention / inspectionKT-15966Create quickfix for DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDEKT-16074Introduce a quick-fix adding noinline modifier for a value parameter of suspend function typeKT-16131Add quickfix for: Cannot access member: it is invisible (private in supertype)KT-16188Add create class quickfixKT-16258Add intention to add missing components to destructuring assignmentKT-16292Support "Reference to lambda" for bound referencesKT-11234Debugger won't hit breakpoint in nested lambaKT-12002Improve completion for closure parameters to work in more placesKT-15768It would be nice to show in Kotlin facet what compiler plugins are on and their optionsKT-16022Kotlin facet: provide UI to navigate to project settingsKT-16214Do not hide package kotlin.reflect.jvm.internal from auto-import and completion, inside package "kotlin.reflect"KT-16647Don't create kotlinc.xml if the settings don't differ from the defaultsKT-16649All Gradle related classes should be moved to optional dependency section of plugin.xmlKT-16800Autocomplete for closure with single arguments
Bug fixes
KT-16316IDE: don't show Kotlin Scripting section when target platform is JavaScriptKT-16317IDE: some fields stay enabled in an facet when use project settings was chosenKT-16596Hang in IntelliJ while scanning zipsKT-16646The flag to enable coroutines does not sync from gradle file in Android StudioKT-16788Importing Kotlin Maven projects results in invalid .imlKT-16827kotlin javascript module not recognized by gradle sync when an android module is presentKT-16848Regression: completion after dot in string interpolation expression doesn't work if there are no curly bracesKT-16888"Multiple values are not allowed for plugin option org.jetbrains.kotlin.android:package" when rebuilding projectKT-16980Accessing language version settings for a module performs runtime version detection on every access with no cachingKT-16991Navigate to receiver from this in extension functionKT-16992Navigate to lambda start from auto-generated 'it' parameterKT-12264AssertionError: Resolver for 'completion/highlighting in LibrarySourceInfo for platform JVM' does not know how to resolve ModuleProductionSourceInfoKT-13734Annotated element search is slowKT-14710Sample references aren't resolved in IDEKT-16415Dependency leakage with Kotlin IntelliJ plugin, using gradle-script-kotlin, and the gradle-intellij-pluginKT-16837Slow typing in Kotlin file because of ImportFixBaseKT-16926'implement' dependency is not transitive when importing gradle project to IDEAKT-17141Running test from gutter icon fails in AS 2.4 Preview 3KT-17162Plain-text Java copy-paste to Kotlin file results in exceptionKT-16714J2K: Write access is allowed from event dispatch thread onlyKT-14058Unexpected error MISSING_DEPENDENCY_CLASSKT-9275Unhelpful IDE warning "Configure Kotlin"KT-15279'Kotlin not configured message' should not be displayed while gradle sync is in progressKT-11828Configure Kotlin in Project: failure for Gradle modules without build.gradle (IDEA creates them)KT-16571Configure Kotlin in Project does not suggest just published versionKT-16590Configure kotlin warning popup after each sync gradleKT-16353Configure Kotlin in Project: configurators are not suggested for Gradle module in non-Gradle project with separate sub-modules for source setsKT-16381Configure Kotlin dialog suggests modules already configured with other platformsKT-16401Configure Kotlin in the project adds incorrect dependency kotlin-stdlib-jre8 to 1.0.x languageKT-12261Partial body resolve doesn't resolve anything in object literal used as an expression body of a methodKT-13013"Go to Type Declaration" doesn't work for extension receiver and implict lambda parameterKT-13135IDE goes in an infinite indexing loop if a .kotlin_module file is corruptedKT-14129for/iter postfix templates should be applied for string, ranges and mutable collectionsKT-14134Allow to apply for/iter postfix template to mapKT-14871Idea and Maven is not in sync with ModuleKind for Kotlin projectsKT-14986Disable postfix completion when typing package statementsKT-15200Show implementation should show inherited classes if a typealias to base class/interface is usedKT-15398Annotations find usages in annotation instance siteKT-15536Highlight usages: Class with primary constructor isn't highlighted when caret is on constructor invocationKT-15628Change error message if both KotlinJavaRuntime and KotlinJavaScript libraries are present in the module dependenciesKT-15947Kotlin facet: Target platform on importing from a maven project should be filled the same way for different artifactsKT-16023Kotlin facet: When "Use project settings" is enabled, respective fields should show values from the project settingsKT-16698Kotlin facet: modules created from different gradle sourcesets have the same module optionsKT-16700Kotlin facet: jdkHome path containing spaces splits into several additional args after importKT-16776Kotlin facet, import from maven: free arguments from submodule doesn't override arguments from parent moduleKT-16550Kotlin facet from Maven: provide error messages if additional command line parameters are set several timesKT-16313Kotlin facet: unify filling up information about included AllOpen/NoArg plugins on importing from Maven and GradleKT-16342Kotlin facet: JavaScript platform is not detected if there are 2 versions of stdlib in dependenciesKT-16032Kotlin code formatter merges comment line with non-comment lineKT-16038UI blocked on pasting java code into a kotlin fileKT-16062Kotlin breakpoint doesn't work in some lambda in Rider project.KT-15855Can't evaluate expression in @JvmStatic methodKT-16667Kotlin debugger "smart step into" fail on method defined in the middle of class hierarchyKT-16078Formatter puts empty body braces on different lines when KDoc is presentKT-16265Parameter info doesn't work with type alias constructorKT-14727Wrong samples for some postfix templates
Inspections / Quickfixes
KT-17002Make "Lambda to Reference" inspection off by defaultKT-14402Inspection "Use destructuring declaration" for lambdas doesn't work when parameter is of type PairKT-16857False "Remove redundant 'let'" suggestionKT-16928Surround with null check quickfix works badly in case of qualifierKT-15870Move quick fix of "Package name does not match containing directory" inspection: Throwable "AWT events are not allowed inside write action"KT-16128'Add label to loop' QF proposed when there's already a labelKT-16828Don't suggest destructing declarations if not all components are usedKT-17022Replace deprecated in the whole project may miss some usages in expression body
Refactorings, Intentions
KT-7516Rename refactoring doesn't rename related labelsKT-7520Exception when try rename label from usageKT-8955Refactor / Move package: KNPE at KotlinMoveDirectoryWithClassesHelper.postProcessUsages() with not matching package statementKT-11863Refactor / Move: moving referred file level elements to another package keeps reference to old FQNKT-13190Refactor / Move: no warning on moving class containing internal member to different moduleKT-13341Convert lambda to function reference intention is not available for object member callsKT-13755When (java?) class is moved redundant imports are not removedKT-13911Refactor / Move: "Problems Detected" dialog is not shown on moving whole .kt fileKT-14401Can't rename implicit lambda parameter 'it' when caret is placed right after the last characterKT-14483"Argument of NotNull parameter must be not null" in KotlinTryCatchSurrounder when using "try" postfix templateKT-15075KNPE in "Specify explicit lambda signature"KT-15190Refactor / Move: false Problems Detected on moving class using parent's protected memberKT-15250Convert anonymous object to lambda is shown when conversion not possible due implicit calls on thisKT-15339Extract Superclass is enabled for any element: CommonRefactoringUtil$RefactoringErrorHintException: "Superclass cannot be extracted from interface" at ExtractSuperRefactoring.performRefactoring()KT-15559Kotlin: Moving classes to different packages breaks references to companion object's propertiesKT-15556Convert lambda to reference isn't proposed for parameterless constructorKT-15586ISE during "Move to a separate file"KT-15822Move class refactoring leaves unused importsKT-16108Cannot rename class on the companion object referenceKT-16198Extract method refactoring should order parameters by first usageKT-17006Refactor / Move: usage of library function is reported as problem on move between modules with different library versionsKT-17032Refactor / Move updates references to not moved class from the same fileKT-11907Move to package renames file to temp.ktKT-16468Destructure declaration intention should be applicable for PairKT-16162IAE for destructuring declaration entry from KotlinFinalClassOrFunSpringInspectionKT-16556Move refactoring shows Refactoring cannot be performed warning.KT-16605NPE caused by Rename Refactoring of backing field when caret is after the last characterKT-16809Move refactoring fails badlyKT-16903"Convert to primary constructor" doesn't update supertype constructor call in supertypes list in case of implicit superclass constructor call
JS
KT-6627JS: test sources doesn't compile from IDEKT-13610JS: boxed Double.NaN is not equal to itselfKT-16012JS: prohibit nested declarations, except interfaces inside external interfaceKT-16043IDL: mark inline helper function as InlineOnlyKT-16058JS: getValue/setValue don't work if they are declared as suspendKT-16164JS: Bad getCallableRef in suspend functionKT-16350KotlinJS - wrong code generated when temporary variables generated for RHS of&&operationKT-16377JS: losing declarations of temporary variables in secondary constructorsKT-16545JS: ::class crashes at runtime for primitive types (e.g. Int::class, or Double::class)KT-16144JS: inliner can't find function called through inheritor ("fake" override) from another module
Reflection
KT-9453ClassCastException: java.lang.Class cannot be cast to kotlin.reflect.KClassKT-11254Make callable references Serializable on JVMKT-11316NPE in hashCode of KProperty object created for delegated propertyKT-12630KotlinReflectionInternalError on referencing some functions from stdlibKT-14731When starting application from test source root, kotlin function reflection fails in objects defined in sources
Libraries
KT-16922buildSequence/Iterator: Infinite sequence terminates prematurelyKT-16923Progression iterator doesn't throw after completionKT-16994Classify sequence operations as stateful/stateless and intermediate/terminalKT-9786String.trimIndent doc is misleadingKT-16572Add links to Mozilla Developer Network to kdocs of classes that we generate from IDLKT-16252IDL2K: Add ItemArrayLike interface implementation to collection-like classes
1.1.1
IDE
KT-16714J2K: Write access is allowed from event dispatch thread only
Compiler
KT-16801Accessors of@PublishedApiproperty gets mangledKT-16673Potentially problematic code causes exception when work with SAM adapters
Libraries
KT-16557CorrectSinceKotlin(1.1)for all declarations inkotlin.reflect.full
1.1.1-RC
IDE
KT-16481Kotlin debugger & bytecode fail on select statement blocks (IllegalStateException: More than one package fragment)
Gradle support
KT-15783Gradle builds don't use incremental compilation due to an error: "Could not connect to kotlin daemon"KT-16434Gradle plugin does not compile androidTest sources when Jack is enabledKT-16546Enable incremental compilation in gradle by default
Compiler
KT-16184AbstractMethodError in Kapt3ComponentRegistrar while compiling from IntelliJ using Kotlin 1.1.0KT-16578Fix substitutor for synthetic SAM adaptersKT-16581VerifyError when calling default value parameter with jvm-target 1.8KT-16583Cannot access private file-level variables inside a class init within the same file if a secondary constructor is presentKT-16587AbstractMethodError: Delegates not generated correctly for private interfacesKT-16598Incorrect error: The feature "bound callable references" is only available since language version 1.1KT-16621Kotlin compiler doesn't report an error if a class implements Annotation interface but doesn't implement annotationType methodKT-16441NoSuchFieldError: $$delegatedPropertieswhen delegating throughprovideDelegatein companion object
JavaScript support
- Prohibit function types with receiver as parameter types of external declarations
- Remove extension receiver for function parameters in
jQuerydeclarations
1.1
Compiler exceptions
KT-16411Exception from compiler when try to inline callable reference to class constructor inside objectKT-16412Exception from compiler when try call SAM constructor where argument is callable reference to nested class inside objectKT-16413When we create sam adapter for java.util.function.Function we add incorrect null-check for argument
Standard library
KT-6561Drop java.util.Collections package from js stdlibjavaClassextension property is no more deprecated due to migration problems
IDE
KT-16329Inspection "Calls to staic methods in Java interfaces..." always reports warning undependent of jvm-target
1.1-RC
Reflection
KT-16358Incompatibility between kotlin-reflect 1.0 and kotlin-stdlib 1.1 fixed
Compiler
Coroutine support
KT-15938Changed error message for calling suspend function outside of suspendable contextKT-16092Backend crash fixed: "Don't know how to generate outer expression" for destructuring suspend lambdaKT-16093Annotations are retained during reading the binary representation of suspend functionsKT-16122java.lang.VerifyError fixed in couroutines: (String, null, suspend () -> String)KT-16124Marked as UNSUPPORTED: suspension points in default parametersKT-16219Marked as UNSUPPORTED: suspend get/set, in/!in operators forKT-16145Beta-2 coroutine regression fixed (wrong code generation)
Kapt3
KT-15524Fix javac error reporting in Kotlin daemonKT-15721JetBrains nullability annotations are now returned from Element.getAnnotationMirrors()KT-16146Fixed work in verbose modeKT-16153Ignore declarations with illegal Java identifiersKT-16167Fixed compilation error with kapt arguments in build.gradleKT-16170Stub generator now adds imports for corrected error types to stubsKT-16176javac's finalCompiler log is now used to determine annotation processing errors
Backward compatibility
KT-16017More graceful error message for disabled featuresKT-16073Improved backward compatibility mode with version 1.0 on JDK dependent built-insKT-16094Compiler considers API availability when compiling language features requiring runtime supportKT-16171Fixed regression "Unexpected container error on Kotlin 1.0 project"KT-16199Do not import "kotlin.comparisons.*" by default in language version 1.0 mode
Various issues
KT-16225enumValues non-reified stub implementation references nonexistent method no moreKT-16291Smart cast works now when getting class of instanceKT-16380Show warning when running the compiler under Java 6 or 7
JavaScript backend
KT-16144Fixed inlining of functions called through inheritor ("fake" override) from another moduleKT-16158Error is not reported now when library path contains JAR file without JS metadata, report warning insteadKT-16160Companion object dispatch receiver translation fixed
Standard library
KT-7858Add extension functiontakeUnlessjavaClassextension property is deprecated, useinstance::class.javainstead- Massive deprecations are coming in JS standard library in
kotlin.domandkotlin.dom.buildpackages
IDE
Configuration issues
KT-15899Kotlin facet: language and api version for submodule setup for 1.0 are filled now as 1.0 tooKT-15914Kotlin facet works now with multi-selected modules in Project Settings tooKT-15954Does not suggest to configure kotlin for the module after each new kt-file creationKT-16157freeCompilerArgs are now imported from Gradle into IDEAKT-16206Idea no more refuses to compile a kotlin project defined as a maven projectKT-16312Kotlin facet: import from gradle: don't import options which are set implicitly alreadyKT-16325Kotlin facet: correct configuration after upgrading the IDE pluginKT-16345Kotlin facet: detect JavaScript if the module has language 1.0kotlin-js-librarydependency
Coroutine support
KT-16109Error fixed: The -Xcoroutines can only have one valueKT-16251Fix detection of suspend calls containing extracted parameters
Intention actions, inspections and quick-fixes
2017.1 compatibility
KT-15870"Package name does not match containing directory" inspection: fixed throwable "AWT events are not allowed inside write action"KT-15924Create Test action: fixed throwable "AWT events are not allowed inside write action"
Bug fixes
KT-14831Import statement and FQN are not added on converting lambda to reference for typealiasKT-15545Inspection "join with assignment" does not change now execution order for propertiesKT-15744Fix: intention to importsleepwrongly suggestsThread.sleepKT-16000Inspection "join with assignment" handles initialization with 'this' correctlyKT-16009Auto-import for JDK classes in .kts filesKT-16104Don't insert modifiers (e.g. suspend) before visibility
Completion
KT-16076Completion does not insert more FQN kotlin.text.StringKT-16088Completion does not insert more FQN forkotlinpackageKT-16110Keyword 'suspend' completion inside generic argumentsKT-16243Performance enhanced after variable of typeArrayList
Various issues
KT-15291'Find usages' now does not report property access as usage of getter method in Java class with parameterKT-15647Exception fixed: KDoc link to member of class from different package and moduleKT-16071IDEA deadlock fixed: when typing "parse()" in .kt fileKT-16149Intellij Idea 2017.1/Android Studio 2.3 beta3 and Kotlin plugin 1.1-beta2 deadlock fixed
Coroutine libraries
KT-15716Introduced startCoroutineUninterceptedOrReturn coroutine intrinsicKT-15718createCoroutine now returns safe continuationKT-16155Introduced createCoroutineUnchecked intrinsic
Gradle support
KT-15829Gradle Kotlin JS plugin: removed false "Duplicate source root:" warning for kotlin filesKT-15902JS: gradle task output is now considered as source set outputKT-16174Error fixed during IDEA-Gradle synchronization for Kotlin JSKT-16267JS: fixed regression in 1.1-beta2 for multi-module gradle projectKT-16274Kotlin JS Gradle unexpected compiler error / absolute path to output fileKT-16322Circlet project Gradle import issue fixed
REPL
KT-15861Use windows line separator in kotlin's JSR implementationKT-16126ProperjvmTargetfor REPL compilation
1.1-Beta2
Language related changes
KT-7897Do not require to call enum constructor for each entry if all parameters have default valuesKT-8985Support T::class.java for T with no non-null upper boundKT-10711Type inference works now on generics for callable referencesKT-13130Support exhaustive when for sealed treesKT-15898Cannot use type alias to qualify enum entryKT-16061Smart type inference on callable references in 1.1 mode only
Reflection
KT-8384Access to the delegate object for a KProperty
Compiler
Coroutine support
KT-15016VerifyError with coroutine: fix processing of uninitialized instancesKT-15527Coroutine compile error: wrong code generated for safe qualified suspension pointsKT-15552Accessor implementation of suspended function produces AbstractMethodErrorKT-15715Coroutine generate invalid invokeKT-15820Coroutine Internal Error regression with dispatcher + this@KT-15821Coroutine internal error regression: Could not inline method call applyKT-15824Coroutine iterator regression: Object cannot be cast to java.lang.BooleanKT-15827Show Kotlin Bytecode shows wrong bytecode for suspending functionsKT-15907Bogus error about platform declaration clash with private suspend functionsKT-15933Suspend getValue/setValue/provideDelegate do not work properlyKT-15935Private suspend function in file causes UnsupportedOperationException: Context does not have a "this"KT-15963Coroutine: runtime error if returned object "equals" does not like comparison to SUSPENDED_MARKERKT-16068Prohibit inline lambda parameters of suspend function type
Diagnostics
KT-1560Report diagnostic for a declaration of extension function which will be always shadowed by member functionKT-12846Forbid vararg of NothingKT-13227NO_ELSE_IN_WHEN in when by sealed class instance if is-check for base sealed class is usedKT-13355Type mismatch on inheritance is not reported on abstract classKT-15010Missing error on an usage of non-constant property in annotation default argumentKT-15201Compiler is complaining about when statement without null condition even if null is checked before.KT-15736Report an error on type alias expanded to a nullable type on LHS of a class literalKT-15740Report error on expression of a nullable type on LHS of a class literalKT-15844Do not allow to access primary constructor parameters from property with custom getterKT-15878Extension shadowed by member should not be reported for infix/operator extensions when member is non-infix/operatorKT-16010Do not highlight lambda parameters as unused in 1.0 compatibility mode
Kapt
KT-15675Kapt3 does not generate classes annotated with AutoValueKT-15697If an annotation with AnnotationTarget.PROPERTY is tagged on a Kotlin property, it breaks annotation processingKT-15803Kotlin 1.0.6 broke DaggerKT-15814Regression: Kapt is not working in 1.0.6 / 1.1-M04 / 1.1-BetaKT-15838kapt3 1.1-beta: KaptError: Java file parsing errorKT-158411.1-Beta + kapt3 fails to build the project with StackOverflowErrorKT-15915Kapt: Kotlin class target directory is cleared before compilation (and after kapt task)KT-16006Cannot determine if type is an error type during annotation processing
Exceptions / Errors
KT-8264Internal compiler error: java.lang.ArithmeticException: BigInteger: modulus not positiveKT-14547NoSuchElementException when compiling callable reference without stdlib in the classpathKT-14966Regression: VerifyError on access super implementation from delegateKT-15017Throwing exception in the end of inline suspend-functions lead to internal compiler errorKT-15439Resolved call is not completed for generic callable reference in if-expressionKT-15500Exception passing freeCompilerArgs to gradle pluginKT-15646InconsistentDebugInfoException when stepping overthrowKT-15726Kotlin compiles invalid bytecode for nested try-catch with returnKT-15743Overloaded Kotlin extensions annotates wrong parameters in javaKT-15868NPE when comparing nullable doubles for equalityKT-15995Can't build project with DataBinding using Kotlin 1.1: incompatible language versionKT-16047Internal Error: org.jetbrains.kotlin.util.KotlinFrontEndException while analyzing expression
Type inference issues
KT-10268Wrong type inference related to captured typesKT-11259Wrong type inference for Java 8 Stream.collect.KT-12802Type inference failed when irrelevant method reference is usedKT-12964Support type inference for callable references from parameter types of an expected function type
Smart cast issues
KT-13468Smart cast is broken after assignment of 'if' expressionKT-14350Make smart-cast work as it does in 1.0 when -language-version 1.0 is usedKT-14597When over smartcast enum is broken and breaks all other "when"KT-15792Wrong smart cast after y = x, x = null, y != null sequence
Various issues
KT-15236False positive: Null can not be a value of a non-null typeKT-15677Modifiers and annotations are lost on a (nullable) parenthesized typeKT-15707IDEA unable to parallel compile different projectsKT-15734Nullability is lost during expansion of a type aliasKT-15748Type alias constructor return type should have a corresponding abbreviationKT-15775Annotations are lost on value parameter types of a function typeKT-15780Treat Map.getOrDefault overrides in Java the same way as in 1.0.x compiler with language version 1.0KT-15794Refine backward compatibility mode for additional built-ins members from JDKKT-15848Implement additional annotation processing in theKotlinScriptDefinitionFromAnnotatedTemplatefor SamWithReceiver pluginKT-15875Operation has lead to overflow for 'mod' with negative first operandKT-15945Feature Request: Andrey Breslav to grow a beard.
JavaScript backend
Coroutine support
KT-15834JS: Local delegate in suspend functionKT-15892JS: safe call of suspend functions causes compiler to crash
Diagnostics
KT-14668Do not allow declarations in 'kotlin' package or subpackages in JSKT-15184JS: prohibit..operation withdynamicon left-hand sideKT-15253JS: no error when use class external class with JsModule in type context when compiling with plain module kindKT-15283JS: additional restrictions on dynamicKT-15961Could not implement external open class with function with optional parameter
Language feature support
KT-14035JS: support implementing CharSequenceKT-14036JS: use Int16 for Char when it possible and box to our Char otherwiseKT-14097Wrong code generated for enum entry initialization using non-primary no-argument constructorKT-15312JS: map kotlin.Throwable to JS ErrorKT-15765JS: support callable references on built-in and intrinsic functions and propertiesKT-15900JS: Support enum entry with empty initializer with vararg constructor
Standard library support
KT-4141JS: wrong return type for Date::getTimeKT-4497JS: add String.toInt, String.toDouble etc extension functions,parseIntandparseFloatare deprecated in favor of these new onesKT-15940JS: rename all js standard library artifacts (both in maven and in compiler distribution) tokotlin-stdlib-js.jar- Add
Promise<T>external declaration to the standard library - Types like
Date,Math,Console,Promise,RegExp,Jsonrequire explicit import fromkotlin.jspackage
External declarations
KT-15144JS: renamenoImpltodefinedExternallyKT-15306JS: allow to usedefinedExternallyonly inside a body of external declarationsKT-15336JS: allow to inherit external classes from kotlin.ThrowableKT-15905JS: add a way to control qualifier for external declarations inside file- Deprecate
@nativeannotation, to be removed in 1.1 release.
Exceptions / Errors
KT-10894Infinite indexing at projects with JS modulesKT-14124AssertionError: strings file not found on K2JS serialized data
Various issues
KT-8211JS: generate dummy init for properties w/o initializer to avoid to have different hidden classes for different instancesKT-12712JS: Json should not be a classKT-13312JS: can't use extension lambda where expected lambda and vice versaKT-13632Add template kotlin js project under gradle in "New Project" windowKT-15278JS: don't treat property access through dynamic as side effect freeKT-15285JS: take into account as many characteristics from the signature as possible when manglingKT-15678JS: Generated local variable named 'element' clashes with actual local variable named 'element'KT-15755JS compiler produces a lot of empty kotlin_file_table files for irrelevant packagesKT-15770Name clash between recursive local functions with same nameKT-15797JS: wrong code for accessing nested class inside js moduleKT-15863JS: Extension function reference shifts parameters loosing the receiverKT-16049JS: drop "-kjsm" command line option, merge the logic into "-meta-info"KT-16083JS: rename "-library-files" argument to "-libraries" and change separator from comma to system file separator
Standard Library
KT-13353Add Map.minus(key) and Map.minus(keys)KT-13826Add parameter names in function types used in the standard libraryKT-14279Make String.matches(Regex) and Regex.matches(String) infixKT-15399Iterable.average() now returns NaN for an empty collectionKT-15975Move coroutine-related runtime parts tokotlin.coroutines.experimentalpackageKT-16030Move bitwise operations on Byte and Short tokotlin.experimentalpackageKT-16026Classes compiled in 1.1 in 1.0-compatibility mode may contain references to CloseableKt class from 1.1
IDE
Configuration issues
KT-15621Copy compiler options values from project settings on creating a kotlin facet for Kotlin (JVM) projectKT-15623Copy compiler options values from project settings on creating a kotlin facet for Kotlin (JavaScript) projectKT-15624Set option "Use project settings" in newly created Kotlin facetKT-15712Configuring a project with Maven or Gradle should automatically use stdlib-jre7 or stdlib-jre8 instead of standard stdlibKT-15772Facet does not pick up api version from mavenKT-15819It would be nice if compileKotlin options are imported into Kotlin facet from gradle/mavenKT-16015Prohibit api-version > language-version in Facet and Project Settings
Coroutine support
KT-14704Extract Method should work in coroutinesKT-15955Quick-fix to enable coroutines through Gradle project configurationKT-16018Hide coroutines intrinsics from import and completionKT-16075Error:Kotlin: The -Xcoroutines can only have one value
Backward compatibility issues
KT-15134Do not suggest using destructuring lambda if this will result in "available since 1.1" errorKT-15918Quick fix "Set module language level to 1.1" should also set API version to 1.1KT-15969Replace operator with function should use either rem or mod for % depending on language versionKT-15978Type alias from Kotlin 1.1 are suggested in completion even if language level is set to 1.0 in settingsKT-15979Usages of type aliases are not shown as errors in editor if language version is set to 1.0KT-16019Do not suggest renaming to underscore in 1.0 compatibility modeKT-16036"Create type alias from usage" quick-fix should not be suggested at language level 1.0
Intention actions, inspections and quick-fixes
New features
KT-9912Merge ifs intentionKT-13427"Specify type explicitly" should support type aliasesKT-15066"Make private/.." intention on type aliasesKT-15709Add inspection for private primary constructors in data classes as they are accessible via the copy methodKT-15738Intention to addsuspendmodifier to functional typeKT-15800Quick-fix to convert a function to suspending on error when calling suspension inside
Bug fixes
KT-13710Import intention action should not appear in import listKT-14680import statement to type alias reported as unused when using only TA constructorKT-14856TextView internationalisation intention does not report the problemKT-14993Keep destructuring declaration parameter on inspection "Remove explicit lambda parameter types"KT-14994PsiInvalidElementAccessException and incorrect generation on inspection "Specify type explicitly" on destructuring parameterKT-15162"Remove explicit lambda parameter types" intentions fails with destructuring declaration with KNPE at KtPsiFactory.createLambdaParameterList()KT-15311"Add Import" intention generates incorrect codeKT-15406Convert to secondary constructor for enum class should put new members after enum valuesKT-15553Copy concatenation text to clipboard with Kotlin and string interpolation does not workKT-15670'Convert to lambda' quick fix in IDEA leaves single-line comment and } gets commented outKT-15873Alt+Enter menu isn't shown for deprecated mod functionKT-15874Replace operator with function call replaces % with deprecated modKT-15884False positive "Redundant .let call"KT-16072Intentions to convert suspend lambdas to callable references should not be shown
Android support
KT-13275Kotlin Gradle plugin for Android does not work when jackOptions enabledKT-15150Android: Add quick-fix to generate View constructor conventionKT-15282Issues debugging crossinline Android code
KDoc
KT-14710Sample references are not resolved in IDEKT-15796Import of class referenced only in KDoc not preserved after copy-paste
Various issues
KT-9011Shift+Enter should insert curly braces when invoked after class declarationKT-11308Hide kotlin.jvm.internal package contents from completion and auto-importKT-14252Completion could suggest constructors available via type aliasesKT-14722Completion list isn't filled up for type alias to objectKT-14767Type alias to annotation class should appear in the completion listKT-14859"Parameter Info" sometimes does not work properly inside lambdaKT-15032Injected fragment: descriptor was not found for declaration: FUNKT-15153Support typeAlias extensions in completion and add importKT-15786NoSuchMethodError: com.intellij.util.containers.UtilKt.isNullOrEmptyKT-15883Generating equals() and hashCode(): hashCode does not correctly honor variable names with back ticksKT-15911Kotlin REPL will not launch: "Neither main class nor JAR path is specified"
J2K
KT-15789Kotlin plugin incorrectly converts for-loops from Java to Kotlin
Gradle support
KT-14830Kotlin Gradle plugin configuration should not add 'kotlin' source directory by defaultKT-15279'Kotlin not configured message' should not be displayed while gradle sync is in progressKT-15812Create Kotlin facet on importing gradle project with unchecked option Create separate module per source setKT-15837Gradle compiler attempts to connect to daemon on address derived from DNS lookupKT-15909Copy Gradle compiler options to facets in Intellij/ASKT-15929Gradle project imported with wrong 'target platform'
Other issues
KT-15450JSR 223 - support eval with bindings
1.1.0-Beta
Reflection
KT-15540findAnnotation returns T?, but it throws NoSuchElementException when there is no matching annotation- Reflection API in
kotlin-reflectlibrary is moved tokotlin.reflect.fullpackage, declarations in the packagekotlin.reflectare left deprecated. Please migrate according to the hints provided.
Compiler
Coroutine support
KT-15379Allow invoke on instances of suspend function type inside suspend functionKT-15380Support suspend function type with value parametersKT-15391Prohibit suspend function type in supertype listKT-15392Prohibit local suspending functionKT-15413Override regular functions with suspending ones and vice versaKT-15657Refine dispatchResume conventionKT-15662Prohibit callable references to suspend functions
Diagnostics
KT-9630Cannot create extension function on intersection of typesKT-11398Possible false positive for INACCESSIBLE_TYPEKT-13593Do not report USELESS_ELVIS_RIGHT_IS_NULL for left argument with platform typeKT-13859Wrong error about using unrepeatable annotation when mix implicit and explicit targetsKT-14179Prohibit to use enum entry as type parameterKT-15097Inherited platform declarations clash: regression under 1.1 when indirectly inheriting from java.util.MapKT-15287Kotlin runtime 1.1 and runtime 1.0.x: Overload resolution ambiguityKT-15334Incorrect "val cannot be reassigned" inside do-whileKT-15410"Protected function call from public-API inline function" for protected constructor call
Kapt3
KT-15145Kapt3: Doesn't compile with multiple errorsKT-15232Kapt3 crash due to java codepageKT-15359Kapt3 exception while annotation processing (DataBindings AS2.3-beta1)KT-15375Kapt3 can't find ${env.JDK_18}/lib/tools.jarKT-15381Unresolved references: R with Kapt3KT-15397Kapt3 doesn't work with databindingKT-15409Kapt3 Cannot find the getter for attribute 'android:text' with value type java.lang.String on android.widget.EditText.KT-15421Kapt3: Substitute types from Psi instead of writing NonExistentClass for generated type namesKT-15459Kapt3 doesn't generate code in test moduleKT-15524Kapt3 - Error messages should display associated element information (if available)KT-15713Kapt3: circular dependencies between Gradke tasks
Exceptions / Errors
KT-11401Error type encountered for implicit invoke with function literal argumentKT-12044Assertion "Rewrite at slice LEXICAL_SCOPE" for 'if' with property referencesKT-14011Compiler crash when inlining: lateinit property allRecapturedParameters has not been initializedKT-14868CCE in runtime while converting Number to CharKT-15364VerifyError: Bad type on operand stack on ObserverIterator.hasNextKT-15373Internal error when running TestNG testKT-15437VerifyError: Bad local variable type on simplest provideDelegateKT-15446Property reference on an instance of subclass causes java.lang.VerifyErrorKT-15447Compiler backend error: "Don't know how to generate outer expression for class"KT-15449Back-end (JVM) Internal error: Couldn't inline method callKT-15464Regression: "Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath:"KT-15575VerifyError: Bad type on operand stack
Various issues
KT-11962Super call with default parameters check is generated for top-level functionKT-11969ProGuard issue with private interface methodsKT-12795Write information about sealed class inheritors to metadataKT-13718ClassFormatError on aspectj instrumentationKT-14162Support @InlineOnly on inline propertiesKT-14705Inconsistent smart casts on when enum subjectKT-14917No way to pass additional java command line options to kontlinc on WindowsKT-15112Compiler hangs on nested lock compilationKT-15225Scripts: generate classes with names that are valid Java identifiersKT-15411Unnecessary CHECKCAST bytecode when dealing with nullKT-15473Invalid KFunction byte code signature for callable referencesKT-15582Generated bytecode is sometimes incompatible with Java 9KT-15584Do not mark class files compiled with a release language version as pre-releaseKT-15589Upper bound for T in KClass can be implicitly violated using generic functionKT-15631Compiler hang in MethodAnalyzer.analyze() fixed
JavaScript backend
Coroutine support
KT-15362JS: Regex doesn't work (properly) in coroutineKT-15366JS: error when calling inline function with optional parameters from another module inside coroutine lambdaKT-15367JS:foragainst iterator with suspendnextandhasNextfunctions does not workKT-15400suspendCoroutine is missing in JS BEKT-15597Support non-tail suspend calls inside named suspend functionsKT-15625JS: return statement without value surrounded bytry..finallyin suspend lambda causes compiler errorKT-15698Move coroutine intrinsics to kotlin.coroutine.intrinsics package
Diagnostics
KT-14577JS: do not report declaration clash when common redeclaration diagnostic appliesKT-15136JS: prohibit inheritance from kotlin Function{N} interfaces
Language features support
KT-12194Exhaustiveness check isn't generated for when expressions in JS at allKT-15590Support increment on inlined properties
Native / external
KT-8081JS: native inherited class shouldn't require super or primary constructor callKT-13892JS: restrictions for native (external) functions and propertiesKT-15307JS: prohibit inline members inside external declarationsKT-15308JS: prohibit non-abstract members inside external interfaces except nullable properties (with accessors)
Exceptions / Errors
KT-7302KotlinJS - Trait with optional parameter causes compilation errorKT-15325JS: ReferenceError: $receiver is not definedKT-15357JS:whenexpression in primary-from-secondary constructor callKT-15435Call to 'synchronize' crashes JS backendKT-15513JS: empty do..while loop crashes compiler
Various issues
KT-4160JS: compiler produces wrong code for escaped variable names with characters which Illegal in JS (e.g. spaces)KT-7004JS: functions namedcallnot inlinedKT-7588JS: operators are not inlinedKT-7733JS: Provide overflow behavior for integer arithmetic operationsKT-8413JS: generated wrong code for some float constantsKT-12598JS: comparisons for Enums always translates using strong operatorKT-13523Augmented assignment with array access in LHS is translated incorrectlyKT-13888JS: change how functions optional parameters get translatedKT-15260JS: don't import module more than onceKT-15475JS compiler deletes internal function name in js("") text blockKT-15506JS: invalid evaluation order when passing arguments to function by nameKT-15512JS: wrong result when use break/throw/return in || and && operatorsKT-15569js: Wrong code generated when calling an overloaded operator function on an inherited property
Standard Library
KEEP-23Operation to group by key and fold each group simultaneouslyKT-15774buildSequenceandbuildIteratorfunctions withyieldandyieldAllbased on coroutinesKT-6903Addalsoextension, which is likeapply, but withitinstead ofthisinside lambda.KT-7858Add extension functiontakeIfto match a value against predicate and return null when it does not matchKT-11851Provide extensionMap.getValue(key: K): Vwhich throws or returns default when key is not foundKT-7417Add min, max on two numbers to standard libraryKT-13898Allow to implementtoArrayin collections as protected and provide protected toArray in AbstractCollection.KT-14935Array-like list instantiation functions:List(count) { init }andMutableList(count) { init }KT-15630Overloads of mutableListOf, mutableSetOf, mutableMapOf without parametersKT-15557Iterable.joinTo loses information about each element by calling toString on them by defaultKT-15477Introduce Throwable.addSuppressed extensionKT-15310Add dynamic.unsafeCastKT-15436JS stdlib: org.w3c.fetch.RequestInit has 12 parameters, all requiredKT-15458Add print and println to common stdlib
IDE
- Project View: Fix presentation of Kotlin files and their members when @JvmName having the same name as the file itself
no-arg / all-open
KT-15419IDE build doesn't pick settings of all-open pluginKT-15686IDE build doesn't pick settings of no-arg pluginKT-15735Facet loses compiler plugin settings on reopening project, when "Use project settings" = Yes
Formatter
KT-15542Formatter doesn't handle spaces around 'by' keywordKT-15544Formatter doesn't remove spaces around function reference operator
Intention actions, inspections and quick-fixes
New features
- Implement quickfix which enables/disables coroutine support in module or project
KT-5045Intention to convert between two comparisons and range check and vice versaKT-5629Quick-fix to import extension method when arguments of non-extension method do not matchKT-6217Add warning for unused equals expressionKT-6824Quick-fix for applying spread operator where vararg is expectedKT-8855Implement "Create label" quick-fixKT-15056Implement intention which converts object literal to classKT-15068Implement intention which rename file according to the top-level class nameKT-15564Add quick-fix for changing primitive cast to primitive conversion method
Bug fixes
KT-14630Clearer diagnostic message for platform type inspectionKT-14745KNPE in convert primary constructor to secondaryKT-14889Replace 'if' with elvis operator produces red code if result is referenced in 'if'KT-14907Quick-fix for missing operator adds infix modifier to created functionKT-15092Suppress inspection "use property access syntax" for some getters and fix completion for themKT-15227"Replace if with elvis" silently changes semanticsKT-15412"Join declaration and assignment" can break code with smart castsKT-15501Intention "Add names to call arguments" shouldn't appear when the only argument is a trailing lambda
Refactorings (Extract / Pull)
KT-15611Extract Interface/Superclass: Disable const-properties- Pull Up: Fix pull-up from object to superclass
KT-15602Extract Interface/Superclass: Disable "Make abstract" for inline/external/lateinit members- Extract Interface: Disable inline/external/lateinit members
KT-12704,KT-15583Override/Implement Members: Support all nullability annotations respected by the Kotlin compilerKT-15563Override Members: Allow overriding virtual synthetic members (e.g. equals(), hashCode(), toString(), etc.) in data classesKT-15355Extract Interface: Disable "Make abstract" and assume it to be true for abstract members of an interfaceKT-15353Extract Superclass/Interface: Allow extracting class with special name (and quotes)KT-15643Extract Interface/Pull Up: Disable "Make abstract" and assume it to be true for primary constructor parameter when moving to an interfaceKT-15607Extract Interface/Pull Up: Disable internal/protected members when moving to an interfaceKT-15640Extract Interface/Pull Up: Drop 'final' modifier when moving to an interfaceKT-15639Extract Superclass/Interface/Pull Up: Add spaces between 'abstract' modifier and annotationsKT-15606Extract Interface/Pull Up: Warn about private members with usages in the original classKT-15635Extract Superclass/Interface: Fix bogus visibility warning inside a member when it's being moved as abstractKT-15598Extract Interface: Red-highlight members inherited from a super-interface when that interface reference itself is not extractedKT-15674Extract Superclass: Drop inapplicable modifiers when converting property-parameter to ordinary parameter
Multi-platform project support
KT-14908Actions (quick-fixes) to create implementations of header elementsKT-15305Do not report UNUSED for header declarations with implementations and vice versaKT-15601Cannot suppress HEADER_WITHOUT_IMPLEMENTATIONKT-15641Quick-fix "Create header interface implementation" does nothing
Android support
KT-12884Android Extensions: Refactor / Rename of activity name does not change import extension statementKT-14308Android Studio randomly hangs due to Java static member import quick-fix lagsKT-14358Kotlin extensions: rename layout file: Throwable: "PSI and index do not match" through KotlinFullClassNameIndex.get()KT-15483Kotlin lint throws unexpected exceptions in IDE
Various issues
KT-12872Don't show "defined in " in quick doc for local variablesKT-13001"Go to Type Declaration" is broken for stdlib typesKT-13067Syntax colouring doesn't work for KDoc tagsKT-14815alt + enter -> "import" over a constructor reference is not workingKT-14819Quick documentation for special Enum functions doesn't workKT-15141Bogus import popup for when function call cannot be resolved fullyKT-15154IllegalStateException on attempt to convert import statement to * if last added import is to typealiasKT-15329Regex not inspected properly for javaJavaIdentifierStart and javaJavaIdentifierPartKT-15383Kotlin Scripts can only resolve stdlib functions/classes if they are in a source directoryKT-15440Improve extensions detection in IDEAKT-15548Kotlin plugin: @Language injections specified in another module are ignored- Invoke
StorageComponentContainerContributorextension for module dependencies container as well (needed for "sam-with-receiver" plugin to work with scripts)
J2K
KT-6790J2K: Static import of Map.Entry is lost during conversionKT-14736J2K: Incorrect conversion of back ticks in javadoc {@code} tagKT-15027J2K: Annotations are set on functions, but not on property accessors
Gradle support
KT-15376Kotlin incremental=true: fixed compatibility with AS 2.3KT-15433Kotlin daemon swallows exceptions: fixed stack trace reportingKT-15682Uncheck "Use project settings" option on import Kotlin project from gradle
1.1-M04 (EAP-4)
Language related changes
KT-4481compareTo on primitive floats/doubles should behave naturallyKT-11016Allow to annotate internal API to be used inside public inline functionsKT-11128Member vs SAM conversion with more specific signatureKT-12215Allowing to access protected members in public inline members creates potential binary compatibility problemKT-12531Report error when delegated member hides a supertype memberKT-14650mod function on integral types is inconsistent with BigInteger.modKT-14651Floating point comparisons shall operate according to IEEE754KT-14852It should not be possible to use typealias that abbreviates a generic projection as a constructorKT-15226Restrict delegation to java 8 default methods
Reflection
KT-12250Provide API for getting a single annotation by its classKT-14939VerifyError in accessors for bound property reference with receiver 'null'
Compiler
Coroutines
- Major coroutines redesign - see
KEEPfor details
Optimizations
KT-11734Optimize const vals by inlining them at call siteKT-13570Generate TABLE/LOOKUPSWITCH if all when branches are const integer valuesKT-14746Captured Refs should not be volatile
Various issues
KT-10982java.util.Map::compute* poor usabilityKT-12144Type inference incorporation error on SAM adapter callKT-14196Do not allow class literal with expression in annotation argumentsKT-14453Regression: Type inference failed: inferred type is T but T was expectedKT-14774Incorrect inner class modifier generated for sealed inner classesKT-14839CompilationException when calling inline fun with first arg of 2 (w/defaults) within catch block of Java exception typeKT-14855Projection in type aliases should be allowed in supertypes and constructor invocations if they expand to non-toplevel projectionsKT-14887Unhelpful error "public-API inline function cannot access non-public-API" for unresolved call inside inline functionKT-14930Android: creating Kotlin activity: UOE at EmptyList.removeAll()KT-15146Kapt3 no source files on unittestKT-15272Exception when building 2 projects at the same time
JavaScript backend
dynamic type
KT-8207Extension function on dynamic resolves on any typeKT-6579JS: prohibit to useinand!inon dynamicKT-6580JS: prohibit to use more than one argument in indexed access on dynamicKT-13615JS: don't generate guard for catch with dynamic type
@native/external
KT-13893JS: Replace @native annotation with external modifierKT-12877Allow to specify module for native JS declarationsKT-14806JS: name of a local variable clashes with native declaration from global scope
Diagnostics
KT-13889JS: prohibit overriding native functions with default values assigned to parametersKT-13894JS: prohibit native declaration inside non-nativeKT-13895JS: RUNTIME annotationsKT-13896JS: prohibit external(native) extension functions and propertiesKT-13897JS: prohibit native(external) files and typealiasesKT-13910JS: prohibit override members of native declaration with overloadsKT-14027JS: prohibit native inner classesKT-14029JS: prohibit private members inside native declarationsKT-14037JS: prohibit using native interfaces in RHS of ISKT-14038JS: warn when using native interface in RHS of ASKT-15130JS: prohibit inheritance native from non-nativeKT-12600JS: type check with a native interface compiles but crash at runtimeKT-13307KotlinJS cannot cast to a marker interface.
Language features support
KT-13573JS: support bound callable referenceKT-14634JS: support enumValues / enumValueOfKT-15058JS: replace suspend function convention
Issues related to kotlin.Any
KT-7664JS: "x is Any" is always falseKT-7665JS: creating Any instance crashes on runtimeKT-15131JS: don't mangle Any.equals
Various issues
KT-14033JS: don't optimize (based on type information) by default expressions with any of "as, is, !is, as?, ?., !!"KT-13616JS: don't omit guard for catch with Throwable typeKT-12976JS: human-friendly error message on wrong modules orderKT-15212JS: link unqualified names injs(...)function to local functions in outer Kotlin function by nameKT-14750JS: remove unnecessary functions from kotlin.js
Bugfixes
KT-12566JS: inner local class should refer to captured variables via its outer classKT-12527Reified is-check works wrongly for chained callsKT-12586JS: compiler crashes when call inline function inside string templeateKT-13164Ecma TypeError on extending local class from inner oneKT-14888JS: Compiler error: Cannot get FQ name of local class: lazy classKT-14748JS: eliminate unused functionsKT-14999JS: Operator set + labeled lambdasKT-15007JS: Dies when checking if exception implements interface. TypeError: Cannot read property 'baseClasses' of undefinedKT-15073KT to JS losing extension function's receiverKT-15169JS: compiler fails on annotated expression with TRE at Translation.doTranslateExpression()KT-13522JS: can't use captured reified type paramter in jsClassKT-13784JS: lambda was not inlined for function with reified parameter declared in another moduleKT-13792JS: inner class of local class does not capture enclosing class properlyKT-15327JS: EnumvalueOfshould throw IllegalArgumentException
Standard library
KT-7930Make String.toInt(), toLong(), etc. nullable instead of throwing exceptionKT-8220Add #peek method to Sequence similar to Stream.peekKT-8286Int.toString and String.toInt with base as parameterKT-14034JS: unsafeCast functionKT-15181Some source files are missing from published sources on Bintray
IDE
KT-15205Implement quick-fix for increasing module language level to enable unsupported language features
Issues fixed
KT-14693Introduce Type Alias: Do not suggest type qualifiersKT-14696Introduce Type Alias: Fix NPE during dialog repaintKT-14685Introduce Type Alias: Replace type usages in constructor callsKT-14861Introduce Type Alias: Support callable references/class literalsKT-15204Implement navigation from header to its implementation and vice versaKT-15269Quickfix for external (native) extension declarationsKT-15293Add 1.1 EAP repository when creating a new Gradle project with 1.1 EAP
Scripting
KT-14538Kotlin gradle script files appear totally unresolvedKT-14706Support package declaration in scriptingKT-14707Support javax.script.Invocable on the JSR 223 ScriptEngineKT-14708kotlin-script-runtime is not publishedKT-14713Make it possible to use JSR 223 support without specifying compiler JAR absolute pathKT-15064Gradle build with script .kts file: NPE at ScriptCodegen.genConstructor()
Gradle support
KT-15080Gradle build fails with Gradle 3.2 (master)KT-15120Gradle JS test compile task doesn't pick up production codeKT-15127JS "compiler jar not found" with Gradle 3.2KT-15133Recent gradle-script-kotlin 3.3 distributions are unusableKT-15218Isolate Gradle Kotlin compiler process
1.1-M03 (EAP-3)
New language features
KT-2964Underscores in integer literals (see KEEP)KT-3824Underscore in lambda for unused parameters (see KEEP)KT-2783Allow to skip some components in a multi-declaration (see the same KEEP)KT-11551limited scope for dsl writers (see KEEP)
Compiler
Coroutines related issues
- Make fields for storing lambda parameters non-final (as they get assigned within
invokecall) KT-14719Make initial continuation able to be resumed with exceptionKT-14636Coroutine fields should not be volatileKT-14718Validate label value of coroutine in case of no suspension points
Typealises related issues
KT-13514Type inference doesn't work with generic typealiasesKT-13837Error "Type alias expands to T, which is not a class, an interface, or an object" should also appear for local type aliasesKT-14307Local recursive type alias should be an errorKT-14400Compiler Error IllegalStateException: kotlin.NotImplementedError when anonymous object inherits from typealiasKT-14377Expected error: Modifier 'companion' is not applicable to 'typealias'KT-14498typealias allows to circumvent variance annotationsKT-14641An exception while processing a nested type alias access after a dot
Various issues
KT-550Properties without initializer but with get must infer type from getterKT-8816Generate Kotlin parameter names in the same form as expected for Java 8 reflectionKT-10569Cannot iterate over values of an enum class when it is used as a generic parameter (see KEEP)KT-13557VerifyError with delegated local variable used in object expressionKT-13890IllegalAccessError when invoking protected method with default argumentsKT-14012Back-end (JVM) Internal error every first compilation after the source code changeKT-14201UnsupportedOperationException: Don't know how to generate outer expression for anonymous object with invoke and non-trivial closureKT-14318Repeated annotations resulting from type alias expansion should be reportedKT-14347Report UNUSED_PARAMETER/VARIABLE on named unused lambda parameters/destructuring entriesKT-14352@SinceKotlin is not taken into account for companion object member referenced via type aliasKT-14357Try-catch used in false condition generates CompilationExceptionKT-14502Prohibit irrelevant modifiers and annotations on destructured parameters in lambdaKT-14692Change resolution scope for componentX in lambda parametersKT-14824Back-end (JVM) Internal error: Couldn't inline method call 'get' into local final fun StorageComponentContainer.(): kotlin.UnitKT-14798Gradle 3.2 AssertionError: Built-in class kotlin.ParameterName is not found
JS
Feature support
KT-6985Support Exceptions in JSKT-13574JS: support coroutinesKT-14422JS: Support destructuring in lambda parametersKT-14507JS: allow to skip some components in a multi-declaration
Library updates
KT-14637JS: Missing ArrayList.ensureCapacity
Other issues
KT-2328js: kotlin exceptions must inherit ErrorKT-5537Drop Cloneable in JSKT-7014JS: generate code which more friendly to js tools (minifier, optimizer, linter etc)KT-8019JS: no stackTrace in exception subclassesKT-10911JS: Throwable properties aren't supported wellKT-13912JS: Compiler NPE at JsSourceGenerationVisitor. Lambda with empty [if] block passed to inline functionKT-14535JS: Broken modification of captured variables defined by a destructuring declaration
Standard Library
-
KT-2084Common API should be available without referring to java.* packagesNow those common types, which are supported on all platforms, are available in
kotlin.*packages, and are imported by default. These include:ArrayList,HashSet,LinkedHashSet,HashMap,LinkedHashMapinkotlin.collectionsAppendableandStringBuilderinkotlin.textComparatorinkotlin.comparisonsOn JVM these are just typealiases of the good old types fromjava.utilandjava.lang
-
KT-13554Introduce bitwise operationsand/or/xor/invfor Byte and Short -
KT-13582New platform-agnostic extensions for arrays:contentEqualsto compare arrays' content for equality,contentHashCodeto get hashcode of array's content, andcontentToStringto get the string representation of array elements. -
KT-14510Generic constraints ofArray.flattensignature were relaxed a bit to make it just usable. -
KT-14789ProvideKotlinVersionclass, which allows to get the current version of the standard library and compare it with some otherKotlinVersionvalue.
IDE
KT-14409Incorrect "Variable can be declared immutable" inspection for local delegated variableKT-14431Create quick-fix on UNUSED_PARAMETER/VARIABLE when it can be replaced with one underscoreKT-14794Add /Specify type/Remove explicit type intentions for property with getters if type can be inferredKT-14752Exception while typing @JsName annotation in editor
1.1-M02 (EAP-2)
Language features
-
Destructuring for lambdas (proposal)
Current limitations:
- Nested destructuring is not supported
- Destructuring in named functions/constructors is not supported
- Is not supported for JS target
Compiler
Smart cast enhancements
KT-2127Smart cast receiver to not null after a not null safe callKT-6840Make data flow information the same for assigned and assigneeKT-13426Fix exception when smartcast on both dispatch & extension receiver
Bound references related issues
KT-12995Do not skip generation of the left-hand side for intrinsic bound references and class literalsKT-13075Fix codegen for bound class referenceKT-13110Fix type mismatch error on class literal with integer receiver expressionKT-13172Report error on "this::class" in super constructor callKT-13271Fix incorrect unsupported error on synthetic extension call on LHS of ::KT-13367Inline bound callable reference if it's used only as a lambda
Coroutines related issues
KT-13156Do not execute last Unit-typed coroutine statement twiceKT-13246Fix VerifyError with coroutines on DalvikKT-13289Fix VerifyError with coroutines: Bad type on operand stackKT-13409Fix generic variable spilling with coroutinesKT-13531Fix ClassCastException when coercion to Unit interacts with generic await() and coroutines- Prohibit
Continuation<*>as a last parameter of suspend functions KT-13560Prohibit non-Unit suspend functions
Typealises related issues
KT-13200Fix incorrect number of required type arguments reported on typealiasKT-13181Fix unresolved reference for a type alias from a different moduleKT-13161Support java static methods calls with typealiasesKT-13835Do not lose nullability information while expanding type alias in projection positionKT-13422Prohibit usage of type alias to exception class as an object in 'throw' expressionKT-13735Fix NoSuchMethodError for generic typealias accessKT-13513Support SAM constructors for aliased java functional typesKT-13822Fix exception for start-projection of a type aliasKT-14071Prohibit using type alias as a qualifier for superKT-14282Report error on unused type alias with -language-version 1.0KT-14274Fix type alias resolution when it's used for supertype constructor call
JDK dependent built-in classes related issues
KT-13209Change first parameter's type of Map.getOrDefault to K instead of AnyKT-13069Do not emit invalid DefaultImpls delegation when interface extends MutableMap with JDK8
data classes and inheritance
KT-11306Allow data classes to implement equals/hashCode/toString from base classes
Various JVM code generation issues
KT-13182Fix compiler internal error at inlineKT-13757Prohibit referencing nested classes by name with $KT-12985Do not create range instances for 'for' loop in CharSequence.indicesKT-13931Optimize generated code for IntRange#contains
Various analysis & diagnostic issues
KT-435Use parameter names in error messages when calling a function-valued expressionKT-10001Fix false unnecessary non-null assertion on a pair elementKT-12811Treat function declaration as final if it is a member of a final classKT-13961Report REDECLARATION on private-in-file 'foo' vs public 'foo' in different file
JS
Feature support
Library updates
KT-18Move exceptions fromjava.langtokotlinpackageKT-12386Rewrite JS collections in Kotlin, move them tokotlin.collectionspackageKT-7809Make Collection implementations conform to their declared interfacesKT-7473Make AbstractCollection.equals check object typeKT-13429Make 'remove' on fresh iterator throw exception instead of removing last elementKT-13459Make JS implementation of ArrayList::add(index, element) check the index is in valid rangeKT-8724Fix MutableIterator.remove() for HashMapKT-10786Make Map.keys return view of map keys instead of snapshotKT-14194Make HashMap.putAll implementation not to call getKey/getValue
Standard Library
Backward compatibility
KT-14297Add @SinceKotlin annotation to support compatibility with compilation against older standard libraryKT-14213Ensure printStackTrace can be called with -language-version 1.0
Enhancements
KEEP-53Provide two distinct hierarchies of abstract collections: one for implementing read-only/immutable collections, and other for implementing mutable collectionsKEEP-13Provide extension functions to copy mapsKT-18Introduce type aliases for common exceptions fromjava.langinkotlinpackageKT-12762Makekotlin.ranges.untilreturn an empty range for "illegal" 'to' parameterKT-12894Allow nullable receiver foruseextension
Reflection
New features
KT-8998Introduce comprehensive API to work with KType instancesKT-10447Provide a way to check if a KClass is a data classKT-11284Add KClass.cast extensionKT-13106Support annotation constructors in reflection
Optimizations
KT-10651Optimize KClass.simpleName
IDE
New features
KT-12903Implement "Inline type alias" refactoringKT-12902Implement "Introduce type alias" refactoringKT-12904Implement "Create type alias from usage" quick fixKT-9016Make use of named higher order function parametersKT-12205Suggest import of Kotlin static members in editor with Java sourceKT-13941Implement intention for introducing destructured lambda parameters when it's possibleKT-13943Implement inspection and quickfix for to detect a manual destructuring of for / lambda parameter
Issues fixed
KT-13004Support bound method references in completionKT-13242Suggest 'typealias' keyword in completionKT-13244Override/Implement Members: Do not expand type aliases in the generated membersKT-13611Go to Class: Fix presentation of type aliasesKT-13759Rename: Process object-wrapping alias referencesKT-13955Find Usages: Add special type for usages inside of type aliasesKT-13479Support navigation to type aliases from binariesKT-13766Fix optimize imports not to add wrong and unnecessary import because of type aliasKT-12949Consider type aliases as candidates for importKT-13266Suggest non-imported type aliases in completionKT-13689Do not treat type alias constructor usage as original type usage for optimize imports
Scripting
- A new library
kotlin-script-utilcontaining utilities for implementing kotlin script support KT-7880Experimental support for JSR 223 Scripting APIKT-13975,KT-14264Convert error on retrieving gradle plugin settings to warning- Implement support for custom template-based scripts in command-line compiler, maven and gradle plugins
1.1-M01 (EAP-1)
Language features
-
Coroutines (async/await, generators) (proposal)
Current limitations:
-
Bound callable references (proposal)
-
Type aliases (proposal)
Current limitations:
- type alias constructors for inner classes are not supported yet
- annotations on type alias are not supported yet
- limited IDE support
-
Local delegated properties (proposal)
-
JDK dependent built-in classes (proposal)
-
Sealed class inheritors in the same file (proposal)
-
Allow base classes for data classes (proposal)
Scripting
- Implement support for Script Definition Template
and related functionality, except the following parts:
- automatic script templates discovery is not implemented
@file:ScriptTemplateannotation is not supported- the parameters
javaHomeandscriptsfromKotlinScriptExternalDependenciesare not used yet
- Implement support for custom template-based scripts in IDEA: resolving, completion and navigation to symbols from script classpath and sources
- Implement GradleScriptTemplatesProvider extension that supplies a script template if gradle with kotlin script support is used in the project
Compiler
Issues fixed
KT-4779Generate default methods for implementations in interfacesKT-11780Fixed incorrect "No cast needed" warningKT-12156Fixed incorrect error oninlinemodifier inside final classKT-12358Report missing error "Abstract member not implemented" when a fake method of 'Any' is inherited from an interfaceKT-6206Generate equals/hashCode/toString in data class always unless it'll cause a JVM signature clash errorKT-8990Fixed incorrect error "virtual member hidden" for a private method of an inner classKT-12429Fixed visibility checks for annotation usage on top-level declarationsKT-5068Introduced a special diagnostic message for "type mismatch" errors such asfun f(): Int = { 1 }.
Standard Library
KT-8254Provide standard library supplement artifacts for using with JDK 7 and 8. These artifacts include extensions for the types available in the latter JDKs, such asAutoCloseable.use(KT-5899) orStream.toList.KT-12753Provide an access to named group matches ofRegexmatch result (for JDK 8 only).- Add
assertFailsoverload with message to kotlin-test.
IDE
New features
KT-12019Introduce "redundantif" inspection
Issues fixed
KT-12389Do not exit from REPL when toString() of user class throws an exceptionKT-12129Fixed link on api reference page in KDoc
1.0.7
IDE
- Project View: Fix presentation of Kotlin files and their members when @JvmName having the same name as the file itself
KT-15611Extract Interface/Superclass: Disable const-properties- Pull Up: Fix pull-up from object to superclass
KT-15602Extract Interface/Superclass: Disable "Make abstract" for inline/external/lateinit members- Extract Interface: Disable inline/external/lateinit members
KT-12704,KT-15583Override/Implement Members: Support all nullability annotations respected by the Kotlin compilerKT-15563Override Members: Allow overriding virtual synthetic members (e.g. equals(), hashCode(), toString(), etc.) in data classesKT-15355Extract Interface: Disable "Make abstract" and assume it to be true for abstract members of an interfaceKT-15353Extract Superclass/Interface: Allow extracting class with special name (and quotes)KT-15643Extract Interface/Pull Up: Disable "Make abstract" and assume it to be true for primary constructor parameter when moving to an interfaceKT-15607Extract Interface/Pull Up: Disable internal/protected members when moving to an interfaceKT-15640Extract Interface/Pull Up: Drop 'final' modifier when moving to an interfaceKT-15639Extract Superclass/Interface/Pull Up: Add spaces between 'abstract' modifier and annotationsKT-15606Extract Interface/Pull Up: Warn about private members with usages in the original classKT-15635Extract Superclass/Interface: Fix bogus visibility warning inside a member when it's being moved as abstractKT-15598Extract Interface: Red-highlight members inherited from a super-interface when that interface reference itself is not extractedKT-15674Extract Superclass: Drop inapplicable modifiers when converting property-parameter to ordinary parameterKT-15444Spring Support: Consider declaration open if it's supplemented with a preconfigured annotation in corresponding compiler plugin
Intention actions, inspections and quickfixes
New features
KT-15068Implement intention which rename file according to the top-level class name- Implement quickfix which enables/disables coroutine support in module or project
KT-15056Implement intention which converts object literal to classKT-8855Implement "Create label" quick fixKT-15627Support "Change parameter type" for parameters with type-mismatched default value
1.0.6
IDE
KT-13811Expose JVM target setting in IntelliJ IDEA plugin compiler configuration UIKT-12410Expose language version setting in IntelliJ IDEA plugin compiler configuration UI
Intention actions, inspections and quickfixes
KT-14569Convert Property to Function Intention: Search occurrences using progress dialogKT-14501Create from Usage: Support array access expressions/binary expressions with type mismatch errorsKT-14500Create from Usage: Suggest functional type based on the call with lambda argument and unresolved invoke()KT-14459Initialize with Constructor Parameter: Fix IDE freeze on properties in generic classKT-14044Fix exception on deleting unused declaration in IDEA 2016.3KT-14019Create from Usage: Support generation of abstract members for superclassesKT-14246Intentions: Convert function type parameter to receiverKT-14246Intentions: Convert function type receiver to parameter
New features
KT-14729Implement "Add names to call arguments" intentionKT-11760Create from Usage: Support adding type parameters to the referenced type
Refactorings
KT-14583Change Signature: Use new signature when looking for redeclaration conflictsKT-14854Extract Interface: Fix NPE on dialog openingKT-14814Rename: Fix renaming of .kts file to .kt and vice versaKT-14361Rename: Do not report redeclaration conflict for private top-level declarations located in different filesKT-14596Safe Delete: Fix exception on deleting Java class used in Kotlin import directive(s)KT-14325Rename: Fix exceptions on moving file with facade class to another packageKT-14197Move: Fix callable reference processing when moving to another packageKT-13781Extract Function: Do not wrap companion member references inside of thewithcall
New features
KT-14792Rename: Suggest respective parameter name for the local variable passed to function
1.0.5
IDE
KT-9125Support Type Hierarchy on references inside of super type call entriesKT-13542Rename: Do not search parameter text occurrences outside of its containing declarationKT-8672Rename: Optimize search of parameter references in calls with named argumentsKT-9285Rename: Optimize search of private class membersKT-13589Use TODO() consistently in implementation stubsKT-13630Do not show Change Signature dialog when applying "Remove parameter" quick-fix- Re-highlight only single function after local modifications
KT-13474Fix performance of typing super call lambda- Show "Variables and values captured in a closure" highlighting only for usages
KT-13838Add file name to the presentation of private top-level declaration (Go to symbol, etc.)KT-14096Rename: When renaming Kotlin file outside of source root do not rename its namesake in a source rootKT-13928Move Inner Class to Upper Level: Fix replacement of outer class instances used in inner class constructor callsKT-12556Allow using whitespaces and other symbols in "Generate -> Test Function" dialogKT-14122Generate 'toString()': Permit for data classesKT-12398Call Hierarchy: Show Kotlin usages of Java methodsKT-13976Search Everywhere: Render function parameter typesKT-13977Search Everywhere: Render extension type in prefix position- Implement Kotlin facet
Intention actions, inspections and quickfixes
KT-9490Convert receiver to parameter: use template instead of the dialogKT-11483Move to Companion: Do not use qualified names as labelsKT-13874Move to Companion: Fix AssertionError on running refactoring from Conflicts ViewKT-13883Move to Companion Object: Fix exception when applied to classKT-13876Move to Companion Object: Forbid for functions/properties referencing type parameters of the containing classKT-13877Move to Companion Object: Warn if companion object already contains function with the same signatureKT-13933Convert Parameter to Receiver: Do not qualify companion members with labeled 'this'KT-13942Redundant 'toString()' in String Template: Disable for qualified expressions with 'super' receiverKT-13878Remove Redundant Receiver Parameter: Fix exception receiver removalKT-14143Create from Usages: Do not suggest on type-mismatched expressions which are not call argumentsKT-13882Convert Receiver to Parameter: Fix AssertionErrorKT-14199Add Library: Fix exception due to resolution being run in the "dumb mode"- Convert Receiver to Parameter: Fix this replacement
New features
KT-11525Implement "Create type parameter" quickfixKT-9931Implement "Remove unused assignment" quickfixKT-14245Implement "Convert enum to sealed class" intentionKT-14245Implement "Convert sealed class to enum" intention
Refactorings
KT-13535Pull Up: Remove visibility modifiers on adding 'override'KT-13216Move: Report separate conflicts for each property accessorKT-13216Move: Forbid moving of enum entriesKT-13553Move: Do not show directory selection dialog if target directory is already specified by drag-and-dropKT-8867Rename: Rename all overridden members if user chooses to refactor base declaration(s)- Pull Up: Drop 'override' modifier if moved member doesn't override anything
KT-13660Move: Do not drop object receivers when calling variable of extension functional typeKT-13903Move: Remove companion object which becomes empty after the moveKT-13916Move: Report visibility conflicts in import directivesKT-13906Move Nested Class to Upper Level: Do not show directory selection dialog twiceKT-13901Move: Do not ignore target directory selected in the dialog (DnD mode)KT-13904Move Nested Class to Upper Level: Preserve state of "Search in comments"/"Search for text occurrences" checkboxesKT-13909Move Files/Directories: Fix behavior of "Open moved files in editor" checkboxKT-14004Introduce Variable: Fix exception on trying to extract variable of functional typeKT-13726Move: Fix bogus conflicts due to references resolving to wrong library versionKT-14114Move: Fix exception on moving Kotlin file without declarationsKT-14157Rename: Rename do-while loop variables in the loop conditionKT-14128,KT-13862Rename: Use qualified class name when looking for occurrences in non-code filesKT-6199Rename: Replace non-code class occurrences with new qualified nameKT-14182Move: Show error message on applying to enum entries- Extract Function: Support implicit abnormal exits via Nothing-typed expressions
KT-14285Rename: Forbid on backing field referenceKT-14240Introduce Variable: Do not replace assignment left-hand sidesKT-14234Rename: Do not suggest type-based names for functions with primitive return types
New features
KT-13155Implement "Introduce Type Parameter" refactoringKT-11017Implement "Extract Superclass" refactoringKT-11017Implement "Extract Interface" refactoring Pull Up: Support properties declared in the primary constructor Pull Up: Support members declared in the companion object of the original class Pull Up: Show member dependencies in the refactoring dialogKT-9485Push Down: Support moving members from Java to Kotlin classKT-13963Rename: Implement popup chooser for overriding members
Android Lint
Issues fixed
KT-12022Report lint warnings even when file contains errors
1.0.4
Compiler
Analysis & diagnostics
KT-10968,KT-11075,KT-12286Type inference of callable referencesKT-11892Report error on qualified super call to a supertype extended by a different supertypeKT-12875Report error on incorrect call of member extension invokeKT-12847Report error on accessing protected property setter from super class' companionKT-12322Overload resolution ambiguity with constructor reference when class has a companion objectKT-11440Overload resolution ambiguity on specialized Map.put implementation from JavaKT-11389Runtime exception when calling Java primitive overloadingsKT-8200Exception when using non-generic interface with generic argumentsKT-10237Exception on an unresolved symbol in a type parameter bound in the 'where' clauseKT-11821Exception on incorrect number of generic arguments in a type parameter bound in the 'where' clauseKT-12482Exception: Implementation doesn't have the most specific type, but none of the other overridden methods does eitherKT-12687Exception when 'data' modifier is applied to objectKT-9620AssertionError in DescriptorResolver#checkBoundsKT-3689IllegalAccess on a property with private setter of the subclassKT-6391Wrong warning for array casting (Array<Any?> to Array)KT-8596Exception when analyzing nested class constructor reference in an argument positionKT-12982Incorrect type inference when accessing mutable protected property via reflectionKT-13206Report "Cast never succeeds" if and only if ClassCastException can be predictedKT-12467IllegalStateException: Concrete fake override should have exactly one concrete super-declaration: []KT-13340Report "return is not allowed here" only on the return keyword, not the whole expressionKT-2349,KT-6054Report "uninitialized enum entry" if enum entry is referenced before its declarationKT-12809Report "uninitialized variable" if property is referenced before its declarationKT-260Do not report "cast never succeeds" when casting nullable to nullableKT-11769Prohibit access from enum instance initialization code to members of enum's companion objectKT-13371Fix CompilationException: Rewrite at slice LEAKING_THIS key: REFERENCE_EXPRESSIONKT-13401Fix StackOverflowError when checking varianceKT-13330,KT-13349Fix AssertionError: Illegal resolved call to variable with invokeKT-13421Fix AssertionError: Only integer constants should be checked for overflowKT-13555Fix internal error "resolveToInstruction"KT-8989Change error messages: Replace "invisible_fake" with "invisible (private in a supertype)"KT-13612Val reassignment in try / catchKT-5469Incorrect "is never used" warning for value used in catch blockKT-13510Missing "Nested class not allowed" error for anonymous object inside val initializerKT-13685Fix NPE when resolving callable references on incomplete code- Change error messages: Fix quotes around keywords in diagnostic messages
- Change error messages: Remove quotes around visibilities
Parser
KT-7118Improve error message after trailing dot in floating point literalKT-4948Recover by following keywordKT-7915Recover after val with no subsequent nameKT-12987Recover after val with no name before declaration starting with soft keyword
JVM code generation
KT-12909Do not generate redundant bridge for special built-in overrideKT-11915Exception in entrySet when Map implementation in Kotlin extends another oneKT-12755Exception on property generation in multi-file classesKT-12983VerifyError: Bad type on operand stack in arraylengthKT-12908Variable initialization in loop causes VerifyError: Bad local variable typeKT-13040Invalid bytecode generated for extension lambda invocation with safe callKT-13023Char operations throw ClassCastException for boxed CharsKT-11634Exception for super call in delegationKT-12359Redundant stubs are generated on inheriting from java.util.CollectionKT-11833Error generating constructors of class on anonymous object inheriting from nested class of super classKT-13133Incorrect InnerClasses attribute value for anonymous object copied from an inline functionKT-13241Indices optimization leads to VerifyError with smart cast receiverKT-13374Fix compiler exception when inline function contains anonymous object implementing an interface by delegation
Generated code performance
KT-11964No TABLESWITCH in when on enum bytecode if enum constant is importedKT-6916Optimize 'for' over 'downTo'KT-12733Optimize 'for' over 'rangeTo' as a non-qualified call
Standard Library
KT-13115,KT-13297Improve documentation formatting, clarify documentation forFileTreeWalk,SequenceandgenerateSequence.KT-12894Do not fail inCloseable.useif the resource isnull.
Reflection
KT-12915Runtime exception on callBy of JvmStatic function with default argumentsKT-12967Runtime exception on reference to generic propertyKT-13370NullPointerException on companionObjectInstance of a built-in classKT-13462Make KClass for primitive type equal to the corresponding KClass for wrapper type
IDE
KT-12655New Kotlin file: extra error message for already existing fileKT-12760Prohibit running non-Unit returning main functionKT-12893Impossible to open Kotlin compiler settingsKT-10433Copy-pasting reference to companion object member causes import dialogKT-12803Class is marked as unused when it is only used is in method referenceKT-13084Run test method action executes all tests from same kotlin fileKT-12718Deadlock due to index reenteringKT-13114'Unused declaration' option 'JUnit static methods' is always enabledKT-12997Override/Implement Members: Support "Copy JavaDoc" options for library classesKT-12887"Extend selection" should select call's invoked expressionKT-13383,KT-13379Override/Implement Members: Do not make return type non-nullable if base return type is explicitly nullableKT-13218Extract Function: Fix AssertionError on callable referencesKT-6520Introduce 'maino' and 'psvmo' templates for generating main in objectKT-13455Override/Implement: Make return type non-nullable (platform collection case) when overriding Java methodKT-10209Find Usages: Do not duplicate containing declaration in super member warning dialogKT-12977Hybrid dependency causes "outdated binary" warning to appear in non-js projectKT-13057Go to inheritors on Enum should navigate to all enum classes- Fix exception when choose Gradle configurer after project is synced
- Allow configuring Kotlin in Gradle module without Kotlin sources
- Show all Kotlin annotations when browsing hierarchy of "java.lang.Annotation"
Completion
KT-12793Suggest abstract protected extension methods
Performance
KT-12645Lazily calculate FQ name for local classesKT-13071Fix severe freezes because of long lint checks on large files
Highlighting
KT-12937Java synthetic accessors highlighting does not differ from local variables
KDoc
KT-12998Backslash is not renderedKT-12999Backtick inside inline code block is not renderedKT-13000Exclamation mark is not renderedKT-10398Fully qualified link is not resolved in editorKT-12932Link to library element is not clickableKT-10654Quick Doc can't follow KDoc link in referenced function descriptionKT-9271Show Quick Doc for implicit lambda parameter 'it'
Formatter
Intention actions, inspections and quickfixes
New features
-
KT-12152"Leaking this" inspection reports dangerous operations inside constructors including:- Accessing non-final property in constructor
- Calling non-final function in constructor
- Using 'this' as function argument in constructor of non-final class
-
KT-13187"Make constructor parameter a val" should make the val private or public depending on its option -
KT-5771Mark setter parameter type as redundant and provide quickfix to remove it -
KT-9228Add quickfix to remove '@' from annotation used as argument of another annotation -
KT-12251Add quickfix to fix type mismatch for primitive literals -
KT-12838Add quickfix for "Illegal usage of inline parameter" that addsnoinline -
KT-13134Add quickfix for wrong Long suffix (UseLinstead ofl) -
KT-10903Add intention to convert lambda to function reference -
KT-7492Support "Create abstract function/property" inside an abstract class -
KT-10668Support "Create member/extension" corresponding to the extension receiver of enclosing function -
KT-12553Show versions in inspection about different version of Kotlin plugin in Maven and IDE plugin -
KT-12489Implement intention to replace camel-case test function name with a space-separated one -
KT-12730Warn about using different versions of Kotlin Gradle plugin and bundled compiler -
KT-13173Handle more cases in "Add Const Modifier" Intention -
KT-12628Quickfix forinvokeoperator unsafe calls -
KT-11425Inspection and quickfix to replace usages ofequals()andcompareTo()with operators -
KT-13113Inspection to detect redundant string templates -
KT-13011Inspection and quickfix for unnecessary lateinit -
KT-10731Inspection and quickfix for unnecessary use of toString() inside string interpolation -
KT-12043Intention to add / remove braces for when entry/entries -
KT-13483Intention to replacea..b-1witha until band vice versa -
KT-6975Quickfix for adding 'inline' to a function with reified generic
Bugfixes
- Show receiver type in the text of "Create extension" quick fix
- Show target class name in the text of "Create member" quick fix
KT-12869Usages of overridden Java method through synthetic accessors are not foundKT-12813"Find Usages" for property returns function callsKT-7722Approximate unresolvable types in "Create from Usage" quickfixesKT-11115Implement Members: Fix base member detection when abstract and non-abstract members with matching signatures are inherited from an interfaceKT-12876Bogus suggestion to move property to constructorKT-13055Exception in "Specify Type Explicitly" intentionKT-12942"Replace 'when' with 'if'" intention changes semantics when 'if' statements are usedKT-12646'Convert to block body' should use partial body resolveKT-12919Use simple class name in "Change function return type" quickfixKT-13151Incorrect warning "Make variable immutable"KT-13170"Declaration has platform type" inspection: by default should not be reported for platform type argumentsKT-13262"Wrap with safe let call" quickfix produces wrong result for qualified functionKT-13364Do not suggest creating annotations/enum classes for unresolved type parameter boundsKT-12627Allow warnings suppression for secondary constructorKT-13365Disable "Create property" (non-abstract) in interfaces. Make "Create function" (non-abstract) generate function body in interfacesKT-8903Remove Unused Receiver: update function/property usagesKT-11799Create from Usage: Make extension functions/properties 'private' by defaultKT-11795Create from Usage: Place extension properties after the usage and generate stub getterKT-12951Prohibit "Convert to expression body" when function body is 'if' without 'else' or 'when' is non-exhaustiveKT-13430"Add non-null asserted (!!) call" quickfix can't process unary operatorsKT-13336"Convert concatenation to template" intention appends literal to variable omitting bracesKT-13328Do not suggest "Replace infix with safe call" inside conditions or binary / unary expressionsKT-13452"Replace if expression with assignment" doesn't work for cascade if-else if-elseKT-13184"Different Kotlin Version" inspection: false positive caused by verbose plugin version nameKT-13480"Can be replaced with comparison" inspection: false positive if extension method called 'equals' is usedKT-13288"Unused property" inspection: false positive when extending abstract class and implementing interfaceKT-13432"Replace with safe call" quickfix does not work withcompareTo()usageKT-13444"Invert if" intention changes semantics for nested if with returnKT-13536Fix StackOverflowError from "Unused Symbol" inspection after importing enum's values()KT-12820Platform Type Inspection: !! quickfix shouldn't be available when any generic parameter has platform typeKT-9825Incorrect "unused variable" warning when used in finally blockKT-13715Prohibit applying "Change to star projection" to functional types
Refactorings
New features
KT-12017Inline Property: Support "Do not show this dialog" and "Inline this occurrence" options
Bugfixes
KT-11176Add a space before '{' in functions generated "Generate hashCode/equals/toString"KT-12294Introduce Property: Fix extraction of expressions referring to primary constructor parametersKT-12413Change Signature: Fix bogus warning about unresolved type parameters/invalid functional type replacementKT-12084Introduce Property: Do not skip outer classes if extractable expression is contained in object literalKT-13082Rename: Fix exception on property rename previewKT-13207Safe delete: Fix exception when removing any function in 2016.2KT-12945Rename: Fix function description in super method warning dialogKT-12922Introduce Variable: Do not suggest expressions without typeKT-12943Rename: Show function signatures in "Rename Overloads" dialogKT-13157Extract Function: Automatically quote function name if necessaryKT-13010Extract Function: Fix generation of destructuring declarationsKT-13128Introduce Variable: Retain entered name after changing "Specify type explicitly" optionKT-13054Introduce Variable: Skip leading/trailing comments inside selectionKT-13385Move: Quote package name (if necessary) when moving declarations to new fileKT-13395Introduce Property: Fix duplicate count in popup windowKT-13277Change Signature: Fix usage processing to prevent interfering with Python support pluginKT-13254Rename: Conflict detection for type parametersKT-13282,KT-13283Rename: Fix name quoting for automatic renamersKT-13239Rename: Warn about function name conflictsKT-13174Move: Warn about accessibility conflicts due to moving to unrelated moduleKT-13175Move: Warn about accessibility conflicts when moving entire fileKT-13240Rename: Do not report shadowing conflict if redeclaration is detectedKT-13253Rename: Report conflicts for constructor parametersKT-12971Push Down: Do not specifiy visibility on generated overriding membersKT-13124Pull Up: Skip super members without explicit declarationsKT-13032Rename: Support accessors with non-conventional namesKT-13463Rename: Quote parameter name when necessaryKT-13476Rename: Fix parameter rename when new name matches call selectorKT-9381Rename: Do not search for component convention usagesKT-13488Rename: Support rename of packages with non-standard quoted names
Debugger
New features
KT-7549Provide an option to use the Kotlin syntax when evaluating watches and expressions in Java files
Bugfixes
KT-13059Fix error stepping on Step Over action in the end of while blockKT-13037Fix possible deadlock in debugger in 2016.1 and exception in 2016.2KT-12651Fix exception in evaluate expression when bad identifier is used for marking objectKT-12896Fix "Step In" to inline functions for AndroidKT-13269Make quick evaluate work on receiver in qualified expressionsKT-12641Unknown error on evaluate expression containing inline functions with complicated environmentKT-13163Fix exception when evaluating expression: Access is allowed from event dispatch thread only.
JS
New features
KT-3008Option to generate require.js and AMD compatible modulesKT-5987Add ability to refer to classKT-4115Provide method to get Kotlin type name
Bugfixes
KT-8003Compiler exception on 'throw throw'KT-8318Wrong result for 'when' containing only 'else' blockKT-12157Compiler exception onwhencondition containingreturn,breakorcontinueKT-12275Fix code generation with inline function call in condition ofwhile/do..whileKT-13160Fix compiler exception when left-hand side of assignment is array access and right-hand side is inline functionKT-12864Make enums comparableKT-12865Implementing Comparable breaks inheritanceKT-12928Nested inline causes undefined reference accessKT-12929Code with callable reference crashed at runtime (in some JS VMs)KT-13043Invalid invocation generated for secondary constructor that calls constructor from base class with default parametersKT-13025'function?.invoke' does not work properly with extension functionsKT-12807Lambda was lost in generated codeKT-12808Compiler duplicates arguments and the body of lambda when lambda is in RHS of assignment operatorKT-12873Fix ReferenceError when class delegates to complex expressionKT-13658Wrong code when capturing object
Tools
Gradle
- Gradle versions < 2.0 are not supported
KT-13234Setting kotlinOptions.destination and kotlinOptions.classpath is deprecatedKT-9392Kotlin classes are missing after converting Java class to KotlinKT-12736Kotlin classes are deleted when generated Java source is changedKT-12658Build fails after android resources are editedKT-12750Non clean compilation fails with gradle 2.14KT-12912New class from subproject is unresolved with subsequent build with Gradle DaemonKT-12962Incremental compilation: Track changes in generated filesKT-12923Incremental compilation: Compile error when code using internal class is modifiedKT-13528Incremental compilation: support multi-project incremental compilationKT-13732Android Build folder littered withcopyFlavourTypeXXX
KAPT
New features
KT-13499Implement Annotation Processing API (JSR 269) natively in Kotlin
Bugfixes
KT-12776Android build fails with KAPT and generateStubs depending on library module namesKT-13179Java is recompiled every time with Gradle 2.14 and KAPTKT-12303,KT-12113Do not pass non-relevant annotations to processors
REPL
KT-12389REPL just quits when toString() of user class throws an exception
CLI & Ant
KT-13237Include kotlin-reflect.jar to classpath by default, add '-no-reflect' key to suppress this behavior
CLI
KT-13491Support '-no-reflect' in 'kotlin' command
Maven
KT-13211Provide better compilation failure info for TeamCity builds
Compiler daemon
- Fix exception "java.lang.NoClassDefFoundError: Could not initialize class kotlin.Unit"
1.0.3
Compiler
Analysis & diagnostics
- Combination of
openandoverrideis no longer a warning KT-4829Equal conditions inwhenis now a warningKT-6611"This cast can never succeed" warning is no longer reported forFoo<T> as Foo<Any>KT-7174Declaring members with the same signature as non-overridable methods from Java classes (like Object.wait/notify) is now an error (when targeting JVM)KT-12302abstractmodifier for a member of interface is no longer a warningKT-12452openmodifier for a member of interface without implementation is now a warningKT-11111Overriding by inline function is now a warning, overriding by a function with reified type parameter is an errorKT-12337Reference to a property with invisible setter now has KProperty type (as opposed to KMutableProperty)
Issues fixed
KT-4285No warning for a non-tail call when the method inherits default arguments from superclassKT-4764Spurious "Variable must be initialized" in try/catch/finallyKT-6665Unresolved reference leads to marking subsequent code unreachableKT-11750Exceptions when creating various entries with the name "name" in enumsKT-11998Smart cast to not-null is not performed on a boolean property inifconditionKT-10648Exhaustiveness check does not work when sealed class hierarchy contains intermediate sealed classesKT-10717Type inference for lambda with local returnKT-11266Fixed "Empty intersection of types" internal compiler error for some casesKT-11857Fix visibility check for dynamic members within protected method (when targeting JS)KT-12589Improved "infixmodifier is inapplicable" diagnostic messageKT-11679Erroneous call with argument causes Throwable at ResolvedCallImpl.getArgumentMapping()KT-12623Fix ISE on malformed code
JVM code generation
KT-5075Optimize array/collection indices usage inforloopKT-11116Optimize coercion to Unit, POP operations are backward-propagated
Issues fixed
KT-11499Compiler crashes with "Incompatible stack heights"KT-11943CompilationException with extension property of KClassKT-12125Wrong increment/decrement on Byte/Char/Short.MAX_VALUE/MIN_VALUEKT-12192Exhaustiveness check isn't generated for when expression returning UnitKT-12200Erroneously optimized away assignment to a property initialized to zeroKT-12582"VerifyError: Bad local variable type" caused by explicit loop variable typeKT-12708Bridge method not generated when data class implements interface with copy() methodKT-12106import static of reified companion object method throws IllegalAccessError
Performance
- Reduced number of IO operation when loading kotlin compiled classes
Сompiler options
- Allow to specify version of Kotlin language for source compatibility with older releases.
- CLI:
-language-versioncommand line option - Maven:
languageVersionconfiguration parameter, linked withkotlin.compiler.languageVersionproperty - Gradle:
kotlinOptions.languageVersionproperty in task configuration
- CLI:
- Allow to specify which java runtime target version to generate bytecode for.
- CLI:
-jvm-targetcommand line option - Maven:
jvmTargetconfiguration parameter, linked withkotlin.compiler.jvmTargetproperty - Gradle:
kotlinOptions.jvmTargetproperty in task configuration
- CLI:
- Allow to specify path to JDK to resolve classes from.
- CLI:
-jdk-homecommand line option - Maven:
jdkHomeconfiguration parameter, linked withkotlin.compiler.jdkHomeproperty - Gradle:
kotlinOptions.jdkHomeproperty in task configuration
- CLI:
Standard Library
- Improve documentation (including
KT-11632) - List iteration used in collection operations is performed with an indexed loop when the list supports
RandomAccessand the operation isn't inlined
IDE
Completion
New features
- Smart completion after
byandin - Improved completion in bodies of overridden members (when no type is specified)
- Improved presentation of completion items for property accessors
- Fixed keyword completion after
tryin assignment expression KT-8527Include non-imported declarations on the first completionKT-12068Special completion item for "[]" get-operator accessKT-12080Parameter names are now higher up in completion list
Issues fixed
- Fixed enum members being present in completion as static members
- Fixed QuickDoc not working for properties generated for java classes
KT-9166Code completion does not work for synthetic java properties on typing "g"KT-11609No named arguments completion should be after dotKT-11633Wrong indentation after completing a statement in data classKT-11680Code completion of label for existing return with value inserts redundant whitespaceKT-11784Completion forifstatement should add parentheses automaticallyKT-11890Completion for callable references does not propose static Java membersKT-11912String interpolation is not converted to ${} form when accessing this.propertyKT-11957Nocatchandfinallykeywords in completionKT-12103Smart completion for nested SAM-adapter produces short unresolved nameKT-12138Do not show "::error" in smart completion when any function type accepting one argument is expectedKT-12150Smart completion suggests to compare non-nullable with nullKT-12124No code completion for a java property in a specific positionKT-12299Completion: incorrect priority of property foo over method getFoo in Kotlin-only codeKT-12328Qualified function name inserted when typing beforeifKT-12427Completion doesn't work for "@receiver:" annotation targetKT-12447Don't use CompletionProgressIndicator in Kotlin pluginKT-12669Completion should show variant with()when there is default lambdaKT-12369Pressing dot after class name should not cause insertion of constructor call
Spring support
New features
KT-11692Support Spring model diagrams for Kotlin classesKT-12079Support "Autowired members defined in invalid Spring bean" inspection on Kotlin declarationsKT-12092Implement bean references in @Qualifier annotationsKT-12135Automatically configure components based onbasePackageClassesattribute of @ComponentScanKT-12136Implement package references inside of string literalsKT-12139Support Spring configurations linked via @Import annotationKT-12278Implement Spring @Autowired inspectionKT-12465Implement Spring @ComponentScan inspection
Issues fixed
KT-12091Fixed unstable behavior of Spring line markersKT-12096Fixed rename of custom-named beans specified with Kotlin annotationKT-12117Group Kotlin classes from the same file in the Choose Bean dialogKT-12120Show autowiring candidates line markers for @Autowired-annotated constructors and constructor parametersKT-12122Fixed line marker popup on functions with @Qualifier-annotated parametersKT-12143Fixed "Spring Facet Code Configuration (Kotlin)" inspection descriptionKT-12147Fixed exception on analyzing object declaration with @Component annotationKT-12148Warn about object declarations annotated with Spring@Configuration/@Component/etc.KT-12363Fixed "Autowired members defined in invalid Spring bean (Kotlin)" inspection descriptionKT-12366Fixed exception on analyzing class declaration upon annotation typingKT-12384Fixed bean references in factory method calls
Intention actions, inspections and quickfixes
New features
- New icon for "New -> Kotlin Activity" action
- "Change visibility on exposure" and "Make visible" fixes now support all possible visibilities
KT-8477New inspection "Can be primary constructor property" with quick-fixKT-5010"Redundant semicolon" inspection with quickfixKT-9757Quickfix for "Unused lambda expression" warningKT-10844Quick fix to add crossinline modifierKT-11090"Add variance modifiers to type parameters" inspectionKT-11255Move Element Left/Right actionsKT-11450"Modality is redundant" inspectionKT-11523"Add @JvmOverloads annotation" intentionKT-11768"Introduce local variable" intentionKT-11806Quick-fix to increase visibility for invisible memberKT-11807Use function body template when generating overriding functions with default bodyKT-11864Suggest "Create function/secondary constructor" quick fix on argument type mismatchKT-11876Quickfix for "Extension function type is not allowed as supertype" errorKT-11920"Increase visibility" and "Decrease visibility" quickfixes for exposed visibility errorsKT-12089Quickfix "Make primary constructor parameter a property"KT-12121"AddtoString()call" quickfixKT-11104New quickfixes for nullability problems: "Surround with null check" and "Wrap with safe let call"KT-12310New inspection "Member has platform type" with quickfix
Issues fixed
- Fixed "Convert property initializer getter" intention being available inside lambda initializer
- Improved message for "Can be declared as
val" inspection KT-3797Quickfix to make a function abstract should not be offered for object membersKT-11866Suggest "Create secondary constructor" when constructors exist but are not applicableKT-11482Fixed exception in "Move to companion object" intentionKT-11483Pass implicit receiver as argument when moving member function to companion objectKT-11512Allow choosing any source root in "Move file to directory" intentionKT-10950Keep original file package name when moving top-level declarations to separate file (provided it's not ambiguous)KT-10174Optimize imports after applying "Move declaration to separate file" intentionKT-11764Intention "Replace with aforEachfunction call should replacecontinuewithreturn@forEachKT-11724False suggestion to replace with compound assignmentKT-11805Invert if-condition intention breaks code in case of end of line commentKT-11811"Make protected" intention for a val declared in parameters of constructorKT-11710"Replaceifwith elvis operator": incorrect code generated forifexpressionKT-11849Replace explicit parameter withitchanges the meaning of code because of the shadowingKT-11870"Replace with Elvis" refactoring doesn't change the variable type from T? to TKT-12069Specify language for all Kotlin code inspectionsKT-11366"objectCompanionis never used" warning in intellijKT-11275Inconsistent behaviour of "move lambda argument out of parentheses" intention action when using lambda calls with function arguments without parenthesesKT-11594"Add non-null asserted (!!) call" applied to unsafe cast to nullable type causes AE at KtPsiFactory.createExpression()KT-11982False "Redundant final modifier" reportedKT-12040"Replace when with if" produce invalid code for first entry which has commentKT-12204"Use classpath of module" option in existing Kotlin run configuration may be changed when a new run configuration is createdKT-10635Don't mark private writeObject and readObject methods of Serializable classes as unusedKT-11466"Make abstract" quick fix applies to outer class of object with accidentally abstract functionKT-11120Constructor parameter/field reported as unused symbol even if it haveusedannotationKT-11974Invert if-condition intention loses commentsKT-10812Globally unused constructors are not marked as suchKT-11320Don't mark @BeforeClass (JUnit4) annotated functions as unusedKT-12267"Change type" quick fix converts to Int for Long literalKT-11949Various problems fixed with "Constructor parameter is never used as a property" inspectionKT-11716"Simplyforusing destructuring declaration" intention: incorrect behavior for data classesKT-12145"Simplifyforusing destructuring declaration" should work even when no variables declared inside loopKT-11933Entities used only by alias are marked as unusedKT-12193Convert to block body isn't equivalent for when expressions returning UnitKT-10779Simplifyforusing destructing declaration: intention / inspection quick fix is available only when all variables are usedKT-11281Fix exception on applying "Convert to class" intention to Java interface with Kotlin inheritor(s)KT-12285Fix exception on test class generationKT-12502Convert to expression body should be forbidden for non-exhaustive when returning UnitKT-12260ISE while replacing an operator with safe callKT-12649"Convert if to when" intention incorrectly deletes codeKT-12671"Shot type" action: "Type is unknown" error on an invoked expressionKT-12284Too wide applicability range for "Add braces to else" intentionKT-11975"Invert if-condition" intention does not simplifyisexpressionKT-12437"Replace explicit parameter" intention is suggested for parameter of inner lambda in presence ofitfrom outer lambdaKT-12290Navigate to the generated declaration when using "Implement abstract member" intentionKT-12376Don't show "Package directive doesn't match file location" in injected codeKT-12777Fix exception in "Create class" quickfix applied to unresolved references in type arguments
Language injection
- Apply injection for the literals in property initializer through property usages
- Enable injection from Java or Kotlin function declaration by annotating parameter with @Language annotation
KT-2428Support basic use-cases of language injection for expressions marked with @Language annotationKT-11574Support predefined Java positions for language injectionKT-11472Add comment or @Language annotation after "Inject language or reference" intention automatically
Refactorings
New features
KT-6372Add name suggestions to Rename dialogKT-7851Respect naming conventions in automatic variable renameKT-8044,KT-9432Support @JvmName annotation in rename refactoringKT-8512Support "Rename tests" options in Rename dialogKT-9168Support rename of synthetic propertiesKT-10578Support automatic test renaming for facade filesKT-12657Rename implicit usages of annotation methodvalueKT-12759Suggest renaming both property accessors with matching @JvmName when renaming one of them from Java
Issues fixed
KT-4791Rename overridden property and all its accessors on attempt to rename overriding accessor in Java codeKT-6363Do not rename ambiguous references in import directivesKT-6663Fixed rename of ambiguous import reference to class/function when some referenced declarations are not changedKT-8510Preserve "Search in comments and strings" and "Search for text occurrences" settings in Rename dialogKT-8541,KT-8786Do now show 'Rename overloads' options if target function has no overloadsKT-8544Show more detailed description in Rename dialogKT-8562Show conflicts dialog on attempt of redeclarationKT-8611Qualify class references to resolve rename conflicts when possibleKT-8732Implement Rename conflict analysis and fixes for properties/parametersKT-8860Allow renaming class by constructor delegation call referencing primary constructorKT-8892Suggest renaming base declarations on overriding members in object literalsKT-9156Quote non-identifier names in Kotlin referencesKT-9157Fixed in-place rename of Kotlin expression referring Java declarationKT-9241Do not replace Java references to synthetic component functions when renaming constructor parameterKT-9435Process property accessor usages (Java) in comments and string literalsKT-9444Rename dialog: Allow typing any identifier without backquotesKT-9446Copy default parameter values to overriding function which is renamed while its base function is notKT-9649Constraint search scope of parameter declared in a private memberKT-10033Qualify references to members of enum companions in case of conflict with enum entriesKT-10713Skip read-only declarations when renaming parametersKT-10687Qualify property references to avoid shadowing by parametersKT-11903Update references to facade class when renaming file via matching top-level classKT-12411Fix package name quotation in Move refactoringKT-12543Qualify property references withthisto avoid renaming conflictsKT-12732Copy default parameter values to overriding function which is renamed by Java reference while its base function is unchangedKT-12747Fix exception on file copy
Java to Kotlin converter
New features
KT-4727Convert Java code copied from browser or other sources
Issues fixed
KT-11952Assertion failed in PropertyDetectionCache.get on conversion of access to Java constant of anonymous typeKT-12046Recursive property setterKT-12039Static imports converted missing ".Companion"KT-12054Wrong conversion ofinstanceofchecks with raw typesKT-12045ConvertObject()toAny()
Android Lint
Issues fixed
KT-12015False positive for Bundle.getInt()KT-12023"minSdk" lint check doesn't work foras/isKT-12674"Calling new methods on older versions" errors for inlined constantsKT-12681Running lint from main menu: diagnostics reported for java source files onlyKT-12173False positive for "Toast created but not shown" inside SAM adapterKT-12895NoSuchMethodError thrown when saving a Kotlin file
KDoc
New features
- Support for @receiver tag
Issues fixed
- Rendering of
_and*standalone characters - Rendering of code blocks
KT-9933Indentation in code fragments is not preservedKT-10998Spaces around links are missing in return blockKT-11791Markdown links renderingKT-12001Allow use of@paramto document type parameter
Maven support
New features
- Inspections that check that kotlin IDEA plugin, kotlin Maven plugin and kotlin stdlib are of the same version
KT-11643Inspections and intentions to fix erroneously configured Maven pom fileKT-11701"Add Maven Dependency quick fix" in Kotlin source filesKT-11743Intention to replace kotlin-test with kotlin-test-junit
Issues fixed
KT-9492Configuring multiple Maven ModulesKT-11642Kotlin Maven configurator tags orderKT-11436"Choose Configurator" control opens dialogs with inconsistent modality (linux)KT-11731Default maven integration doesn't include documentationKT-12568Execution configuration: file path completion works only in some sub-elements ofKT-12558Configure Kotlin in Project: "Undo" should revert changes in all pomsKT-12512"Different IDE and Maven plugin version" inspection is being invoked for non-tracked pom.xml files
Debugger
New features
KT-11438Support navigation from stacktrace to inline function call site
Issues fixed
- Do not step into inline lambda argument during step over inside inline function body
- Fix step over for inline argument with non-local return
KT-12067Deadlock in Kotlin debugger is fixedKT-12232No code completion in Evaluate Expression and Throwable at CodeCompletionHandlerBase.invokeCompletion()KT-12137Evaluate expression: code completion/intention actions allows to use symbols from modules that are not referencedKT-12206NoSuchFieldError in Evaluate Expression on a property of a derived classKT-12678NoSuchFieldError in Evaluate Expression on accessing delegated property defined in other moduleKT-12773Fix debugging for Kotlin JS projects
Formatter
Issues fixed
KT-12035Spaces aroundasKT-12018Spaces between function name and arguments in infix callsKT-11961Spaces before angle bracket in method definitionKT-12175Don't enforce empty line between secondary constructors without bodyKT-12548Spaces aroundiskeywordKT-12446Spaces before class type parametersKT-12634Spaces between method name and parenthesis in method callKT-10680Spaces aroundinkeywordKT-12791Spaces between curly brace and expression inside string templateKT-12781Spaces between annotation and expressionKT-12689Spaces around semicolonsKT-12714Spaces around parentheses in enum elements
Other
New features
- Added "Decompile" button to Kotlin bytecode toolwindow
- Added Kotlin "Tips of the day"
- Added "Kotlin 1.1 EAP" to "Configure Kotlin Plugin updates"
KT-2919Constructor calls are no longer highlighted as classesKT-6540Infix function calls are now highlighted as regular function callsKT-9410Annotations in Kotlin are now highlighted with the same color as in Java by defaultKT-11465Type parameters in Kotlin are now highlighted with the same color as in Java by defaultKT-11657Allow viewing decompiled Java source code for Kotlin-compiled classesKT-11704Support file path references inside of Kotlin string literalsKT-12076Kotlin Plugin update check: always display installed version numberKT-11814New icon for kotlin annotation classesKT-12735Convert JavaDoc to KDoc when overriding Java class member in Kotlin
Issues fixed
KT-5960Can't find usages for Java methods used from Kotlin by call conventionKT-8362"New Kotlin file": Keywords should be escaped in package nameKT-8682Respect "Copy JavaDoc" option in the "Override/Implement Members..." dialogKT-8817Fixed rename of Java getters/setters through synthetic property references in KotlinKT-9399Find Usages omits Kotlin annotation parameter usage in Java sourceKT-9797"Kotlin Bytecode" toolwindow breaks after closingKT-11145Use progress indicator when searching usages in Introduce ParameterKT-11155Allow running multiple Kotlin classes as well as running mixtures of Kotlin and Java classesKT-11495Show recursion line markers for extension function calls with different receiverKT-11659Generate abstract overrides for Any members inside of Kotlin interfacesKT-12070Add empty line in error message of Maven and Gradle configurationKT-11908Allow properties with custom setters to be used in generated equals/hashCode/toStringKT-11617Fixed title of Introduce Parameter declaration chooserKT-11817Fixed rename of Kotlin enum constants through Java referencesKT-11816Fixed usages search for Safe Delete on simple enum entriesKT-11282Delete interface reference from super-type list when applying Safe Delete to Java interfaceKT-11967Fix Find Usages/Rename for parameter references in XML filesKT-10770"Optimize imports" will not keep import if a type is only referenced by kdocKT-11955Copy/Paste inserts fully qualified name when copying function with overloadsKT-12436"Replace explicit parameter with it": java.lang.Exception at BaseRefactoringProcessor.run()KT-12440Removing unused parameter results in Exception "Refactorings should not be started inside write action"KT-12006getLanguageLevel is slow for Kotlin light classesKT-12026"Constant expression required" in Java for const Kotlin valuesKT-12259ClassCastException in light classes while trying to create generic propertyKT-12289Remove unnecessary?fromserrlive templateKT-12110Map help button of the Compiler - Kotlin pageKT-12075Kotlin Plugin update check: make dumbawareKT-10255call BuildManager.clearState(project) in apply() method of Kotlin Compiler Settings configurableKT-11841New Project / Module wizard, Gradle: pure Kotlin module is created withoutrepositoriescall in build.gradleKT-11095Java cannot infer generic return type of Kotlin function (with java 8 language level)KT-12090Intellij/Kotlin plugin does not handle generic return type of static method defined in Kotlin, called from JavaKT-12206Fix NoSuchFieldError on accessing base property without backing field in evaluate expressionKT-12516File Structure: Kotlin annotation classes have Java annotation iconsKT-11328"New Kotlin class": generates packages when fully qualified name is specifiedKT-11778Exception in Lombok plugin: Rewrite at slice FUNCTIONKT-11708"Go to declaration" doesn't work on a call to function with SAM conversion on a derived typeKT-12381Prefer not-nullable return type when overriding Java method without nullability annotationKT-12647Performance improvement for test-related line markersKT-12526Kotlin intentions increase PSI modification counts from isAvailable, even in daemon threads
Reflection
Issues fixed
KT-11531Optimize "KCallable.name"KT-10771Reflection on Function objects does not support lambdas with generic return typeKT-11824Reflection inconsistency between member property and accessor
JS
- Improve performance of maps and sets
Issues fixed
KT-6942Generate structural equality check (i.e.Any.equals) instead of referential check (===) value equality patterns inwhenKT-7228Wrong AbstractList signatureKT-8299Wrong access to private member in autogenerated code in data classKT-11346Reified functions likefilterIsInstanceare now available in JS Standard LibraryKT-12305Incorrect translation ofvarargin@nativefunctionsKT-12254JsEmptyExpression in initializer when compiling code likeval x = throw Exception()KT-11960Wrong code generated when a method of a local class calls constructor of the classKT-10931Incorrect inlining of library method with optional parametersKT-12417Wrong check cast generated for KMutableProperty
Tools
New features
KT-11839Maven goal to execute kotlin script
Issues fixed
- KAPT: fix error when using enum constructors with parameters
- Various problems with gradle 2.2 fixed:
KT-12478,KT-12406,KT-12478 KT-12595JPS: Fixed com.intellij.util.io.MappingFailedException: Cannot map bufferKT-11166Gradle: Unable to access internal classes from test code within the same moduleKT-12352KAPT: Fix "Classpath entry points to a non-existent location" warningsKT-12074Building Kotlin maven projects using a parent pom will silently failKT-11770Warning "RuntimeException: Could not find installation home path" when using Gradle Incremental CompilationKT-10969Android extensions: NullPointerException when finding view in FragmentKT-11885Gradle/Android: Unresolved reference "kotlinx" when classpath dependency is defined in root build.gradleKT-12786Deprecation warning with Gradle 2.14
1.0.2-1
- KT-12159, KT-12406, KT-12431, KT-12478 Support Android Studio 2.2
- KT-11770 Fix warning "RuntimeException: Could not find installation home path" when using incremental compilation in Gradle
- KT-12436, KT-12440 Fix multiple exceptions during refactorings in IDEA 2016.2 EAP
- KT-12015, KT-12047, KT-12387 Fix multiple issues in Kotlin Lint checks
1.0.2
Compiler
Analysis & diagnostics
- KT-7437, KT-7971, KT-7051, KT-6125, KT-6186, KT-11649 Implement missing checks for protected visibility
- KT-11666 Report "Implicit nothing return type" on non-override member functions
- KT-4328, KT-11497, KT-10493, KT-10820, KT-11368 Report error if some classes were not found due to missing or conflicting dependencies
- KT-11280 Do not perform smart casts for values with custom
equalscompared with== - KT-3856 Fix wrong "inner class inaccessible" diagnostic for extension to outer class
- KT-3896, KT-3883, KT-4986
do...while (true)is now considered an infinite loop - KT-10445 Prohibit initialization of captured
valin lambda or in local function - KT-10042 Correctly handle local classes and anonymous objects in control flow analysis
- KT-11043 Prohibit complex expressions with class literals in annotation arguments
- KT-10992, KT-11007 Fix multiple problems related to smart casts
- KT-11490 Prohibit nested intersection types in return position
- KT-11411 Report "illegal noinline/crossinline" on parameter of subtype of function type
- KT-3083 Report "conflicting overloads" for functions with parameter of type parameter type
- KT-7265 Parse anonymous functions in blocks as expressions
- KT-8246 Handle break/continue for outer loop correctly in case of try/finally in between
- KT-11300 Report error on increment or augmented assignment when
getis an operator butsetis not - Report warning about unused anonymous functions
- Improve callable reference type in some ambiguous cases
- Improve multiple diagnostic messages: KT-10761, KT-9760, KT-10949, KT-9887, KT-9550, KT-11239, KT-11819
- Fix several compiler bugs leading to exceptions: KT-9820, KT-11597, KT-10983, KT-10972, KT-11287, KT-11492, KT-11765, KT-11869
JVM code generation
- KT-8269, KT-9246, KT-10143 Fix visibility of protected classes in bytecode
- KT-11363 Fix potential binary compatibility breakage on using
whenover enums in inline functions - KT-11762 Fix VerifyError caused by explicit loop variable type
- KT-11645 Fix NoSuchFieldError on private const property in multi-file class
- KT-9670 Optimize Class <-> KClass wrapping/unwrapping when getting values from annotation
- KT-6842 Optimize unnecessary boxing and interface calls on iterating over ranges
- KT-11025 Don't inline const val properties in non-annotation contexts
- KT-5429 Write nullability annotations on extension receiver parameters
- KT-11347 Preserve source file and line number of call site when inlining certain standard library functions
- KT-11677 Write correct generic signatures for local classes in inlined lambdas
- KT-12127 Do not write unnecessary generic signature for property delegate backing field
- Fix multiple issues leading to exceptions or bad bytecode being generated: KT-11034, KT-11519, KT-11117, KT-11479
Java interoperability
- KT-3068 Load contravariantly projected collections in Java (
List<? super T>) as mutable collections in Kotlin (MutableList<in T>) - KT-11322 Do not lose type nullability information in SAM constructors
- KT-11721 Fix wrong "Typechecker has run into recursive problem" error on calling Kotlin get function as synthetic Java property
- KT-10691 Fix wrong "Inherited platform declarations clash" error on inheritance from generic Java class with overloaded methods
Command line compiler
- KT-9546 Flush stdout and stderr before shutdown when executing scripts
- KT-10605 Disable colored output on certain platforms to prevent crashes
- Report warning instead of error on unknown "-X" flags
- Remove the compiler option "Xmultifile-facades-open"
Compiler daemon
- Reduce read disk activity
- Fix compiler daemon JAR cache clearing on IDEA Ultimate
Standard library
- KT-11410 Reduce method count of the standard library by ~2k
- KT-9990 Optimize snapshot operations to return special collection implementations when result is empty or has single element
- KT-10794 EmptyList now implements RandomAccess
- KT-10821 Create at most one wrapper sequence for adjacent drop/take operations on sequences
- KT-11301 Make Map.plus accept Map out-projected by key type as either operand (receiver or parameter)
- KT-11485 Remove implementations of some internal intrinsic functions
- KT-11648 Add deprecated extension MutableList.remove to redirect to valid function removeAt
- KT-11348 kotlin.test: Make inline methods
todoandcurrentStackTrace@InlineOnlynot to lose stack trace - KT-11745 Rename parameters of
String.subSequenceto match those ofCharSequence.subSequence - KT-10953 Clarify parameter order of lambda function parameter of
*Indexedfunctions - KT-10198 Improve docs for
binarySearchfunctions - KT-9786 Improve docs for
trimIndent/trimMargin
Reflection
- KT-9952 Improve
toString()for lambdas and function expressions when kotlin-reflect.jar is available - KT-11433 Fix multiple resource leaks by closing InputStream instances
- KT-8131 Fix exception from calling
KProperty.javaFieldon a subclass - KT-10690 Support
javaMethodandkotlinFunctionfor top level functions in a different file - KT-11447 Support reflection calls to multifile class members
- KT-10892 Load annotations of const properties from multifile classes
- KT-11258 Don't crash on requesting members of Java collection classes
- KT-11502 Clarify KClass equality
JS
- KT-4124 Support nested classes
- KT-11030 Support local classes
- KT-7819 Support non-local returns in local lambdas
- KT-6912 Safe calls (
x?.let { it }) are now inlined - KT-2670 Support unsafe casts (
as) - KT-7016, KT-8012 Fix
is-checks for reified type parameters - KT-7038 Avoid unwanted side effects on
is-checks for nullable types - KT-10614 Copy array on vararg call with spread operator
- KT-10785 Correctly translate property names and receiver instances in assignment operations
- KT-11611 Fix translation of default value of secondary constructor's functional parameter
- KT-11100 Fix generation of
invokeon objects and companion objects - KT-11823 Fix capturing of outer class'
thisin inner's lambdas - KT-11996 Fix translation of a call to a private member of an outer class from an inner class which is a subtype of the outer class
- KT-10667 Support inheritance from nested built-in types such as Map.Entry
- KT-7480 Remove declarations of LinkedList, SortedSet, TreeSet, Enumeration
- KT-3064 Implement
CharSequence.repeat
IDE
New features:
- Spring Support
- KT-11098 Inspection on final classes/functions annotated with Spring
@Configuration/@Component/@Bean - KT-11405 Navigation and Find Usages for Spring beans referenced in annotation arguments and BeanFactory method calls
- KT-3741 Show Spring-specific line markers on Kotlin classes
- KT-11406 Support Spring EL injections inside of Kotlin string literals
- KT-11604 Support "Configure Spring facet" inspection on Kotlin classes
- KT-11407 Implement "Generate Spring Dependency..." actions
- KT-11408 Implement "Generate
@AutowiredDependency..." action - KT-11652 Rename bean attributes mentioned in Spring XML config together with corresponding Kotlin declarations
- KT-11098 Inspection on final classes/functions annotated with Spring
- Enable precise incremental compilation by default in non-Maven/Gradle projects
- KT-11612 Highlight named arguments
- KT-7715 Highlight
vars that can be replaced byvals - KT-5208 Intention action to convert string to raw string and back
- KT-11078 Quick fix to remove
.javawhen KClass is expected - KT-1494 Inspection to highlight public members with no documentation
- KT-8473 Intention action to implement interface or abstract class
- KT-10299 Inspection to warn on array properties in data classes
- KT-6674 Inspection to warn on protected symbols in effectively final classes
- KT-11576 Quick fix to suppress "Unused symbol" warning based on annotations on the declaration
- KT-10063 Quick fix for adding
arrayOfwrapper for annotation parameters - KT-10476 Quick fix for converting primitive types
- KT-10859 Quick fix to make
varwith private setter final - KT-9498 Quick fix to specify property type
- KT-10509 Quick fix to simplify condition with senseless comparison
- KT-11404 Quick fix to let type implement missing interface
- KT-6785, KT-10013, KT-9996, KT-11675 Support Smart Enter for trailing lambda argument, try/catch/finally, property setter, init block
- Add
kotlinClassName()andkotlinFunctionName()macros for use in live templates - Auto-configure EAP-repository during Kotlin Maven and Gradle project set up
Issues fixed:
- KT-11678, KT-4768 Support navigation to Kotlin libraries from Java sources
- KT-9401 Support Change Signature quick fix for Java -> Kotlin case
- KT-8592 Fix "Choose sources" for Kotlin files
- KT-11256 Fix Navigate to declaration for Java constructor with
@NotNullparameter - KT-11018 Fix
vars shown in Ctrl + Mouse Hover asvals - KT-5105, KT-11024 Improve incompatible ABI versions editor strap, show the hint on how to resolve the problem
- KT-11638 Fixed
hashCode()implementation in "Generate equals/hashCode" action - KT-10971 Pull Members Up: Always insert spaces between keywords
- KT-11476, KT-4175, KT-10965, KT-11076 Formatter: fix multiple issues regarding space handling
- KT-9025 Improve "Create Kotlin Java runtime library" dialog usability
- KT-11481 Fix "Add import" intention not being available for
isbranches in when - KT-10619 Fix completion after package name in annotation
- KT-10621 Do not show non-top level packages after
@in completion - KT-11295 "Convert string to template" intention: fix exception on certain code
- KT-10750, KT-11424 "Convert if to when" intention now detects effectively else branches in subsequent code and performs more accurate comment handling
- Configure Kotlin: show only changed files in the notification "Kotlin not configured", restore all changed files in undo action
- KT-11556 Do not show "Kotlin not configured" for Kotlin JS projects
- KT-11593 Fix "Configure Kotlin" action for Gradle projects in IDEA 2016
- KT-11077 Use new built-in definition file format (
.kotlin_builtinsfiles) - KT-5728 Remove closing curly brace in a string template when opening one is deleted
- KT-10883 "Explicit get or set call" quick fix: do not move caret too far away
- KT-5717 "Replace
whenwithif": do not lose comments - KT-10797 "Replace with operator" intention is not available anymore for non-
operatorfunctions - KT-11529 Highlighting range for unresolved annotation name does not include
@now - KT-11178 Don't show "Change type arguments" fix when there's nothing to change
- KT-11789 Don't interpret annotations inside Markdown code blocks as KDoc tags
- KT-11702 Fixed resolution of Kotlin beans with custom name
- KT-11689 Fixed exception on attempt to navigate to Kotlin file from Spring notification balloon
- KT-11725 Fixed renaming of injected SpEL references
- KT-11720 Fixed renaming of Kotlin beans through SpEL references
- KT-11719 Fixed renaming of Kotlin parameters references in XML files
- KT-11736 Fixed searching of Java usages for @JvmStatic properties and @JvmStatic @JvmOverloads functions
- KT-11862 Fixed bogus warnings about unresolved types in the Change Signature dialog
- Fix several issues leading to exceptions: KT-11579, KT-11580, KT-11777, KT-11868, KT-11845, KT-11486
- Fixed NoSuchFieldException in Kotlin module settings on IDEA Ultimate
Debugger
- KT-11705 "Smart step into" no longer skips methods from subclasses
- Debugger can now distinguish nested inline arguments
- KT-11326 Support private classes in Evaluate Expression
- KT-11455 Fix Evaluate Expression behavior for files with errors in sources
- KT-10670 Fix Evaluate Expression behavior for inline functions with default parameters
- KT-11380 Evaluate Expression now handles smart casts correctly
- KT-10148 Do not suggest methods from outer context in "Smart step into"
- Fix Evaluate Expression for expression created for array element
- Complete private members from libraries in Evaluate Expression
- KT-11578 Evaluate Expression: do not highlight completion variants from nullable receiver with grey
- KT-6805 Convert Java expression to Kotlin when opening Evaluate Expression from Variables view
- KT-11927 Fix "ambiguous import" error when invoking Evaluate Expression from Variables view for some field
- KT-11831 Fix Evaluate Expression for values of raw types
- Show error message when debug info for some local variable is corrupted
- Avoid 1s delay in completion in debugger fields if session is not stopped on a breakpoint
- Avoid cast to runtime type unavailable in current scope
- Fix text with line breaks in popup with line breakpoint variants
- Fix breakpoints inside inline functions in libraries sources
- Allow breakpoints at catch clause declaration
- KT-11848 Fix breakpoints inside generic crossinline lambda argument body
- KT-11932 Fix Step Over for
whileloop condition
Java to Kotlin converter
- Protected members used outside of inheritors are converted as public
- Support conversion for annotation constructor calls
- Place comments from the middle of the call to the end
- Drop line breaks between operator arguments (except
+,-,&&and||) - Add non-null assertions on call site for non-null parameters
- Specify type for variables with anonymous type if they have write accesses
- KT-11587 Fix conversion of static field accesses from other Java class
- KT-6800 Quote
$symbols in converted strings - KT-11126 Convert annotations in annotations parameters correctly
- KT-11600 Do not produce unresolved
toArraycalls for JavaCollection#toArray(T[]) - KT-11544 Fix conversion of uninitialized non-final field
- KT-10604 Fix conversion of scratch files
- KT-11543 Do not produce unnecessary casts of non-nullable expression to nullable type
- KT-11160 Fix IDE freeze
Android
- KT-7729 Add Android Lint checks for Kotlin (from Android Studio 1.5)
- KT-11487 Fixed sequential build with kapt and stubs enabled when Kotlin source file was modified and no Java source files were modified
- KT-11264 Action to create new activity in Kotlin
- KT-11201 Do not ignore items with similar names in kapt
- KT-11944 Rename Android Extensions imports when the layout file is renamed/deleted/added
- KT-10321 Do not upcast ViewStub to View
- KT-10841 Support
@android:id/*IDs in Android Extensions
Maven
Gradle
- KT-8487 Experimental support for incremental compilation with project property
kotlin.incremental - KT-11350 Fixed a bug causing Java rebuild when both Java and Kotlin are up-to-date
- KT-10507 Fix IllegalArgumentException "Missing extension point" on parallel builds
- KT-10932 Prevent compile tasks from running when nothing changes
- KT-11993 Fix NoSuchMethodError on access to internal members in production from tests (IDEA 2016+)
1.0.1-2
Compiler
- KT-11584, KT-11514 Correct comparison of Long! / Double! with integer constant
- KT-11590 SAM adapter for inline function corrected
1.0.1-1
Compiler
- KT-11468 More correct use-site / declaration-site variance combination handling
- KT-11478 "Couldn't inline method call" internal compiler error fixed
1.0.1
Compiler
Analysis & diagnostics issues fixed:
- KT-2277 Local function declarations are now checked for overload conflicts
- KT-3602 Special diagnostic is reported now on nullable ‘for’ range
- KT-10775 No compilation exception for empty when
- KT-10952 False deprecation warnings removed
- KT-10934 Type inference improved for whens
- KT-10902 Redeclaration is reported for top-level property vs classifier conflict
- KT-9985 Correct handling of safe call arguments in generic functions
- KT-10856 Diagnostic about projected out member is reported correctly on calls with smart cast receiver
- KT-5190 Calls of Java 8 Stream.collect
- KT-11109 Warning is reported on Strictfp annotation on a class because it's not supported yet
- KT-10686 Support generic constructors defined in Java
- KT-6958 Fixed resolution for overloaded functions with extension lambdas
- KT-10765 Correct handling of overload conflict between constructor and function in JPS
- KT-10752 If inferred type for an expression refers to a non-accessible Java class, it's a compiler error to prevent IAE in runtime
- KT-7415 Approximation of captured types in signatures
- KT-10913, KT-10186, KT-5198 False “unreachable code” fixed for various situations
- Minor: KT-3680, KT-9702, KT-8776, KT-6745, KT-10919, KT-9548
JVM code generation issues fixed:
- KT-11153 NoClassDefFoundError is fixed on primitive iterators during boxing optimization
- KT-7319 Correct parameter names for @JvmOverloads-generated methods
- KT-10425 Non-const values of member properties are not inlined now
- KT-11163 Correct calls of custom compareTo on primitives
- KT-11081 Reified type parameters are correctly stored in anonymous objects
- KT-11121 Generic properties generation is fixed for interfaces
- KT-11285, KT-10958 Special bridge generation refined
- KT-10313, KT-11190, KT-11192, KT-11130 Diagnostics and bytecode fixed for various operations with Long
- KT-11203, KT-11191, KT-11206, KT-8505, KT-11203 Handling of increment / decrement for collection elements with user-defined get / set fixed
- KT-9739 Backticked names with spaces are generated correctly
JS translator issues fixed:
Standard library
- KT-10579 Improved performance of sum() and average() for arrays
- KT-10821 Improved performance of drop() / take() for sequences
Reflection
- KT-10840 Fix annotations on Java elements in reflection
IDE
New features:
- Compatibility with IDEA 2016
- Kotlin Education Plugin (for IDEA 2016)
- KT-9752 More usable file chooser for "Move declaration to another file"
- KT-9697 Move method to companion object and back
- KT-7443 Inspection + intention to replace assert (x != null) with "!!" or elvis
General issues fixed:
- KT-11277 Correct moving of Java classes from project view
- KT-11256 Navigate Declaration fixed for Java classes with @NotNull parameter in constructor
- KT-10553 A warning provided when Refactor / Move result is not compilable due to visibility problems
- KT-11039 Parameter names are now not missing in parameter info and completion for compiled java code used from kotlin
- KT-10204 Highlight usages in file is working now for function parameter
- KT-10954 Introduce Parameter (Ctrl+Alt+P) fixed when default value is a simple name reference
- KT-10776 Intentions: "Convert to lambda expression" works now for empty function body
- KT-10815 Generate equals() and hashCode() is no more suggested for interfaces
- KT-10818 "Initialize with constructor parameter" fixed
- KT-8876 "Convert member to extension" now removes modality modifiers (open / final)
- KT-10800 Create enum entry now adds comma after a new entry
- KT-10552 Pull Members Up now takes visibility conflicts into account
- KT-10978 Partially fixed, completion for JOOQ became ~ 10 times faster
- KT-10940 Reference search optimized for convention functions
- KT-9026 Editor no more locks up during scala file viewing
- KT-11142, KT-11276 Darkula scheme appearance corrected for Kotlin
- Minor: KT-10778, KT-10763, KT-10908, KT-10345, KT-10696, KT-11041, KT-9434, KT-8744, KT-9738, KT-10912
Configuration issues fixed:
- KT-11213 Kotlin plugin version corrected in build.gradle
- KT-10918 "Update Kotlin runtime" action does not try to update the runtime coming in from Gradle
- KT-11072 Libraries in maven, gradle and ide systems are never more detected as runtime libraries
- KT-10489 Configuration messages are aggregated into one notification
- KT-10831 Configure Kotlin in Project: "All modules containing Kotlin files" does not list modules not containing Kotlin files
- KT-10366 Gradle import: no fake "Configure Kotlin" notification on project creating
Debugger issues fixed:
- KT-10827 Fixed debugger stepping for inline calls
- KT-10780 Breakpoints in a lazy property work correctly
- KT-10634 Watches can now use private overloaded functions
- KT-10611 Line breakpoints now can be created inside lambda in init block
- KT-10673 Breakpoints inside lambda are no more ignored in presence of crossinline function parameter
- KT-11318 Stepping inside for each is optimized
- KT-3873 Editing code while standing on breakpoint is optimized
- KT-7261, KT-7266, KT-10672 Evaluate expression applicability corrected