Kotlin 언어 기능과 제안
Kotlin 언어 기능과 제안
JetBrains는 실용적인 설계에 따라 Kotlin 언어 진화 원칙에 맞춰 Kotlin 언어를 진화시키고 있어요.
언어 기능 제안은 Kotlin 1.7.0부터 나열되어 있어요.
언어 기능 상태에 대한 설명은 Kotlin 진화 원칙 문서에서 확인할 수 있어요.
본문
탐색 및 설계(Exploration and design)
Support immutability
- KEEP 노트: immutability
- YouTrack 이슈: KT-77734
KEEP 논의
CoroutineContext as context parameter
- KEEP 제안: CoroutineContext-context-parameter.md
- YouTrack 이슈: KT-15555
Rich Errors: motivation and rationale
- KEEP 제안: rich-errors-motivation.md
- YouTrack 이슈: KT-68296
Kotlin companion blocks and extensions (statics)
- KEEP 제안: companion-blocks.md
- YouTrack 이슈: KT-11968
Version overloading
- KEEP 제안: version-overloading.md
Streamline KDoc ambiguity links
- KEEP 제안: streamline-KDoc-ambiguity-references.md
- GitHub 이슈: dokka/#3451, dokka/#3179, dokka/#3334
Resolution of links to extensions in KDoc
- KEEP 제안: links-to-extensions.md
- GitHub 이슈: dokka/#3555
미리보기(In preview)
Collection literals
- KEEP 제안: collection-literals.md
- YouTrack 이슈: KT-43871
- 안정성 수준: Experimental
- 사용 가능: 2.4.0부터
Improve compile-time constants
- KEEP 제안: improve-compile-time-constants.md
- YouTrack 이슈: KT-22505
- 안정성 수준: Experimental
- 사용 가능: 2.4.0부터
Name-based destructuring
- KEEP 제안: name-based-destructuring.md
- YouTrack 이슈: KT-19627
- 안정성 수준: Experimental
- 사용 가능: 2.3.20부터
Unused return value checker
- KEEP 제안: unused-return-value-checker.md
- YouTrack 이슈: KT-12719
- 안정성 수준: Experimental
- 사용 가능: 2.3.0부터
Context-sensitive resolution
- KEEP 제안: context-sensitive-resolution.md
- YouTrack 이슈: KT-16768
- 안정성 수준: Experimental
- 사용 가능: 2.2.0부터
Expose boxed inline value classes in JVM
- KEEP 제안: jvm-expose-boxed.md
- YouTrack 이슈: KT-28135
- 안정성 수준: Experimental
- 사용 가능: 2.2.0부터
Common Atomics and Atomic Arrays
- KEEP 제안: Common atomics
- YouTrack 이슈: KT-62423
- 안정성 수준: Experimental
- 사용 가능: 2.2.0부터
KMP Kotlin-to-Java direct actualization
- KEEP 제안: kmp-kotlin-to-java-direct-actualization.md
- YouTrack 이슈: KT-67202
- 안정성 수준: Experimental
- 사용 가능: 2.1.0부터
안정(Stable)
Context parameters: support for context-dependent declarations
- KEEP 제안: context-parameters.md
- YouTrack 이슈: KT-10468
- 사용 가능: 2.2.0부터, Stable since 2.4.0
Improvements to annotation use-site targets on properties
- KEEP 제안: Improvements to annotation use-site targets on properties
- YouTrack 이슈: KT-73255
- 사용 가능: 2.2.0부터, Stable since 2.4.0
Explicit backing fields
- KEEP 제안: explicit-backing-fields.md
- YouTrack 이슈: KT-14663
- 사용 가능: 2.3.0부터, Stable since 2.4.0
Uuid
Data flow-based exhaustiveness checking
- KEEP 제안: dfa-exhaustiveness.md
- YouTrack 이슈: KT-8781
- 사용 가능: 2.2.20부터, Stable since 2.3.0
Nested (non-capturing) type aliases
- KEEP 제안: Nested (non-capturing) type aliases
- YouTrack 이슈: KT-45285
- 사용 가능: 2.2.0부터, Stable since 2.3.0
kotlin.time.Instant
- KEEP 제안: Instant and Clock
- YouTrack 이슈: KT-80778
- 사용 가능: 2.1.0부터, Stable since 2.3.0
Guard conditions in when-with-subject
Multidollar interpolation: improved handling of $ in string literals
- KEEP 제안: dollar-escape.md
- YouTrack 이슈: KT-2425
- 사용 가능: 2.2.0부터
Non-local break and continue
- KEEP 제안: break-continue-in-inline-lambdas.md
- YouTrack 이슈: KT-1436
- 사용 가능: 2.2.0부터
Stabilized @SubclassOptInRequired
- KEEP 제안: subclass-opt-in-required.md
- YouTrack 이슈: KT-54617
- 사용 가능: 2.1.0부터
Enum.entries: performant replacement of the Enum.values()
- KEEP 제안: enum-entries.md
- YouTrack 이슈: KT-48872
- 사용 가능: 2.0.0부터
Data objects
- KEEP 제안: data-objects.md
- YouTrack 이슈: KT-4107
- 사용 가능: 1.9.0부터
RangeUntil operator ..<
- KEEP 제안: open-ended-ranges.md
- YouTrack 이슈: KT-15613
- 사용 가능: 1.7.20부터
Definitely non-nullable types
- KEEP 제안: definitely-non-nullable-types.md
- YouTrack 이슈: KT-26245
- 사용 가능: 1.7.0부터
철회됨(Revoked)
Context receivers
- KEEP 제안: context-receivers.md
- YouTrack 이슈: KT-10468
- context-parameters.md로 대체됨
Java synthetic property references
- KEEP 제안: references-to-java-synthetic-properties.md
- YouTrack 이슈: KT-8575