Kotlin 语言特性与提案

JetBrains evolves the Kotlin language according to the Kotlin language evolution principles, guided by pragmatic design.

Language feature proposals are listed from Kotlin 1.7.0.

See the explanation of language feature statuses in the Kotlin evolution principles documentation.

{style="note"}


【All】

**Exploration and design** **Kotlin statics and static extensions** * KEEP proposal: [statics.md](https://github.com/Kotlin/KEEP/blob/statics/proposals/statics.md) * YouTrack issue: [KT-11968](https://youtrack.jetbrains.com/issue/KT-11968)
**Exploration and design** **Collection literals** * KEEP proposal: Not defined * YouTrack issue: [KT-43871](https://youtrack.jetbrains.com/issue/KT-43871)
**Exploration and design** **Union types for errors and exceptions** * KEEP proposal: Not defined * YouTrack issue: [KT-68296](https://youtrack.jetbrains.com/issue/KT-68296)
**Exploration and design** **Name-based destructuring** * KEEP proposal: Not defined * YouTrack issue: [KT-19627](https://youtrack.jetbrains.com/issue/KT-19627)
**Exploration and design** **Support immutability** * KEEP notes: [immutability](https://github.com/Kotlin/KEEP/blob/master/notes/value-classes.md#immutability-and-value-classes) * YouTrack issue: [KT-1179](https://youtrack.jetbrains.com/issue/KT-1179)
**KEEP discussion** **KMP Kotlin-to-Java direct actualization** * KEEP proposal: [kmp-kotlin-to-java-direct-actualization.md](https://github.com/Kotlin/KEEP/blob/kotlin-to-java-direct-actualization/proposals/kmp-kotlin-to-java-direct-actualization.md) * YouTrack issue: [KT-67202](https://youtrack.jetbrains.com/issue/KT-67202)
**KEEP discussion** **kotlin.time.Instant** * KEEP proposal: [Instant and Clock](https://github.com/dkhalanskyjb/KEEP/blob/dkhalanskyjb-instant/proposals/stdlib/instant.md)
**KEEP discussion** **Common Atomics and Atomic Arrays** * KEEP proposal: [Common atomics](https://github.com/Kotlin/KEEP/blob/mvicsokolova/common-atomics/proposals/common-atomics.md) * YouTrack issue: [KT-62423](https://youtrack.jetbrains.com/issue/KT-62423)
**KEEP discussion** **Improvements to annotation use-site targets on properties** * KEEP proposal: [Improvements to annotation use-site targets on properties](https://github.com/Kotlin/KEEP/blob/change-defaulting-rule/proposals/change-defaulting-rule.md) * YouTrack issue: [KT-19289](https://youtrack.jetbrains.com/issue/KT-19289)
**KEEP discussion** **Nested (non-capturing) type aliases** * KEEP proposal: [Nested (non-capturing) type aliases](https://github.com/Kotlin/KEEP/blob/nested-typealias/proposals/nested-typealias.md) * YouTrack issue: [KT-45285](https://youtrack.jetbrains.com/issue/KT-45285)
**KEEP discussion** **Streamline KDoc ambiguity links** * KEEP proposal: [streamline-KDoc-ambiguity-references.md](https://github.com/Kotlin/KEEP/blob/kdoc/Streamline-KDoc-ambiguity-references/proposals/kdoc/streamline-KDoc-ambiguity-references.md) * GitHub issues: [dokka/#3451](https://github.com/Kotlin/dokka/issues/3451), [dokka/#3179](https://github.com/Kotlin/dokka/issues/3179), [dokka/#3334](https://github.com/Kotlin/dokka/issues/3334)
**KEEP discussion** **Resolution of links to extensions in KDoc** * KEEP proposal: [links-to-extensions.md](https://github.com/Kotlin/KEEP/blob/kdoc/extension-links/proposals/kdoc/links-to-extensions.md) * GitHub issue: [dokka/#3555](https://github.com/Kotlin/dokka/issues/3555)
**KEEP discussion** **Uuid** * KEEP proposal: [uuid.md](https://github.com/Kotlin/KEEP/blob/uuid/proposals/stdlib/uuid.md) * YouTrack issue: [KT-31880](https://youtrack.jetbrains.com/issue/KT-31880)
**KEEP discussion** **Improve resolution using expected type** * KEEP proposal: [improved-resolution-expected-type.md](https://github.com/Kotlin/KEEP/blob/improved-resolution-expected-type/proposals/improved-resolution-expected-type.md) * YouTrack issue: [KT-16768](https://youtrack.jetbrains.com/issue/KT-16768)
**KEEP discussion** **Expose boxed inline value classes in JVM** * KEEP proposal: [jvm-expose-boxed.md](https://github.com/Kotlin/KEEP/blob/jvm-expose-boxed/proposals/jvm-expose-boxed.md) * YouTrack issue: [KT-28135](https://youtrack.jetbrains.com/issue/KT-28135)
**KEEP discussion** **Explicit backing fields: both `public` and `private` type for the same property** * KEEP proposal: [explicit-backing-fields.md](https://github.com/Kotlin/KEEP/blob/explicit-backing-fields-re/proposals/explicit-backing-fields.md) * YouTrack issue: [KT-14663](https://youtrack.jetbrains.com/issue/KT-14663)
**KEEP discussion** **Context parameters: support for context-dependent declarations** * KEEP proposal: [context-parameters.md](https://github.com/Kotlin/KEEP/blob/context-parameters/proposals/context-parameters.md) * YouTrack issue: [KT-14663](https://youtrack.jetbrains.com/issue/KT-10468)
**KEEP discussion** **Java synthetic property references** * KEEP proposal: [references-to-java-synthetic-properties.md](https://github.com/Kotlin/KEEP/blob/master/proposals/references-to-java-synthetic-properties.md) * YouTrack issue: [KT-8575](https://youtrack.jetbrains.com/issue/KT-8575) * Target version: 2.2.0
**In preview** **Guard conditions in when-with-subject** * KEEP proposal: [guards.md](https://github.com/Kotlin/KEEP/blob/guards/proposals/guards.md) * YouTrack issue: [KT-13626](https://youtrack.jetbrains.com/issue/KT-13626) * Available since: 2.1.0
**Stable** **Stabilized `@SubclassOptInRequired`** * KEEP proposal: [subclass-opt-in-required.md](https://github.com/Kotlin/KEEP/blob/master/proposals/subclass-opt-in-required.md) * YouTrack issue: [KT-54617](https://youtrack.jetbrains.com/issue/KT-54617) * Available since: 2.1.0
**In preview** **Multidollar interpolation: improved handling of `$` in string literals** * KEEP proposal: [dollar-escape.md](https://github.com/Kotlin/KEEP/blob/master/proposals/dollar-escape.md) * YouTrack issue: [KT-2425](https://youtrack.jetbrains.com/issue/KT-2425) * Available since: 2.1.0
**In preview** **Non-local `break` and `continue`** * KEEP proposal: [break-continue-in-inline-lambdas.md](https://github.com/Kotlin/KEEP/blob/master/proposals/break-continue-in-inline-lambdas.md) * YouTrack issue: [KT-1436](https://youtrack.jetbrains.com/issue/KT-1436) * Available since: 2.1.0
**Stable** **`Enum.entries`: performant replacement of the `Enum.values()`** * KEEP proposal: [enum-entries.md](https://github.com/Kotlin/KEEP/blob/master/proposals/enum-entries.md) * YouTrack issue: [KT-48872](https://youtrack.jetbrains.com/issue/KT-48872) * Target version: 2.0.0
**Stable** **Data objects** * KEEP proposal: [data-objects.md](https://github.com/Kotlin/KEEP/blob/master/proposals/data-objects.md) * YouTrack issue: [KT-4107](https://youtrack.jetbrains.com/issue/KT-4107) * Target version: 1.9.0
**Stable** **RangeUntil operator `..<`** * KEEP proposal: [open-ended-ranges.md](https://github.com/kotlin/KEEP/blob/open-ended-ranges/proposals/open-ended-ranges.md) * YouTrack issue: [KT-15613](https://youtrack.jetbrains.com/issue/KT-15613) * Target version: 1.7.20
**Stable** **Definitely non-nullable types** * KEEP proposal: [definitely-non-nullable-types.md](https://github.com/Kotlin/KEEP/blob/master/proposals/definitely-non-nullable-types.md) * YouTrack issue: [KT-26245](https://youtrack.jetbrains.com/issue/KT-26245) * Target version: 1.7.0
**Revoked** **Context receivers** * KEEP proposal: [context-receivers.md](https://github.com/Kotlin/KEEP/blob/master/proposals/context-receivers.md) * YouTrack issue: [KT-10468](https://youtrack.jetbrains.com/issue/KT-10468)

【Exploration and design】


【KEEP discussion】


【In preview】


【Stable】


【Revoked】