org.jetbrains.kotlin.analysis.utils.caches.softCachedValue.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of kotlin-annotation-processing Show documentation
Show all versions of kotlin-annotation-processing Show documentation
Annotation Processor for Kotlin
package org.jetbrains.kotlin.analysis.utils.caches
import com.intellij.openapi.project.Project
import com.intellij.psi.util.CachedValue
import com.intellij.psi.util.CachedValueProvider
import com.intellij.psi.util.CachedValuesManager
import kotlin.reflect.KProperty
@Suppress("NOTHING_TO_INLINE")
public inline operator fun CachedValue.getValue(thisRef: Any?, property: KProperty<*>): T = value
public inline fun softCachedValue(
project: Project,
vararg dependencies: Any,
crossinline createValue: () -> T
): CachedValue =
CachedValuesManager.getManager(project).createCachedValue {
CachedValueProvider.Result(
createValue(),
dependencies
)
}