336 KiB
CHANGELOG
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