| # CHANGELOG |
| |
| <!-- Find: ([^\`/\[])(KT-\d+) --> |
| <!-- Replace: $1[`$2`](https://youtrack.jetbrains.com/issue/$2) --> |
| |
| ## 1.1-M03 (EAP-3) |
| |
| ### New language features |
| |
| - [`KT-2964`](https://youtrack.jetbrains.com/issue/KT-2964) Underscores in integer literals |
| (see [KEEP-54](https://github.com/Kotlin/KEEP/pull/54)) |
| - [`KT-3824`](https://youtrack.jetbrains.com/issue/KT-3824) Underscore in lambda for unused parameters |
| (see [KEEP-56](https://github.com/Kotlin/KEEP/pull/56)) |
| - [`KT-2783`](https://youtrack.jetbrains.com/issue/KT-2783) Allow to skip some components in a multi-declaration |
| |
| ### Compiler |
| |
| #### Coroutines related issues |
| - Make fields for storing lambda parameters non-final (as they get assigned within `invoke` call) |
| - [`KT-14719`](https://youtrack.jetbrains.com/issue/KT-14719) Make initial continuation able to be resumed with exception |
| - [`KT-14636`](https://youtrack.jetbrains.com/issue/KT-14636) Coroutine fields should not be volatile |
| - [`KT-14718`](https://youtrack.jetbrains.com/issue/KT-14718) Validate label value of coroutine in case of no suspension points |
| |
| #### Typealises related issues |
| - [`KT-13514`](https://youtrack.jetbrains.com/issue/KT-13514) Type inference doesn't work with generic typealiases |
| - [`KT-13837`](https://youtrack.jetbrains.com/issue/KT-13837) Error "Type alias expands to T, which is not a class, an interface, or an object" |
| should also appear for local type aliases |
| - [`KT-14307`](https://youtrack.jetbrains.com/issue/KT-14307) Local recursive type alias should be an error |
| - [`KT-14400`](https://youtrack.jetbrains.com/issue/KT-14400) Compiler Error IllegalStateException: kotlin.NotImplementedError when anonymous |
| object inherits from typealias |
| - [`KT-14377`](https://youtrack.jetbrains.com/issue/KT-14377) Expected error: Modifier 'companion' is not applicable to 'typealias' |
| - [`KT-14498`](https://youtrack.jetbrains.com/issue/KT-14498) typealias allows to circumvent variance annotations |
| - [`KT-14641`](https://youtrack.jetbrains.com/issue/KT-14641) An exception while processing a nested type alias access after a dot |
| |
| #### Various issues |
| - [`KT-550`](https://youtrack.jetbrains.com/issue/KT-550) Properties without initializer but with get must infer type from getter |
| - [`KT-8816`](https://youtrack.jetbrains.com/issue/KT-8816) Generate Kotlin parameter names in the same form as expected for Java 8 reflection |
| - [`KT-10569`](https://youtrack.jetbrains.com/issue/KT-10569) Cannot iterate over values of an enum class when it is used as a generic parameter |
| (see [KEEP-37](https://github.com/Kotlin/KEEP/pull/37)) |
| - [`KT-11551`](https://youtrack.jetbrains.com/issue/KT-11551) limited scope for dsl writers (see [KEEP-38](https://github.com/Kotlin/KEEP/pull/38)) |
| - [`KT-13557`](https://youtrack.jetbrains.com/issue/KT-13557) VerifyError with delegated local variable used in object expression |
| - [`KT-13890`](https://youtrack.jetbrains.com/issue/KT-13890) IllegalAccessError when invoking protected method with default arguments |
| - [`KT-14012`](https://youtrack.jetbrains.com/issue/KT-14012) Back-end (JVM) Internal error every first compilation after the source code change |
| - [`KT-14201`](https://youtrack.jetbrains.com/issue/KT-14201) UnsupportedOperationException: Don't know how to generate outer expression for anonymous |
| object with invoke and non-trivial closure |
| - [`KT-14318`](https://youtrack.jetbrains.com/issue/KT-14318) Repeated annotations resulting from type alias expansion should be reported |
| - [`KT-14347`](https://youtrack.jetbrains.com/issue/KT-14347) Report UNUSED_PARAMETER/VARIABLE on named unused lambda parameters/destructuring entries |
| - [`KT-14352`](https://youtrack.jetbrains.com/issue/KT-14352) @SinceKotlin is not taken into account for companion object member referenced via |
| type alias |
| - [`KT-14357`](https://youtrack.jetbrains.com/issue/KT-14357) Try-catch used in false condition generates CompilationException |
| - [`KT-14502`](https://youtrack.jetbrains.com/issue/KT-14502) Prohibit irrelevant modifiers and annotations on destructured parameters in lambda |
| - [`KT-14692`](https://youtrack.jetbrains.com/issue/KT-14692) Change resolution scope for componentX in lambda parameters |
| - [`KT-14824`](https://youtrack.jetbrains.com/issue/KT-14824) Back-end (JVM) Internal error: Couldn't inline method call 'get' into local final fun |
| StorageComponentContainer.<anonymous>(): kotlin.Unit |
| |
| ### JS |
| |
| #### Feature support |
| - [`KT-6985`](https://youtrack.jetbrains.com/issue/KT-6985) Support Exceptions in JS |
| - [`KT-13574`](https://youtrack.jetbrains.com/issue/KT-13574) JS: support coroutines |
| - [`KT-14422`](https://youtrack.jetbrains.com/issue/KT-14422) JS: Support destructuring in lambda parameters |
| - [`KT-14507`](https://youtrack.jetbrains.com/issue/KT-14507) JS: allow to skip some components in a multi-declaration |
| |
| #### Library updates |
| - [`KT-14637`](https://youtrack.jetbrains.com/issue/KT-14637) JS: Missing ArrayList.ensureCapacity |
| |
| #### Other issues |
| - [`KT-2328`](https://youtrack.jetbrains.com/issue/KT-2328) js: kotlin exceptions must inherit Error |
| - [`KT-5537`](https://youtrack.jetbrains.com/issue/KT-5537) Drop Cloneable in JS |
| - [`KT-7014`](https://youtrack.jetbrains.com/issue/KT-7014) JS: generate code which more friendly to js tools (minifier, optimizer, linter etc) |
| - [`KT-8019`](https://youtrack.jetbrains.com/issue/KT-8019) JS: no stackTrace in exception subclasses |
| - [`KT-10911`](https://youtrack.jetbrains.com/issue/KT-10911) JS: Throwable properties aren't supported well |
| - [`KT-13912`](https://youtrack.jetbrains.com/issue/KT-13912) JS: Compiler NPE at JsSourceGenerationVisitor. Lambda with empty [if] block passed |
| to inline function |
| - [`KT-14535`](https://youtrack.jetbrains.com/issue/KT-14535) JS: Broken modification of captured variables defined by a destructuring declaration |
| |
| ### Standard Library |
| - [`KT-2084`](https://youtrack.jetbrains.com/issue/KT-2084) Common API should be available without referring to java.* packages |
| |
| Now 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`, `LinkedHashMap` in `kotlin.collections` |
| - `Appendable` and `StringBuilder` in `kotlin.text` |
| - `Comparator` in `kotlin.comparisons` |
| On JVM these are just typealiases of the good old types from `java.util` and `java.lang` |
| - [`KT-13554`](https://youtrack.jetbrains.com/issue/KT-13554) Introduce bitwise operations `and`/`or`/`xor`/`inv` for Byte and Short |
| - [`KT-13582`](https://youtrack.jetbrains.com/issue/KT-13582) New platform-agnostic extensions for arrays: `contentEquals` to compare arrays' |
| content for equality, `contentHashCode` to get hashcode of array's content, and `contentToString` to get the string representation of array elements. |
| - [`KT-14510`](https://youtrack.jetbrains.com/issue/KT-14510) Generic constraints of `Array.flatten` signature were relaxed a bit to make it just usable. |
| - [`KT-14789`](https://youtrack.jetbrains.com/issue/KT-14789) Provide `KotlinVersion` class, which allows to get the current version of the standard |
| library and compare it with some other `KotlinVersion` value. |
| |
| ### IDE |
| - [`KT-14409`](https://youtrack.jetbrains.com/issue/KT-14409) Incorrect "Variable can be declared immutable" inspection for local delegated variable |
| - [`KT-14431`](https://youtrack.jetbrains.com/issue/KT-14431) Create quick-fix on UNUSED_PARAMETER/VARIABLE when it can be replaced with one underscore |
| - [`KT-14794`](https://youtrack.jetbrains.com/issue/KT-14794) Add /Specify type/Remove explicit type intentions for property with getters if type |
| can be inferred |
| |
| ### Previous releases |
| |
| This release also includes the fixes and improvements from releases [`1.0.5-2`](https://github.com/JetBrains/kotlin/blob/1.0.5/ChangeLog.md), |
| [`1.1-M01`](https://github.com/JetBrains/kotlin/blob/1.1-M1/ChangeLog.md) |
| and [`1.1-M02`](https://github.com/JetBrains/kotlin/blob/1.1-M2/ChangeLog.md) |