Repository: Kotlin/kotlinx.coroutines
File: kotlinx-coroutines-core/common/src/Annotations.kt (Kotlin)

Code before:
 * Marks declarations that are **internal** in coroutines API, which means that should not be used outside of
 * `kotlinx.coroutines`, because their signatures and semantics will change between future releases without any
 * warnings and without providing any migration aids.
 */
@MustBeDocumented
@Retention(value = AnnotationRetention.BINARY)
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.TYPEALIAS, AnnotationTarget.PROPERTY)
@RequiresOptIn(
    level = RequiresOptIn.Level.ERROR, message = "This is an internal kotlinx.coroutines API that " +
            "should not be used from outside of kotlinx.coroutines. No compatibility guarantees are provided. " +
            "It is recommended to report your use-case of internal API to kotlinx.coroutines issue tracker, " +
            "so stable API could be provided instead"
)
public annotation class InternalCoroutinesApi

/**
 * Marks declarations that cannot be safely inherited from.
 */
@Target(AnnotationTarget.CLASS)
@RequiresOptIn(
    level = RequiresOptIn.Level.WARNING, message =
    "Inheriting from this kotlinx.coroutines API is unstable. " +
        "Either new methods may be added in the future, which would break the inheritance, " +
        "or correctly inheriting from it requires fulfilling contracts that may change in the future."
)
public annotation class BrittleForInheritanceCoroutinesApi

/**
 * Marks declarations that cannot be safely inherited from.
 */
@Target(AnnotationTarget.CLASS)
@RequiresOptIn(
    level = RequiresOptIn.Level.WARNING, message =
    "This is a kotlinx.coroutines API that is not intended to be inherited from, " +
        "as the library may handle predefined instances of this in a special manner."
)
public annotation class UnsuitableForInheritanceCoroutinesApi


Review comment (suggestion):
We now have three terms in our glossary -- experimental, brittle and unstable.

I suggest sticking with `experimental` as the most straightforward one -- most of our "Not stable for inheritance" mean "as new methods might be added to this interface in the future"

Code after:
 * Marks declarations that are **internal** in coroutines API, which means that should not be used outside of
 * `kotlinx.coroutines`, because their signatures and semantics will change between future releases without any
 * warnings and without providing any migration aids.
 */
@MustBeDocumented
@Retention(value = AnnotationRetention.BINARY)
@Target(AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.TYPEALIAS, AnnotationTarget.PROPERTY)
@RequiresOptIn(
    level = RequiresOptIn.Level.ERROR, message = "This is an internal kotlinx.coroutines API that " +
            "should not be used from outside of kotlinx.coroutines. No compatibility guarantees are provided. " +
            "It is recommended to report your use-case of internal API to kotlinx.coroutines issue tracker, " +
            "so stable API could be provided instead"
)
public annotation class InternalCoroutinesApi

/**
 * Marks declarations that cannot be safely inherited from.
 */
@Target(AnnotationTarget.CLASS)
@RequiresOptIn(
    level = RequiresOptIn.Level.WARNING, message =
    "Inheriting from this kotlinx.coroutines API is unstable. " +
        "Either new methods may be added in the future, which would break the inheritance, " +
        "or correctly inheriting from it requires fulfilling contracts that may change in the future."
)
public annotation class ExperimentalForInheritanceCoroutinesApi

/**
 * Marks declarations that cannot be safely inherited from.
 */
@Target(AnnotationTarget.CLASS)
@RequiresOptIn(
    level = RequiresOptIn.Level.WARNING, message =
    "This is a kotlinx.coroutines API that is not intended to be inherited from, " +
        "as the library may handle predefined instances of this in a special manner. " +
        "This will be an error in a future release. " +
        "If you need to inherit from this, please describe your use case in " +
        "https://github.com/Kotlin/kotlinx.coroutines/issues, so that we can provide a stable API for inheritance. "
)
public annotation class InternalForInheritanceCoroutinesApi