All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlin.analysis.api.lifetime.KaLifetimeToken.kt Maven / Gradle / Ivy

/*
 * 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.lifetime

import org.jetbrains.kotlin.analysis.api.KaImplementationDetail

public abstract class KaLifetimeToken {
    public abstract fun isValid(): Boolean
    public abstract fun getInvalidationReason(): String

    public abstract fun isAccessible(): Boolean
    public abstract fun getInaccessibilityReason(): String
}

@Deprecated("Use 'KaLifetimeToken' instead", ReplaceWith("KaLifetimeToken"))
public typealias KtLifetimeToken = KaLifetimeToken

@OptIn(KaImplementationDetail::class)
@Suppress("NOTHING_TO_INLINE")
public inline fun KaLifetimeToken.assertIsValidAndAccessible() {
    if (!isValid()) {
        throw KaInvalidLifetimeOwnerAccessException("Access to invalid $this: ${getInvalidationReason()}")
    }
    if (!isAccessible()) {
        throw KaInaccessibleLifetimeOwnerAccessException("$this is inaccessible: ${getInaccessibilityReason()}")
    }
}

@KaImplementationDetail
public abstract class KaIllegalLifetimeOwnerAccessException : IllegalStateException()

@Deprecated("Use 'KaIllegalLifetimeOwnerAccessException' instead", ReplaceWith("KaIllegalLifetimeOwnerAccessException"))
@KaImplementationDetail
public typealias KtIllegalLifetimeOwnerAccessException = KaIllegalLifetimeOwnerAccessException

@KaImplementationDetail
public class KaInvalidLifetimeOwnerAccessException(override val message: String) : KaIllegalLifetimeOwnerAccessException()

@Deprecated("Use 'KaInvalidLifetimeOwnerAccessException' instead", ReplaceWith("KaInvalidLifetimeOwnerAccessException"))
@KaImplementationDetail
public typealias KtInvalidLifetimeOwnerAccessException = KaInvalidLifetimeOwnerAccessException

@KaImplementationDetail
public class KaInaccessibleLifetimeOwnerAccessException(override val message: String) : KaIllegalLifetimeOwnerAccessException()

@Deprecated("Use 'KaInaccessibleLifetimeOwnerAccessException' instead", ReplaceWith("KaInaccessibleLifetimeOwnerAccessException"))
@KaImplementationDetail
public typealias KtInaccessibleLifetimeOwnerAccessException = KaInaccessibleLifetimeOwnerAccessException




© 2015 - 2025 Weber Informatics LLC | Privacy Policy