CHANGELOG

1.1.3

Compiler

  • KT-4960 Redeclaration is not reported for type parameters of interfaces
  • KT-5160 No warning when a lambda parameter hides a variable
  • KT-5246 is check fails on cyclic type parameter bounds
  • KT-5354 Wrong label resolution when label name clash with fun name
  • KT-5822 Exception on package directive in REPL
  • KT-7645 Prohibit default value for catch-block parameter
  • KT-7724 Can never import private member
  • KT-7796 Wrong scope for default parameter value resolution
  • KT-7931 Optimize iteration over strings/charsequences on JVM
  • KT-7984 Unexpected “Unresolved reference” in a default value expression in a local function
  • KT-7985 Unexpected “Unresolved reference to a type parameter” in a default value expression in a local function
  • KT-8320 It should not be possible to catch a type parameter type
  • KT-8877 Automatic labeling doesn't work for infix calls
  • KT-9251 Qualified this does not work with labeled function literals
  • KT-9370 not possible to pass an argument that starts with “-” to a script using kotlinc
  • KT-9551 False warning “No cast needed”
  • KT-9645 Incorrect inspection: No cast Needed
  • KT-9986 ‘null as T’ should be unchecked cast
  • KT-10028 Support parallel builds in maven
  • KT-10060 REPL: Cannot execute more than 255 lines
  • KT-10397 java.lang.reflect.GenericSignatureFormatError when generic inner class is mentioned in function signature
  • KT-10848 Optimize substitution of inline function with default parameters
  • KT-11167 Support compilation against JRE 9
  • KT-11474 ISE: Requested A, got foo.A in JavaClassFinderImpl on Java file with package not matching directory
  • KT-11622 False “No cast needed” when ambiguous call because of smart cast
  • KT-12049 Kotlin Lint: “Missing Parcelable CREATOR field” could suggest “Add implementation” quick fix
  • KT-12245 Code with annotation that has an unresolved identifier as a parameter compiles successfully
  • KT-12269 False “Non-null type is checked for instance of nullable type”
  • KT-12497 Optimize inlined bytecode for functions with default parameters
  • KT-12683 A problem with is operator and non-reified type-parameters
  • KT-12690 USELESS_CAST compiler warning may break code when fix is applied
  • KT-13348 Report useless cast on safe cast from nullable type to the same not null type
  • KT-13597 No check for accessing final field in local object in constructor
  • KT-13997 Incorrect “Property must be initialized or be abstract” error for property with external accessors
  • KT-14381 Possible val reassignment not detected inside init block
  • KT-14564 java.lang.VerifyError: Bad local variable type
  • KT-14970 ClassCastException: butterknife.lint.LintRegistry cannot be cast to com.android.tools.klint.client.api.IssueRegistry
  • KT-14977 IDE doesn't warn about checking null value of variable that cannot be null
  • KT-15050 Random build failures using maven 3 (multi-thread) + bamboo
  • KT-15085 Label and function naming conflict is resolved in unintuitive way
  • KT-15151 Kapt3: Support incremental compilation of Java stubs
  • KT-15161 False warning “no cast needed” for array creation
  • KT-15318 Intermitent Kotlin compilation errors
  • KT-15480 Cannot destruct a list when “if” has an “else” branch
  • KT-15495 Internal typealiases in the same module are inaccessible on incremental compilation
  • KT-15566 Object member imported in file scope used in delegation expression in object declaration should be a compiler error
  • KT-16283 Maven compiler plugin warns, “Source root doesn't exist”
  • KT-16298 Gradle: IOException “Parent file doesn't exist:/.../artifact-difference.tab.len” on non-incremental clean after incremental build
  • KT-16426 Return statement resolved to function instead of property getter
  • KT-16543 Remove “font-smoothing: antialiased” and “-webkit-font-smoothing: antialiased” from web site styles
  • KT-16568 modulesWhoseInternalsAreVisible in ModuleDependencies are not filled in for JS projects
  • KT-16692 No-Arg-Constructor plugin should generate code to initialize delegates
  • KT-16712 Show warning in IDEA when using Java 1.8 api in Android
  • KT-16743 Update configuration options in Kotlin Maven plugin
  • KT-16754 J2K: Apply quick-fixes from EDT thread only
  • KT-16762 Maven: JS compiler option main is missing
  • KT-16813 Anonymous objects returned from private-in-file members should behave as for private class members
  • KT-16816 Java To Kotlin bug: if + chained assignment doesn't include brackets
  • KT-16843 Android: provide gutter icons for resources like colors and drawables
  • KT-16864 Local delegate + ad-hoc object leads to CCE
  • KT-16986 header symbols referring types from standard library are not matched with their implementations in IDE
  • KT-17093 Import from maven: please provide a special tag for coroutine option
  • KT-17100 “kotlin” launcher script: do not add current working directory to classpath if explicit “-classpath” is specified
  • KT-17112 IncompatibleClassChangeError on invoking Kotlin compiler daemon on JDK 9
  • KT-17140 Warning “classpath entry points to a file that is not a jar file” could just be disabled
  • KT-17144 Breakpoint inside when
  • KT-17149 Incorrect warning “Kotlin: This operation has led to an overflow”
  • KT-17156 No re-parse after lambda was converted to block
  • KT-17230 J2K Deadlock
  • KT-17245 Kapt: Javac compiler arguments can't be specified in Gradle
  • KT-17264 Change the format of advanced CLI arguments (“-X...”) to require value after “=”, not a whitespace
  • KT-17287 Configure kotlin in Android Studio: don't show menu Choose Configurator with single choice
  • KT-17288 Android Studio: please remove menu item Configure Kotlin (JavaScript) in Project
  • KT-17289 Android Studio: Hide “Configure Kotlin” balloon if Kotlin is configured from a kt file banner
  • KT-17291 Android Studio 2.4: Cannot get property ‘metaClass’ on null object error after Kotlin configuring
  • KT-17318 Typo in DSL Marker message cant
  • KT-17342 Optimize control-flow for case of many variables
  • KT-17365 REPL crash when referencing a variable whose definition threw an exception
  • KT-17384 break/continue expression in inlined function parameter argument causes compilation exception
  • KT-17387 When compiling in the IDE, progress tracker says “configuring the compilation environment” when it clearly isn't
  • KT-17389 Implement Intention “Add Activity / BroadcastReceiver / Service to manifest”
  • KT-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 annotation
  • KT-17448 Regression: Sample Resolve
  • KT-17456 kapt3: NoClassDefFound com/sun/tools/javac/util/Context
  • KT-17457 Suspend + LongRange couldn't transform method node issue in Kotlin 1.1.1
  • KT-17465 Add intentions Add/Remove/Redo parcelable implementation
  • KT-17479 val reassign is allowed via explicit this receiver
  • KT-17497 Warn about redundant else branch in exhaustive when
  • KT-17560 Overload resolution ambiguity on semi-valid class-files generated by Scala
  • KT-17562 Optimize KtFile::isScript
  • KT-17567 Kapt (1.1.2-eap-77) generates invalid Java stub for internal class
  • KT-17572 try-catch expression in inlined function parameter argument causes compilation exception
  • KT-17573 try-finally expression in inlined function parameter argument fails with VerifyError
  • KT-17588 Compiler error while optimizer tries to get rid of captured variable
  • KT-17590 conditional return in inline function parameter argument causes compilation exception
  • KT-17591 non-conditional return in inline function parameter argument causes compilation exception
  • KT-17613 ‘this’ expression referring to deprecated class instance is highlighted as deprecated in IDE
  • KT-17620 Kapt3 IC: avoid running AP when API is not changed
  • KT-17665 JPS: Kotlin: The ‘-d’ option with a directory destination is ignored because ‘-module’ is specified
  • KT-17696 Allow kotlinc to take friend modules as .jar files
  • KT-17697 Allow kotlinc to take .java files as arguments
  • KT-17712 Exception in J2K during InlineCodegen convertion: com.intellij.psi.impl.source.JavaDummyHolder cannot be cast to com.intellij.psi.PsiJavaFile
  • KT-17801 Unresolved supertypes from JRE on JDK 9 in JPS
  • KT-17959 Kapt3 doesn't preserve method parameter names for abstract methods
  • KT-17960 Improve test of memory leak with Gradle daemon
  • KT-17999 Cannot use KAPT3 1.1.2-4 in Android Studio java libs (null TypeCastException to WrappedVariantData<*> on Gradle Sync)
  • KT-18047 Gradle kotlin options should use unset value as default for languageVersion and apiVersion
  • KT-18180 Modules not exported by java.se are not readable when compiling against JRE 9

IDE

  • KT-7810 Separate icon for abstract class
  • KT-7848 When you paste text into a string literal special symbols should be escaped
  • KT-7954 ‘Go to symbol’ doesn't show containing declaration for local symbols
  • KT-8370 “Can't move to original file” should not be an error
  • KT-8617 Recognize TODO method usages and highlight them same as TODO-comment
  • KT-8930 Refactor / Move preivew: moved element is shown as reference, and its file as subject
  • KT-9091 Sometimes backticks of the method name with spaces are highlighted with rose background
  • KT-9158 Refactor / Move preview mentions the package statement of moved class as a usage
  • KT-10211 “Replace infix call with ordinary call” appears both as a quickfix and as an intention in the pop-up
  • KT-10577 Refactor / Move Kotlin + Java files adds wrong import in very specific case
  • KT-10981 Quickfix for INAPPLICABLE_JVM_FIELD to replace with ‘const’ when possible
  • KT-11003 Invalid quickfix in companion object for open properties
  • KT-11250 Auto-completion for convention function names in ‘operator fun’ definitions
  • KT-12293 Autocompletion should propose lateinit var in addition to lateinit
  • KT-12629 Add rainbow/semantic-highlighting for local variables
  • KT-12805 False positive redundant semicolon after while without block expression
  • KT-12856 Import fold region is not updated to include imports added while editing file
  • KT-13192 Refactor / Move: to another class: “To” field code completion suggests facade and Java classes
  • KT-13466 Refactor / Move: class to upper level: the package statement is not updated
  • KT-13524 Completing the keyword ‘constructor’ before a primary constructor wrongly inserts parentheses
  • KT-13673 Add ‘companion { ... }’ code completion opsion
  • KT-14046 Add intention to add inline keyword if a function has parameter with noinline and/or crossinline modifier
  • KT-14109 support parameter hints in idea plugin
  • KT-14137 Add intention to convert top level val with object expression to object
  • KT-14161 Navigate to symbol doesn't see local named functions
  • KT-14335 Unexpected range of “convert lambda to reference” intention
  • KT-14435 “Use destructuring declaration” should be available as intention even without usages
  • KT-14443 IDEA intention suggest to make a method in an interface final
  • KT-14601 Formatter inserts unnecessary indent before ‘else’
  • KT-14639 Incorrect name of code style setting: Align in columns ‘case’ branches
  • KT-14665 No completion for “else” keyword
  • KT-14820 Convert function to property shouldn't insert explicit type if it was inferred previously
  • KT-15029 “Go to symbol” action doesn't find properties declared in primary constructors
  • KT-15076 Replace if with elvis inspection should not be reported in some complex cases
  • KT-15255 Move cursor to a better place when creating a new Kotlin file
  • KT-15273 Kotlin IDE plugin adds import java.lang.String with “Optimize Imports”, making project broken
  • KT-15519 KDoc comments for data class values get removed by Change Signature
  • KT-15543 “Convert receiver to parameter” refactoring breaks code
  • KT-15603 Annoying completion when making a primary constructor private
  • KT-15660 Quick-fix “Create header interface implementation” chooses wrong source root
  • KT-15680 Implementations gutter icon for header interface shows duplicates
  • KT-15823 Breakpoints not work inside crossinline from init of object passed into collection
  • KT-15854 Debugger not able to evaluate internal member functions
  • KT-15903 QuickFix to add/remove suspend in hierarchies
  • KT-15942 “Convert to secondary constructor” intention is available for data class
  • KT-16025 Step into suspend functions stops at the function end
  • KT-16136 Wrong type parameter variance suggested if type parameter is used in nested anonymous object
  • KT-16159 Wrong “Constructor call” highlighting if operator is called on newly created object
  • KT-16161 Completion of ‘onEach’ inserts unneeded angular brackets
  • KT-16339 Incorrect warning: ‘protected’ visibility is effectively ‘private’ in a final class
  • KT-16392 Gradle/Maven java module: Add framework support/ Kotlin (Java or JavaScript) adds nothing
  • KT-16423 Show expression type doesn't work when selecting from the middle of expression with “Expand Selection”
  • KT-16577 “Redundant semicolon” is not reported for semicolon after package statement in file with no imports
  • KT-16635 Do not show kotlin-specific live templates macros for all context types
  • KT-16645 Support inlay type hints for implicitly typed vals, properties, and functions
  • KT-16715 Typing is very slow since 1.1
  • KT-16755 No “Is sublassed by” icon for sealed class
  • KT-16775 Rewrite at slice CLASS key: OBJECT_DECLARATION while writing code in IDE
  • KT-16786 Intention to add “open” modifier to a non-private method or property in an open class
  • KT-16803 Suspending iteration is not marked in the gutter by IDEA as suspending invocation
  • KT-16838 Navigate from header to impl shows all overloads
  • KT-16850 UI freeze for several seconds during inserting selected completion variant
  • KT-16851 Quickfix adding qualifier @call to unallowed ‘return’ in closures
  • KT-16856 Code completion optimization
  • KT-16995 Typing during in-place refactorings is impossibly laggy
  • KT-17037 Editor suggests to import EmptyCoroutineContext.plus for any unresolved +
  • KT-17046 Kotlin facet, Compiler plugins: last line is shown empty when not selected
  • KT-17053 Inspection to detect use of callable reference as a lambda body
  • KT-17054 Intention/ inspection to convert ‘if’ with ‘is’ check to ‘as?’ with safe call
  • KT-17079 Kotlin: Bad conversion of double comparison to range check if bounds have mixed types
  • KT-17088 Settings: Kotlin Compiler: “Destination directory” should be enabled if “Copy library runtime files” is on on the dialog opening
  • KT-17094 Kotlin facet, additional command line parameters dialog: please provide a title
  • KT-17138 Configure Kotlin in Project: Choose Configurator popup: names could be unified
  • KT-17145 Kotlin facet: IllegalArgumentException on attempt to show settings common for several javascript kotlin facets with different moduleKind
  • KT-17191 Intention to name anonymous (_) parameter
  • KT-17211 Refactor / Move several files: superfluous FQN is inserted into reference to same file's element
  • KT-17213 Refactor / Inline Function: parameters of lambda as call argument turn incompilable
  • KT-17221 Inspection for recursive calls in property accessors
  • KT-17223 Absolute path to Kotlin compiler plugin in IML
  • KT-17234 Refactor / Inline on library property is rejected after GUI freeze for a while
  • KT-17272 Refactor / Inline Function: unused String literal in parameters is kept (while unsed Int is not)
  • KT-17273 Refactor / Inline Function: PIEAE: “Element: class org.jetbrains.kotlin.psi.KtCallExpression because: different providers” at PsiUtilCore.ensureValid()
  • KT-17293 Project Structure dialog is opened too slow for a project with a lot of empty gradle modules
  • KT-17295 Can't stop in kotlin.concurrent.timer lambda parameter
  • KT-17296 Refactor / Inline Function: UOE at ExpressionReplacementPerformer.findOrCreateBlockToInsertStatement() for call of multi-statement function in declaration
  • KT-17304 IDEA shows wrong type for expressions
  • KT-17330 Inline kotlin function causes an infinite loop
  • KT-17331 Frequent long editor freezes
  • KT-17333 KotlinChangeInfo retains 132MB of the heap
  • KT-17372 Specify explicit lambda signature handles anonymous parameters incorrectly
  • KT-17383 Slow editing in Kotlin files If breadcrumbs are enabled in module with many dependencies
  • KT-17395 Refactor / Inline Function: arguments passed to lambda turns code to incompilable
  • KT-17400 Navigate to impl: implementations are duplicated
  • KT-17404 Editor: 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 parameters
  • KT-17439 Kotlin: ‘autoscroll from source’ doesn't work in Structure view
  • KT-17482 Set jvmTarget to 1.8 by default when configuring a project with JDK 1.8
  • KT-17495 Much time spent in LibraryDependenciesCache.getLibrariesAndSdksUsedWith
  • KT-17496 Refactor / Move: calls to moved extension function type properties are updated (incorrectly)
  • KT-17503 Intention “To raw string literal” should handle string concatenations
  • KT-17505 LazyLightClassMemberMatchingError from collection implementation
  • KT-17515 Refactor / Move inner class to another class, Move companion object: disabled in editor, but available in Move dialog
  • KT-17517 Compiler options specified as properties are not handled by Maven importer
  • KT-17520 Quickfix to update language/API version should work for Maven projects
  • KT-17521 Quickfix to enable coroutines should work for Maven projects
  • KT-17525 IDE: KNPE at KotlinAddImportActionKt.createSingleImportActionForConstructor() on invalid reference to inner class constructor
  • KT-17526 Refactor / Move: reference to companion member gets superfluous companion name in certain cases
  • KT-17538 Refactor / Move: moving file with import alias removes alias usage from code
  • KT-17545 Refactor / Move: false Problems Detected on moving class using parent's protected class, object
  • KT-17599 “Make primary constructor internal” intention is available for annotation class
  • KT-17600 “Make primary constructor private” intention is available for annotation class
  • KT-17638 ISE in KotlinElementDescriptionProvider.renderShort
  • KT-17650 Add quickfix inserting ‘lateinit’ modifier for not-initialized property
  • KT-17660 Inspection: data class copy without named argument(s)
  • KT-17698 Unknown library format - prevents IDEA from configuring Kotlin JS
  • KT-17714 UAST inspection on non-physical element
  • KT-17708 “Move to class body” intention is available for annotation parameters
  • KT-17722 IntelliJ plugin uses wrong JVM target when Kotlin Facet is not configured
  • KT-17762 ‘Convert to range’ intention generates inequivalent code for doubles
  • KT-17770 Kotlin IntelliJ plugin fails to re-index Gradle script classpath after change to the plugins block
  • KT-17807 Add Smart Enter processor for object expessions
  • KT-17810 Exception from unused import inspection leads to code analysis hangs
  • KT-17821 In Kotlin's plugin KotlinJsMetadataVersionIndex loads file with VfsUtilCore.loadText
  • KT-17840 Show expression type on this shows bogus disambiguation
  • KT-17845 Searching for usages of override property in primary constructor doesn't suggest base property search
  • KT-17847 Kotlin facet: strange warning if API version = 1.2
  • KT-17861 Setting ‘kotlin.experimental.coroutines “enable”’ doesn't work for Android projects
  • KT-17875 New Project/Module with Kotlin: on attempt to use libraries from plugin IDE suggests to rewrite them
  • KT-17876 New Project/Module with Kotlin: with “Copy to” option only part of jars are copied
  • KT-17899 Navigate to symbol: vararg signatures are indistinguishable from non-vararg ones
  • KT-18018 F5 (for Copy) does not work for Kotlin files anymore

JS

  • KT-12926 JS: use # instead of @ when linking to sourcemap from generated code
  • KT-13577 Double.hashCode is zero for big numbers
  • KT-15135 JS: support friend modules
  • KT-15484 JS: (node): println with object /number argument leads to “TypeError: Invalid data, chunk must be a string or buffer, not object/number”
  • KT-16658 JS: Suspend function with default param value in interface
  • KT-16717 KotlinJs - copy() on data class doesn't work with when there is a secondary constructor
  • KT-16745 JS: initialize enum fields before calling companion objects's initializer
  • KT-16951 JS: coroutine suspension point is not inserted when inlining suspend function with tail call to another suspend function
  • KT-16979 Kotlin.js : Intellij test and productions sources produce a AMD module with the same name
  • KT-17067 JS: suspendCoroutine not working as expected
  • KT-17219 Hexadecimal literals in js(...) argument are replaced by wrong decimal constants
  • KT-17281 JS: wrong code generated for a recursive call in suspend function
  • KT-17446 JS: incorrect code generated for call to suspendCoroutineOrReturn when the same function calls another suspend function
  • KT-17540 Incorrect inlining optimization of also/apply function
  • KT-17700 Wrong code generated for ‘str += (nullableChar ?: break)’
  • KT-17966 JS: Char literal inside of string template

Reflection

  • KT-14988 Support running the Kotlin compiler on Java 9
  • KT-17055 NPE in hashCode and equals of kotlin.jvm.internal.FunctionReference (on local functions)
  • KT-17594 Cache the result of val Class.kotlin: KClass

Libraries

  • KT-17453 Array iterators throw IndexOutOfBoundsException instead of NoSuchElementException
  • KT-17635 Document String#toIntOfNull may throw an exception
  • KT-17686 takeLast(n) incorrectly performs drop(n) for Lists without random access
  • KT-17704 Update JavaDoc for ReentrantReadWriteLock.write to put more stress on the fact that to upgrade to write lock, read lock is first released.
  • KT-17853 JS: Confusing parameter names in 'Math.atan2`
  • KT-18092 Issue using kotlin-reflect with proguard: missing annotations Mutable and ReadOnly
  • KT-18210 JS String::match(regex) should have nullable return type

Previous releases

This release also includes the fixes and improvements from the previous 1.1.2 release.