From c3603832b0fbfd2c0f08f3daefc3746cc3dfc6d6 Mon Sep 17 00:00:00 2001 From: Him188 Date: Sat, 16 Nov 2019 18:45:40 +0800 Subject: [PATCH] Add SinceMirai and MiraiExperimentalAPI annotations --- .../net.mamoe.mirai/utils/Annotations.kt | 35 +++++++++++++------ 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/Annotations.kt b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/Annotations.kt index d907cba9a..50d626d4f 100644 --- a/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/Annotations.kt +++ b/mirai-core/src/commonMain/kotlin/net.mamoe.mirai/utils/Annotations.kt @@ -1,18 +1,31 @@ package net.mamoe.mirai.utils +import kotlin.annotation.AnnotationTarget.* + /** - * 标记这个类, 类型, 函数, 属性, 字段, 或构造器为一个仅供 Mirai 内部使用的 API. + * 标记为一个仅供 Mirai 内部使用的 API. * * 这些 API 可能会在任意时刻更改, 且不会发布任何预警. - * 我们非常不建议使用这些 API. + * 非常不建议在发行版本中使用这些 API. */ @Experimental(level = Experimental.Level.ERROR) -@Target( - AnnotationTarget.CLASS, - AnnotationTarget.TYPEALIAS, - AnnotationTarget.FUNCTION, - AnnotationTarget.PROPERTY, - AnnotationTarget.FIELD, - AnnotationTarget.CONSTRUCTOR -) -annotation class InternalAPI \ No newline at end of file +@Target(CLASS, TYPEALIAS, FUNCTION, PROPERTY, FIELD, CONSTRUCTOR) +internal annotation class MiraiInternalAPI + +/** + * 标记这个类, 类型, 函数, 属性, 字段, 或构造器为实验性的. + * + * 这些 API 不具有稳定性, 且可能会在任意时刻更改. + * 不建议在发行版本中使用这些 API. + */ +@Experimental(level = Experimental.Level.ERROR) +@Target(CLASS, TYPEALIAS, FUNCTION, PROPERTY, FIELD, CONSTRUCTOR) +internal annotation class MiraiExperimentalAPI + +/** + * 标记这个 API 是自 Mirai 某个版本起才受支持. + */ +@Target(CLASS, PROPERTY, FIELD, CONSTRUCTOR, FUNCTION, PROPERTY_GETTER, PROPERTY_SETTER, TYPEALIAS) +@Retention(AnnotationRetention.BINARY) +@MustBeDocumented +internal annotation class SinceMirai(val version: String)