org.jetbrains.kotlin.analysis.api.KtAnalysisAllowanceManager.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
/*
* 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.
*/
package org.jetbrains.kotlin.analysis.api
public object KtAnalysisAllowanceManager {
@OptIn(KtAnalysisApiInternals::class)
public inline fun forbidAnalysisInside(actionName: String, action: () -> R): R {
if (resolveIsForbiddenInActionWithName.get() != null) return action()
resolveIsForbiddenInActionWithName.set(actionName)
return try {
action()
} finally {
resolveIsForbiddenInActionWithName.set(null)
}
}
@KtAnalysisApiInternals
public val resolveIsForbiddenInActionWithName: ThreadLocal = ThreadLocal.withInitial { null }
}