[Gradle] Demote ExtrasProperty APIs with little usage
Those APIs can either be replaced with StoredProperty Some APIs also have shown to be 'hard to understand' KT-61634
This commit is contained in:
committed by
Space Team
parent
242c1cf5f0
commit
08241acb6f
+85
-55
@@ -2,6 +2,7 @@
|
||||
* Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
@file:Suppress("DeprecatedCallableAddReplaceWith")
|
||||
|
||||
package org.jetbrains.kotlin.tooling.core
|
||||
|
||||
@@ -14,72 +15,30 @@ interface ExtrasProperty<T : Any> {
|
||||
val key: Extras.Key<T>
|
||||
}
|
||||
|
||||
val <T : Any> Extras.Key<T>.readProperty get() = extrasReadProperty(this)
|
||||
|
||||
val <T : Any> Extras.Key<T>.readWriteProperty get() = extrasReadWriteProperty(this)
|
||||
|
||||
fun <T : Any> Extras.Key<T>.factoryProperty(factory: () -> T) = extrasFactoryProperty(this, factory)
|
||||
|
||||
fun <Receiver : HasMutableExtras, T : Any> Extras.Key<T>.lazyProperty(factory: Receiver.() -> T) = extrasLazyProperty(this, factory)
|
||||
|
||||
fun <Receiver : HasMutableExtras, T : Any> Extras.Key<Optional<T>>.nullableLazyProperty(factory: Receiver.() -> T?) =
|
||||
extrasNullableLazyProperty(this, factory)
|
||||
|
||||
fun <T : Any> extrasReadProperty(key: Extras.Key<T>): ExtrasReadOnlyProperty<T> = object : ExtrasReadOnlyProperty<T> {
|
||||
override val key: Extras.Key<T> = key
|
||||
}
|
||||
|
||||
fun <T : Any> extrasReadWriteProperty(key: Extras.Key<T>): ExtrasReadWriteProperty<T> = object : ExtrasReadWriteProperty<T> {
|
||||
override val key: Extras.Key<T> = key
|
||||
}
|
||||
|
||||
fun <T : Any> extrasFactoryProperty(key: Extras.Key<T>, factory: () -> T) = object : ExtrasFactoryProperty<T> {
|
||||
override val key: Extras.Key<T> = key
|
||||
override val factory: () -> T = factory
|
||||
}
|
||||
|
||||
fun <Receiver : HasMutableExtras, T : Any> extrasLazyProperty(
|
||||
key: Extras.Key<T>, factory: Receiver.() -> T
|
||||
key: Extras.Key<T>, factory: Receiver.() -> T,
|
||||
): ExtrasLazyProperty<Receiver, T> =
|
||||
object : ExtrasLazyProperty<Receiver, T> {
|
||||
override val key: Extras.Key<T> = key
|
||||
override val factory: Receiver.() -> T = factory
|
||||
}
|
||||
|
||||
fun <Receiver : HasMutableExtras, T : Any> extrasNullableLazyProperty(
|
||||
key: Extras.Key<Optional<T>>, factory: Receiver.() -> T?
|
||||
): NullableExtrasLazyProperty<Receiver, T> =
|
||||
object : NullableExtrasLazyProperty<Receiver, T> {
|
||||
override val key: Extras.Key<Optional<T>> = key
|
||||
override val factory: Receiver.() -> T? = factory
|
||||
}
|
||||
|
||||
inline fun <reified T : Any> extrasReadWriteProperty(name: String? = null) =
|
||||
extrasReadWriteProperty(extrasKeyOf<T>(name))
|
||||
|
||||
inline fun <reified T : Any> extrasReadProperty(name: String? = null) =
|
||||
extrasReadProperty(extrasKeyOf<T>(name))
|
||||
|
||||
inline fun <reified T : Any> extrasFactoryProperty(name: String? = null, noinline factory: () -> T) =
|
||||
extrasFactoryProperty(extrasKeyOf(name), factory)
|
||||
|
||||
inline fun <Receiver : HasMutableExtras, reified T : Any> extrasLazyProperty(name: String? = null, noinline factory: Receiver.() -> T) =
|
||||
extrasLazyProperty(extrasKeyOf(name), factory)
|
||||
|
||||
inline fun <Receiver : HasMutableExtras, reified T : Any> extrasNullableLazyProperty(
|
||||
name: String? = null, noinline factory: Receiver.() -> T?
|
||||
) = extrasNullableLazyProperty(extrasKeyOf(name), factory)
|
||||
|
||||
interface ExtrasReadOnlyProperty<T : Any> : ExtrasProperty<T>, ReadOnlyProperty<HasExtras, T?> {
|
||||
override fun getValue(thisRef: HasExtras, property: KProperty<*>): T? {
|
||||
return thisRef.extras[key]
|
||||
}
|
||||
|
||||
fun notNull(defaultValue: T): NotNullExtrasReadOnlyProperty<T> = object : NotNullExtrasReadOnlyProperty<T> {
|
||||
override val defaultValue: T = defaultValue
|
||||
override val key: Extras.Key<T> = this@ExtrasReadOnlyProperty.key
|
||||
}
|
||||
}
|
||||
|
||||
interface NotNullExtrasReadOnlyProperty<T : Any> : ExtrasProperty<T>, ReadOnlyProperty<HasExtras, T> {
|
||||
val defaultValue: T
|
||||
@@ -117,18 +76,6 @@ interface NotNullExtrasReadWriteProperty<T : Any> : ExtrasProperty<T>, ReadWrite
|
||||
}
|
||||
}
|
||||
|
||||
interface ExtrasFactoryProperty<T : Any> : ExtrasProperty<T>, ReadWriteProperty<HasMutableExtras, T> {
|
||||
val factory: () -> T
|
||||
|
||||
override fun getValue(thisRef: HasMutableExtras, property: KProperty<*>): T {
|
||||
return thisRef.extras.getOrPut(key, factory)
|
||||
}
|
||||
|
||||
override fun setValue(thisRef: HasMutableExtras, property: KProperty<*>, value: T) {
|
||||
thisRef.extras[key] = value
|
||||
}
|
||||
}
|
||||
|
||||
interface ExtrasLazyProperty<Receiver : HasMutableExtras, T : Any> : ExtrasProperty<T>, ReadWriteProperty<Receiver, T> {
|
||||
val factory: Receiver.() -> T
|
||||
|
||||
@@ -141,6 +88,89 @@ interface ExtrasLazyProperty<Receiver : HasMutableExtras, T : Any> : ExtrasPrope
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
DEPRECATED APIs
|
||||
*/
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
@Suppress("DEPRECATION")
|
||||
val <T : Any> Extras.Key<T>.readProperty get() = extrasReadProperty(this)
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
@Suppress("DEPRECATION")
|
||||
fun <T : Any> Extras.Key<T>.factoryProperty(factory: () -> T) = extrasFactoryProperty(this, factory)
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
@Suppress("DEPRECATION")
|
||||
fun <Receiver : HasMutableExtras, T : Any> Extras.Key<Optional<T>>.nullableLazyProperty(factory: Receiver.() -> T?) =
|
||||
extrasNullableLazyProperty(this, factory)
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
@Suppress("DEPRECATION")
|
||||
fun <T : Any> extrasReadProperty(key: Extras.Key<T>): ExtrasReadOnlyProperty<T> = object : ExtrasReadOnlyProperty<T> {
|
||||
override val key: Extras.Key<T> = key
|
||||
}
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
@Suppress("DEPRECATION")
|
||||
fun <T : Any> extrasFactoryProperty(key: Extras.Key<T>, factory: () -> T) = object : ExtrasFactoryProperty<T> {
|
||||
override val key: Extras.Key<T> = key
|
||||
override val factory: () -> T = factory
|
||||
}
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
@Suppress("DEPRECATION")
|
||||
fun <Receiver : HasMutableExtras, T : Any> extrasNullableLazyProperty(
|
||||
key: Extras.Key<Optional<T>>, factory: Receiver.() -> T?,
|
||||
): NullableExtrasLazyProperty<Receiver, T> =
|
||||
object : NullableExtrasLazyProperty<Receiver, T> {
|
||||
override val key: Extras.Key<Optional<T>> = key
|
||||
override val factory: Receiver.() -> T? = factory
|
||||
}
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
@Suppress("DEPRECATION", "UNUSED")
|
||||
inline fun <reified T : Any> extrasReadProperty(name: String? = null) =
|
||||
extrasReadProperty(extrasKeyOf<T>(name))
|
||||
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
@Suppress("DEPRECATION", "UNUSED")
|
||||
inline fun <reified T : Any> extrasFactoryProperty(name: String? = null, noinline factory: () -> T) =
|
||||
extrasFactoryProperty(extrasKeyOf(name), factory)
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
@Suppress("DEPRECATION", "DeprecatedCallableAddReplaceWith")
|
||||
inline fun <Receiver : HasMutableExtras, reified T : Any> extrasNullableLazyProperty(
|
||||
name: String? = null, noinline factory: Receiver.() -> T?,
|
||||
) = extrasNullableLazyProperty(extrasKeyOf(name), factory)
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
interface ExtrasReadOnlyProperty<T : Any> : ExtrasProperty<T>, ReadOnlyProperty<HasExtras, T?> {
|
||||
override fun getValue(thisRef: HasExtras, property: KProperty<*>): T? {
|
||||
return thisRef.extras[key]
|
||||
}
|
||||
|
||||
fun notNull(defaultValue: T): NotNullExtrasReadOnlyProperty<T> = object : NotNullExtrasReadOnlyProperty<T> {
|
||||
override val defaultValue: T = defaultValue
|
||||
override val key: Extras.Key<T> = this@ExtrasReadOnlyProperty.key
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
interface ExtrasFactoryProperty<T : Any> : ExtrasProperty<T>, ReadWriteProperty<HasMutableExtras, T> {
|
||||
val factory: () -> T
|
||||
|
||||
override fun getValue(thisRef: HasMutableExtras, property: KProperty<*>): T {
|
||||
return thisRef.extras.getOrPut(key, factory)
|
||||
}
|
||||
|
||||
override fun setValue(thisRef: HasMutableExtras, property: KProperty<*>, value: T) {
|
||||
thisRef.extras[key] = value
|
||||
}
|
||||
}
|
||||
|
||||
@Deprecated("Scheduled for removal in Kotlin 2.2")
|
||||
interface NullableExtrasLazyProperty<Receiver : HasMutableExtras, T : Any> : ExtrasProperty<Optional<T>>, ReadOnlyProperty<Receiver, T?> {
|
||||
val factory: Receiver.() -> T?
|
||||
|
||||
|
||||
+1
-1
@@ -7,9 +7,9 @@ package org.jetbrains.kotlin.tooling.core
|
||||
|
||||
import kotlin.test.*
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
class ExtrasPropertyTest {
|
||||
|
||||
|
||||
class Subject : HasMutableExtras {
|
||||
override val extras: MutableExtras = mutableExtrasOf()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user