[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.
|
* 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.
|
* 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
|
package org.jetbrains.kotlin.tooling.core
|
||||||
|
|
||||||
@@ -14,72 +15,30 @@ interface ExtrasProperty<T : Any> {
|
|||||||
val key: Extras.Key<T>
|
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)
|
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<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> {
|
fun <T : Any> extrasReadWriteProperty(key: Extras.Key<T>): ExtrasReadWriteProperty<T> = object : ExtrasReadWriteProperty<T> {
|
||||||
override val key: Extras.Key<T> = key
|
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(
|
fun <Receiver : HasMutableExtras, T : Any> extrasLazyProperty(
|
||||||
key: Extras.Key<T>, factory: Receiver.() -> T
|
key: Extras.Key<T>, factory: Receiver.() -> T,
|
||||||
): ExtrasLazyProperty<Receiver, T> =
|
): ExtrasLazyProperty<Receiver, T> =
|
||||||
object : ExtrasLazyProperty<Receiver, T> {
|
object : ExtrasLazyProperty<Receiver, T> {
|
||||||
override val key: Extras.Key<T> = key
|
override val key: Extras.Key<T> = key
|
||||||
override val factory: Receiver.() -> T = factory
|
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) =
|
inline fun <reified T : Any> extrasReadWriteProperty(name: String? = null) =
|
||||||
extrasReadWriteProperty(extrasKeyOf<T>(name))
|
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) =
|
inline fun <Receiver : HasMutableExtras, reified T : Any> extrasLazyProperty(name: String? = null, noinline factory: Receiver.() -> T) =
|
||||||
extrasLazyProperty(extrasKeyOf(name), factory)
|
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> {
|
interface NotNullExtrasReadOnlyProperty<T : Any> : ExtrasProperty<T>, ReadOnlyProperty<HasExtras, T> {
|
||||||
val defaultValue: 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> {
|
interface ExtrasLazyProperty<Receiver : HasMutableExtras, T : Any> : ExtrasProperty<T>, ReadWriteProperty<Receiver, T> {
|
||||||
val factory: 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?> {
|
interface NullableExtrasLazyProperty<Receiver : HasMutableExtras, T : Any> : ExtrasProperty<Optional<T>>, ReadOnlyProperty<Receiver, T?> {
|
||||||
val factory: Receiver.() -> T?
|
val factory: Receiver.() -> T?
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -7,9 +7,9 @@ package org.jetbrains.kotlin.tooling.core
|
|||||||
|
|
||||||
import kotlin.test.*
|
import kotlin.test.*
|
||||||
|
|
||||||
|
@Suppress("DEPRECATION")
|
||||||
class ExtrasPropertyTest {
|
class ExtrasPropertyTest {
|
||||||
|
|
||||||
|
|
||||||
class Subject : HasMutableExtras {
|
class Subject : HasMutableExtras {
|
||||||
override val extras: MutableExtras = mutableExtrasOf()
|
override val extras: MutableExtras = mutableExtrasOf()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user