1
0
mirror of https://github.com/mamoe/mirai.git synced 2025-04-25 04:50:26 +08:00

Inline all typeOf0 usages with stable stdlib API typeOf

This commit is contained in:
Him188 2022-01-06 20:18:26 +00:00
parent dcacacefad
commit 693e6af79a
5 changed files with 9 additions and 14 deletions
mirai-console/backend/mirai-console/src

View File

@ -15,11 +15,11 @@ import net.mamoe.mirai.console.compiler.common.ResolveContext
import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.COMMAND_NAME
import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.RESTRICTED_CONSOLE_COMMAND_OWNER
import net.mamoe.mirai.console.internal.command.findOrCreateCommandPermission
import net.mamoe.mirai.console.internal.data.typeOf0
import net.mamoe.mirai.console.permission.Permission
import net.mamoe.mirai.message.data.Message
import net.mamoe.mirai.message.data.MessageChain
import net.mamoe.mirai.message.data.buildMessageChain
import kotlin.reflect.typeOf
/**
* 无参数解析, 接收原生参数的指令.
@ -60,7 +60,7 @@ public abstract class RawCommand(
@ExperimentalCommandDescriptors
override val overloads: List<@JvmWildcard CommandSignature> = listOf(
CommandSignatureImpl(
receiverParameter = CommandReceiverParameter(false, typeOf0<CommandSender>()),
receiverParameter = CommandReceiverParameter(false, typeOf<CommandSender>()),
valueParameters = listOf(
AbstractCommandValueParameter.UserDefinedType.createRequired<Array<out Message>>(
"args",

View File

@ -17,7 +17,6 @@ import net.mamoe.mirai.console.command.parse.CommandValueArgument
import net.mamoe.mirai.console.command.resolve.ResolvedCommandValueArgument
import net.mamoe.mirai.console.internal.data.classifierAsKClass
import net.mamoe.mirai.console.internal.data.classifierAsKClassOrNull
import net.mamoe.mirai.console.internal.data.typeOf0
import net.mamoe.mirai.console.util.ConsoleExperimentalApi
import net.mamoe.mirai.message.data.content
import kotlin.reflect.KClass
@ -145,8 +144,8 @@ public data class CommandReceiverParameter<T : CommandSender>(
}
internal val ANY_TYPE = typeOf0<Any>()
internal val ARRAY_OUT_ANY_TYPE = typeOf0<Array<out Any?>>()
internal val ANY_TYPE = typeOf<Any>()
internal val ARRAY_OUT_ANY_TYPE = typeOf<Array<out Any?>>()
@ExperimentalCommandDescriptors
public sealed class AbstractCommandValueParameter<T> : CommandValueParameter<T>, AbstractCommandParameter<T>() {

View File

@ -15,12 +15,12 @@ import net.mamoe.mirai.console.compiler.common.ResolveContext
import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.COMMAND_NAME
import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.RESTRICTED_CONSOLE_COMMAND_OWNER
import net.mamoe.mirai.console.internal.command.findOrCreateCommandPermission
import net.mamoe.mirai.console.internal.data.typeOf0
import net.mamoe.mirai.console.permission.Permission
import net.mamoe.mirai.message.data.Message
import net.mamoe.mirai.message.data.MessageChain
import net.mamoe.mirai.message.data.buildMessageChain
import net.mamoe.mirai.utils.runBIO
import kotlin.reflect.typeOf
/**
* Java 用户继承
@ -82,7 +82,7 @@ public abstract class JRawCommand
@ExperimentalCommandDescriptors
override val overloads: List<@JvmWildcard CommandSignature> = listOf(
CommandSignatureImpl(
receiverParameter = CommandReceiverParameter(false, typeOf0<CommandSender>()),
receiverParameter = CommandReceiverParameter(false, typeOf<CommandSender>()),
valueParameters = listOf(
AbstractCommandValueParameter.UserDefinedType.createRequired<Array<out Message>>(
"args",

View File

@ -24,7 +24,6 @@ import net.mamoe.mirai.console.compiler.common.ResolveContext
import net.mamoe.mirai.console.compiler.common.ResolveContext.Kind.RESTRICTED_NO_ARG_CONSTRUCTOR
import net.mamoe.mirai.console.data.java.JAutoSavePluginData
import net.mamoe.mirai.console.internal.data.createInstanceSmart
import net.mamoe.mirai.console.internal.data.typeOf0
import net.mamoe.mirai.console.internal.data.valueFromKTypeImpl
import net.mamoe.mirai.console.internal.data.valueImpl
import net.mamoe.mirai.console.plugin.jvm.AbstractJvmPlugin
@ -34,6 +33,7 @@ import net.mamoe.mirai.console.util.ConsoleExperimentalApi
import kotlin.internal.LowPriorityInOverloadResolution
import kotlin.reflect.KClass
import kotlin.reflect.KType
import kotlin.reflect.typeOf
/**
* 一个插件内部的, 对用户隐藏的数据对象. 可包含对多个 [Value] 的值变更的跟踪. 典型的实现为 [AbstractPluginData].
@ -212,7 +212,7 @@ public inline fun <reified T> PluginData.value(
default: T,
crossinline apply: T.() -> Unit = {},
): SerializerAwareValue<T> =
valueFromKType(typeOf0<T>(), default).also { it.value.apply() }
valueFromKType(typeOf<T>(), default).also { it.value.apply() }
/**
* 通过具体化类型创建一个 [SerializerAwareValue].
@ -222,7 +222,7 @@ public inline fun <reified T> PluginData.value(
@LowPriorityInOverloadResolution
public inline fun <@ResolveContext(RESTRICTED_NO_ARG_CONSTRUCTOR) reified T>
PluginData.value(apply: T.() -> Unit = {}): SerializerAwareValue<T> =
valueImpl<T>(typeOf0<T>(), T::class).also { it.value.apply() }
valueImpl<T>(typeOf<T>(), T::class).also { it.value.apply() }
@Suppress("UNCHECKED_CAST")
@PublishedApi

View File

@ -28,10 +28,6 @@ private val primitiveCollectionsImplemented by lazy {
false
}
@PublishedApi
@OptIn(ExperimentalStdlibApi::class)
internal inline fun <reified T> typeOf0(): KType = kotlin.reflect.typeOf<T>()
@Suppress("UnsafeCall", "SMARTCAST_IMPOSSIBLE", "UNCHECKED_CAST")
internal fun PluginData.valueFromKTypeImpl(type: KType): SerializerAwareValue<*> {
val classifier = type.classifier