CHANGELOG

1.1.2

Compiler

Front-end

  • KT-16113 Support destructuring parameters of suspend lambda with suspend componentX
  • KT-3805 Report error on double constants out of range
  • KT-6014 Wrong ABSTRACT_MEMBER_NOT_IMPLEMENTED for toString implemented by delegation
  • KT-8959 Missing diagnostic when trying to call inner class constructor qualificated with outer class name
  • KT-12477 Do not report ‘const’ inapplicability on property of error type
  • KT-11010 NDFDE for local object with type parameters
  • KT-12881 Descriptor wasn't found for declaration TYPE_PARAMETER
  • KT-13342 Unqualified super call should not resolve to a method of supertype overriden in another supertype
  • KT-14236 Allow to use emptyArray in annotation
  • KT-14536 IllegalStateException: Type parameter T not found for lazy class Companion at LazyDeclarationResolver visitTypeParameter
  • KT-14865 Throwable exception at KotlinParser parseLambdaExpression on typing { inside a string inside a lambda
  • KT-15516 Compiler error when passing suspending extension-functions as parameter and casting stuff to Any
  • KT-15802 Java constant referenced using subclass is not considered a constant expression
  • KT-15872 Constant folding is mistakenly triggered for user function
  • KT-15901 Unstable smart cast target after type check
  • KT-15951 Callable reference to class constructor from object is not resolved
  • KT-16232 Prohibit objects inside inner classes
  • KT-16233 Prohibit inner sealed classes
  • KT-16250 Import methods from typealias to object throws compiler exception “Should be class or package: typealias”
  • KT-16272 Missing deprecation and SinceKotlin-related diagnostic for variable as function call
  • KT-16278 Public member method can't be used for callable reference because of private static with the same name
  • KT-16372 ‘mod is deprecated’ warning should not be shown when language version is 1.0
  • KT-16484 SimpleTypeImpl should not be created for error type: ErrorScope
  • KT-16528 Error: Loop in supertypes when using Java classes with type parameters having raw interdependent supertypes
  • KT-16538 No smart cast when equals is present
  • KT-16782 Enum entry is incorrectly forbidden on LHS of ‘::’ with language version 1.0
  • KT-16815 Assertion error from compiler: unexpected classifier: class DeserializedTypeAliasDescriptor
  • KT-16931 Compiler cannot see inner class when for outer class exist folder with same name
  • KT-16956 Prohibit using function calls inside default parameter values of annotations
  • KT-8187 IAE on anonymous object in the delegation specifier list
  • KT-8813 Do not report unused parameters for anonymous functions
  • KT-12112 Do not consider nullability of error functions and properties for smart casts
  • KT-12276 No warning for unnecessary non-null assertion after method call with generic return type
  • KT-13648 Spurious warning: “Elvis operator (?:) always returns the left operand of non-nullable type (???..???)”
  • KT-16264 Forbid usage of _ without backticks
  • KT-16875 Decrease severity of unused parameter in lambda to weak warning
  • KT-17136 ModuleDescriptorImpl.allImplementingModules should be evaluated lazily
  • KT-17214 Do not show warning about useless elvis for error function types
  • KT-13740 Plugin crashes at accidentally wrong annotation argument type
  • KT-17597 Pattern::compile resolves to private instance method in 1.1.2

Back-end

  • KT-8689 NoSuchMethodError on local functions inside inlined lambda with variables captured from outer context
  • KT-11314 Abstract generic class with Array<Array> parameter compiles fine but fails at runtime with “Bad type on operand stack” VerifyError
  • KT-12839 Two null checks are generated when manually null checking platform type
  • KT-14565 Cannot pop operand off empty stack when compiling enum class
  • KT-14566 Make kotlin.jvm.internal.Ref$...Ref classes serializable
  • KT-14567 VerifyError: Bad type on operand stack (generics with operator methods)
  • KT-14607 Incorrect class name "ava/lang/Void from AsyncTask extension function
  • KT-14811 Unecessary checkcast generated in parameterized functions.
  • KT-14963 unnecessary checkcast java/lang/Object
  • KT-15105 Comparing Chars in a Pair results in ClassCastException
  • KT-15109 Subclass from a type alias with named parameter in constructor will produce compiler exception
  • KT-15192 Compiler crashes on certain companion objects: “Error generating constructors of class Companion with kind IMPLEMENTATION”
  • KT-15424 javac crash when calling Kotlin function having generic varargs with default and @JvmOverloads
  • KT-15574 Can't instantiate Array through Type Alias
  • KT-15594 java.lang.VerifyError when referencing normal getter in @JvmStatic getters inside an object
  • KT-15759 tailrec suspend function fails to compile
  • KT-15862 Inline generic functions can unexpectedly box primitives
  • KT-15871 Unnecessary boxing for equality operator on inlined primitive values
  • KT-15993 Property annotations are stored in private fields and killed by obfuscators
  • KT-15997 Reified generics don't work properly with crossinline functions
  • KT-16077 Redundant private getter for private var in a class within a JvmMultifileClass annotated file
  • KT-16194 Code with unnecessary safe call contains redundant boxing/unboxing for primitive values
  • KT-16245 Redundant null-check generated for a cast of already non-nullable value
  • KT-16532 Kotlin 1.1 RC - Android cross-inline synchronized won't run
  • KT-16555 VerifyError: Bad type on operand stack
  • KT-16713 Insufficient maximum stack size
  • KT-16720 ClassCastException during compilation
  • KT-16732 Type ‘java/lang/Number’ (current frame, stack[0]) is not assignable to 'java/lang/Character
  • KT-16929 VerifyError when using bound method reference on generic property
  • KT-16412 Exception from compiler when try call SAM constructor where argument is callable reference to nested class inside object
  • KT-17210 Smartcast failure results in “Bad type operand on stack” runtime error

Tools

  • KT-15420 Maven, all-open plugin: in console the settings of all-open are always reported as empty
  • KT-11916 Provide incremental compilation for Maven
  • KT-15946 Kotlin-JPA plugin support for @Embeddable
  • KT-16627 Do not make private members open in all-open plugin
  • KT-16699 Script resolving doesn't work with custom templates located in an external jar
  • KT-16812 import in .kts file does not works
  • KT-16927 Using KotlinJsr223JvmLocalScriptEngineFactory causes multiple warnings
  • KT-15562 Service is dying
  • KT-17125 > Failed to apply plugin [id ‘kotlin’] > For input string: “”

Kapt

  • KT-12432 Dagger 2 does not generate Component which was referenced from Kotlin file.
  • KT-8558 KAPT only works with service-declared annotation processors
  • KT-16753 kapt3 generates invalid stubs when IC is enabled
  • KT-16458 kotlin-kapt / kapt3: “cannot find symbol” error for companion object with same name as enclosing class
  • KT-14478 Add APT / Kapt support to the maven plugin
  • KT-14070 Kapt3: kapt doesn‘t compile generated Kotlin files and doesn’t use the “kapt.kotlin.generated” folder anymore
  • KT-16990 Kapt3: java.io.File cannot be cast to java.lang.String
  • KT-16965 Error:Kotlin: Multiple values are not allowed for plugin option org.jetbrains.kotlin.kapt:output
  • KT-16184 AbstractMethodError in Kapt3ComponentRegistrar while compiling from IntelliJ 2016.3.4 using Kotlin 1.1.0-beta-38

Gradle

  • KT-15084 Navigation into sources of gradle-script-kotlin doesn't work
  • KT-16003 Gradle Plugin Fails When Run From Jenkins On Multiple Nodes
  • KT-16585 Kotlin Gradle Plugin makes using Gradle Java incremental compiler not work
  • KT-16902 Gradle plugin compilation on daemon fails on Linux ARM
  • KT-14619 Gradle: The ‘-d’ option with a directory destination is ignored because ‘-module’ is specified
  • KT-12792 Automatically configure standard library dependency and set its version equal to compiler version if not specified
  • KT-15994 Compiler arguments are not copied from the main compile task to kapt task
  • KT-16820 Changing compileKotlin.destinationDir leads to failure in :copyMainKotlinClasses task due to an NPE
  • KT-16917 First connection to daemon after start timeouts when DNS is slow
  • KT-16580 Kotlin gradle plugin cannot resolve the kotlin compiler

Android support

  • KT-16624 Implement quickfix “Add TargetApi/RequiresApi annotation” for Android api issues
  • KT-16625 Implement quickfix “Surround with if (VERSION.SDK_INT >= VERSION_CODES.SOME_VERSION) { ... }” for Android api issues
  • KT-16840 Kotlin Gradle plugin fails with Android Gradle plugin 2.4.0-alpha1
  • KT-16897 Gradle plugin 1.1.1 duplicates all main classes into Android instrumentation test APK
  • KT-16957 Android Extensions: Support Dialog class
  • KT-15023 Android gradle installDebugAndroidTest fails unless you first call gradle assembleDebugAndroidTest
  • KT-12769 “Name for method must be provided” error occurs on trying to use spaces in method name in integration tests in Android
  • KT-12819 Kotlin Lint: False positive for “Unconditional layout inflation” when using elvis operator
  • KT-15116 Kotlin Lint: problems in property accessors are not reported
  • KT-15156 Kotlin Lint: problems in annotation parameters are not reported
  • KT-15179 Kotlin Lint: problems inside local function are not reported
  • KT-14870 Kotlin Lint: problems inside local class are not reported
  • KT-14920 Kotlin Lint: “Android Lint for Kotlin | Incorrect support annotation usage” inspection does not report problems
  • KT-14947 Kotlin Lint: “Calling new methods on older versions” could suggest specific quick fixes
  • KT-12741 Android Extensions: Enable IDE plugin only if it is enabled in the build.gradle file
  • KT-13122 Implement ‘@RequiresApi’ intention for android and don't report warning on annotated classes
  • KT-16680 Stack overflow in UAST containsLocalTypes()
  • KT-15451 Support “Android String Reference” folding in Kotlin files
  • KT-16132 Renaming property provided by kotlinx leads to renaming another members
  • KT-17200 Unable to build an android project
  • KT-13104 Incorrect resource name in Activity after renaming ID attribute value in layout file
  • KT-17436 Refactor | Rename android:id corrupts R.id references in kotlin code
  • KT-17255 Kotlin 1.1.2 EAP is broken with 2.4.0-alpha3
  • KT-17610 “Unknown reference: kotlinx”

IDE

  • KT-6159 Inline Method refactoring
  • KT-4578 Intention to move property between class body and constructor parameter
  • KT-8568 Provide a QuickFix to replace type Array<Int> in annotation with IntArray
  • KT-10393 Detect calls to functions returning a lambda from expression body which ignore the return value
  • KT-11393 Inspection to highlight and warn on usage of internal members in other module from Java
  • KT-12004 IDE inspection that destructuring variable name matches the other name in data class
  • KT-12183 Intention converting several calls with same receiver to ‘with’/apply/run
  • KT-13111 Support bound references in lambda-to-reference intention / inspection
  • KT-15966 Create quickfix for DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE
  • KT-16074 Introduce a quick-fix adding noinline modifier for a value parameter of suspend function type
  • KT-16131 Add quickfix for: Cannot access member: it is invisible (private in supertype)
  • KT-16188 Add create class quickfix
  • KT-16258 Add intention to add missing components to destructuring assignment
  • KT-16292 Support “Reference to lambda” for bound references
  • KT-11234 Debugger won't hit breakpoint in nested lamba
  • KT-12002 Improve completion for closure parameters to work in more places
  • KT-15768 It would be nice to show in Kotlin facet what compiler plugins are on and their options
  • KT-16022 Kotlin facet: provide UI to navigate to project settings
  • KT-16214 Do not hide package kotlin.reflect.jvm.internal from auto-import and completion, inside package “kotlin.reflect”
  • KT-16647 Don‘t create kotlinc.xml if the settings don’t differ from the defaults
  • KT-16649 All Gradle related classes should be moved to optional dependency section of plugin.xml
  • KT-16800 Autocomplete for closure with single arguments

Bug fixes

  • KT-16316 IDE: don't show Kotlin Scripting section when target platform is JavaScript
  • KT-16317 IDE: some fields stay enabled in an facet when use project settings was chosen
  • KT-16596 Hang in IntelliJ while scanning zips
  • KT-16646 The flag to enable coroutines does not sync from gradle file in Android Studio
  • KT-16788 Importing Kotlin Maven projects results in invalid .iml
  • KT-16827 kotlin javascript module not recognized by gradle sync when an android module is present
  • KT-16848 Regression: completion after dot in string interpolation expression doesn't work if there are no curly braces
  • KT-16888 “Multiple values are not allowed for plugin option org.jetbrains.kotlin.android:package” when rebuilding project
  • KT-16980 Accessing language version settings for a module performs runtime version detection on every access with no caching
  • KT-16991 Navigate to receiver from this in extension function
  • KT-16992 Navigate to lambda start from auto-generated ‘it’ parameter
  • KT-12264 AssertionError: Resolver for ‘completion/highlighting in LibrarySourceInfo for platform JVM’ does not know how to resolve ModuleProductionSourceInfo
  • KT-13734 Annotated element search is slow
  • KT-14710 Sample references aren't resolved in IDE
  • KT-16415 Dependency leakage with Kotlin IntelliJ plugin, using gradle-script-kotlin, and the gradle-intellij-plugin
  • KT-16837 Slow typing in Kotlin file because of ImportFixBase
  • KT-16926 ‘implement’ dependency is not transitive when importing gradle project to IDEA
  • KT-17141 Running test from gutter icon fails in AS 2.4 Preview 3
  • KT-17162 Plain-text Java copy-paste to Kotlin file results in exception
  • KT-16714 J2K: Write access is allowed from event dispatch thread only
  • KT-14058 Unexpected error MISSING_DEPENDENCY_CLASS
  • KT-9275 Unhelpful IDE warning “Configure Kotlin”
  • KT-15279 ‘Kotlin not configured message’ should not be displayed while gradle sync is in progress
  • KT-11828 Configure Kotlin in Project: failure for Gradle modules without build.gradle (IDEA creates them)
  • KT-16571 Configure Kotlin in Project does not suggest just published version
  • KT-16590 Configure kotlin warning popup after each sync gradle
  • KT-16353 Configure Kotlin in Project: configurators are not suggested for Gradle module in non-Gradle project with separate sub-modules for source sets
  • KT-16381 Configure Kotlin dialog suggests modules already configured with other platforms
  • KT-16401 Configure Kotlin in the project adds incorrect dependency kotlin-stdlib-jre8 to 1.0.x language
  • KT-12261 Partial body resolve doesn't resolve anything in object literal used as an expression body of a method
  • KT-13013 “Go to Type Declaration” doesn't work for extension receiver and implict lambda parameter
  • KT-13135 IDE goes in an infinite indexing loop if a .kotlin_module file is corrupted
  • KT-14129 for/iter postfix templates should be applied for string, ranges and mutable collections
  • KT-14134 Allow to apply for/iter postfix template to map
  • KT-14871 Idea and Maven is not in sync with ModuleKind for Kotlin projects
  • KT-14986 Disable postfix completion when typing package statements
  • KT-15200 Show implementation should show inherited classes if a typealias to base class/interface is used
  • KT-15398 Annotations find usages in annotation instance site
  • KT-15536 Highlight usages: Class with primary constructor isn't highlighted when caret is on constructor invocation
  • KT-15628 Change error message if both KotlinJavaRuntime and KotlinJavaScript libraries are present in the module dependencies
  • KT-15947 Kotlin facet: Target platform on importing from a maven project should be filled the same way for different artifacts
  • KT-16023 Kotlin facet: When “Use project settings” is enabled, respective fields should show values from the project settings
  • KT-16698 Kotlin facet: modules created from different gradle sourcesets have the same module options
  • KT-16700 Kotlin facet: jdkHome path containing spaces splits into several additional args after import
  • KT-16776 Kotlin facet, import from maven: free arguments from submodule doesn't override arguments from parent module
  • KT-16550 Kotlin facet from Maven: provide error messages if additional command line parameters are set several times
  • KT-16313 Kotlin facet: unify filling up information about included AllOpen/NoArg plugins on importing from Maven and Gradle
  • KT-16342 Kotlin facet: JavaScript platform is not detected if there are 2 versions of stdlib in dependencies
  • KT-16032 Kotlin code formatter merges comment line with non-comment line
  • KT-16038 UI blocked on pasting java code into a kotlin file
  • KT-16062 Kotlin breakpoint doesn't work in some lambda in Rider project.
  • KT-15855 Can't evaluate expression in @JvmStatic method
  • KT-16667 Kotlin debugger “smart step into” fail on method defined in the middle of class hierarchy
  • KT-16078 Formatter puts empty body braces on different lines when KDoc is present
  • KT-16265 Parameter info doesn't work with type alias constructor
  • KT-14727 Wrong samples for some postfix templates
Inspections / Quickfixes
  • KT-17002 Make “Lambda to Reference” inspection off by default
  • KT-14402 Inspection “Use destructuring declaration” for lambdas doesn't work when parameter is of type Pair
  • KT-16857 False “Remove redundant ‘let’” suggestion
  • KT-16928 Surround with null check quickfix works badly in case of qualifier
  • KT-15870 Move 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 label
  • KT-16828 Don't suggest destructing declarations if not all components are used
  • KT-17022 Replace deprecated in the whole project may miss some usages in expression body
Refactorings, Intentions
  • KT-7516 Rename refactoring doesn't rename related labels
  • KT-7520 Exception when try rename label from usage
  • KT-8955 Refactor / Move package: KNPE at KotlinMoveDirectoryWithClassesHelper.postProcessUsages() with not matching package statement
  • KT-11863 Refactor / Move: moving referred file level elements to another package keeps reference to old FQN
  • KT-13190 Refactor / Move: no warning on moving class containing internal member to different module
  • KT-13341 Convert lambda to function reference intention is not available for object member calls
  • KT-13755 When (java?) class is moved redundant imports are not removed
  • KT-13911 Refactor / Move: “Problems Detected” dialog is not shown on moving whole .kt file
  • KT-14401 Can't rename implicit lambda parameter ‘it’ when caret is placed right after the last character
  • KT-14483 “Argument of NotNull parameter must be not null” in KotlinTryCatchSurrounder when using “try” postfix template
  • KT-15075 KNPE in “Specify explicit lambda signature”
  • KT-15190 Refactor / Move: false Problems Detected on moving class using parent's protected member
  • KT-15250 Convert anonymous object to lambda is shown when conversion not possible due implicit calls on this
  • KT-15339 Extract Superclass is enabled for any element: CommonRefactoringUtil$RefactoringErrorHintException: “Superclass cannot be extracted from interface” at ExtractSuperRefactoring.performRefactoring()
  • KT-15559 Kotlin: Moving classes to different packages breaks references to companion object's properties
  • KT-15556 Convert lambda to reference isn't proposed for parameterless constructor
  • KT-15586 ISE during “Move to a separate file”
  • KT-15822 Move class refactoring leaves unused imports
  • KT-16108 Cannot rename class on the companion object reference
  • KT-16198 Extract method refactoring should order parameters by first usage
  • KT-17006 Refactor / Move: usage of library function is reported as problem on move between modules with different library versions
  • KT-17032 Refactor / Move updates references to not moved class from the same file
  • KT-11907 Move to package renames file to temp.kt
  • KT-16468 Destructure declaration intention should be applicable for Pair
  • KT-16162 IAE for destructuring declaration entry from KotlinFinalClassOrFunSpringInspection
  • KT-16556 Move refactoring shows Refactoring cannot be performed warning.
  • KT-16605 NPE caused by Rename Refactoring of backing field when caret is after the last character
  • KT-16809 Move refactoring fails badly
  • KT-16903 “Convert to primary constructor” doesn't update supertype constructor call in supertypes list in case of implicit superclass constructor call

JS

  • KT-6627 JS: test sources doesn't compile from IDE
  • KT-13610 JS: boxed Double.NaN is not equal to itself
  • KT-16012 JS: prohibit nested declarations, except interfaces inside external interface
  • KT-16043 IDL: mark inline helper function as InlineOnly
  • KT-16058 JS: getValue/setValue don't work if they are declared as suspend
  • KT-16164 JS: Bad getCallableRef in suspend function
  • KT-16350 KotlinJS - wrong code generated when temporary variables generated for RHS of && operation
  • KT-16377 JS: losing declarations of temporary variables in secondary constructors
  • KT-16545 JS: ::class crashes at runtime for primitive types (e.g. Int::class, or Double::class)
  • KT-16144 JS: inliner can't find function called through inheritor (“fake” override) from another module

Reflection

  • KT-9453 ClassCastException: java.lang.Class cannot be cast to kotlin.reflect.KClass
  • KT-11254 Make callable references Serializable on JVM
  • KT-11316 NPE in hashCode of KProperty object created for delegated property
  • KT-12630 KotlinReflectionInternalError on referencing some functions from stdlib
  • KT-14731 When starting application from test source root, kotlin function reflection fails in objects defined in sources

Libraries

  • KT-16922 buildSequence/Iterator: Infinite sequence terminates prematurely
  • KT-16923 Progression iterator doesn't throw after completion
  • KT-16994 Classify sequence operations as stateful/stateless and intermediate/terminal
  • KT-9786 String.trimIndent doc is misleading
  • KT-16572 Add links to Mozilla Developer Network to kdocs of classes that we generate from IDL
  • KT-16252 IDL2K: Add ItemArrayLike interface implementation to collection-like classes

Previous releases

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