Kotlin Help

Kotlin language features and proposals

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

Exploration and design

Rich Errors: Error union types

  • KEEP proposal: Not defined

  • YouTrack issue: KT-68296

Exploration and design

Name-based destructuring

  • KEEP proposal: Not defined

  • YouTrack issue: KT-19627

Exploration and design

Support immutability

KEEP discussion

Kotlin statics and static extensions

KEEP discussion

Collection literals

KEEP discussion

Explicit backing fields

KEEP discussion

Version overloading

KEEP discussion

Unused return value checker

KEEP discussion

Streamline KDoc ambiguity links

KEEP discussion

Resolution of links to extensions in KDoc

In preview

Context parameters: support for context-dependent declarations

In preview

Improvements to annotation use-site targets on properties

In preview

Nested (non-capturing) type aliases

In preview

Context-sensitive resolution

In preview

Expose boxed inline value classes in JVM

In preview

kotlin.time.Instant

In preview

Uuid

In preview

Common Atomics and Atomic Arrays

In preview

KMP Kotlin-to-Java direct actualization

Stable

Guard conditions in when-with-subject

Stable

Multidollar interpolation: improved handling of $ in string literals

Stable

Non-local break and continue

Stable

Stabilized @SubclassOptInRequired

Stable

Enum.entries: performant replacement of the Enum.values()

Stable

Data objects

Stable

RangeUntil operator ..<

Stable

Definitely non-nullable types

Revoked

Context receivers

Revoked

Java synthetic property references

Exploration and design

Rich Errors: Error union types

  • KEEP proposal: Not defined

  • YouTrack issue: KT-68296

Exploration and design

Name-based destructuring

  • KEEP proposal: Not defined

  • YouTrack issue: KT-19627

Exploration and design

Support immutability

KEEP discussion

Kotlin statics and static extensions

KEEP discussion

Collection literals

KEEP discussion

Explicit backing fields

KEEP discussion

Version overloading

KEEP discussion

Unused return value checker

KEEP discussion

Streamline KDoc ambiguity links

KEEP discussion

Resolution of links to extensions in KDoc

In preview

Context parameters: support for context-dependent declarations

In preview

Improvements to annotation use-site targets on properties

In preview

Nested (non-capturing) type aliases

In preview

Context-sensitive resolution

In preview

Expose boxed inline value classes in JVM

In preview

kotlin.time.Instant

In preview

Uuid

In preview

Common Atomics and Atomic Arrays

In preview

KMP Kotlin-to-Java direct actualization

Stable

Guard conditions in when-with-subject

Stable

Multidollar interpolation: improved handling of $ in string literals

Stable

Non-local break and continue

Stable

Stabilized @SubclassOptInRequired

Stable

Enum.entries: performant replacement of the Enum.values()

Stable

Data objects

Stable

RangeUntil operator ..<

Stable

Definitely non-nullable types

Revoked

Context receivers

Revoked

Java synthetic property references

Last modified: 23 June 2025