当前使用版本 com.baomidou mybatis-plus-spring-boot3-starter 3.5.6

当前环境信息 java17+kotlin1.9.20

描述bug现象

在3.5.3.1版本中, 我使用下面这种写法让每个service中的属性引用变得简洁, 并且他工作得很完美 ` companion object { /* 用一个对象相当于给类起别名, 缩短在用其字段时的code / private val C = SysPropsEo() }

fun query(): SysPropsEo {
    return ktQuery()
        .eq(C::baseKey, "1")
        .eq(C::cacheKey, "2")
        .one
}

` 但是升级到3.5.4以上版本之后, 编译时就开始报错

Argument type mismatch: actual type is 'kotlin.reflect.KMutableProperty0', but 'kotlin.reflect.KProperty1!' was expected.

看起来是由于升级后调整了参数泛型所导致? 这个改动能否进行兼容性改造? 每个引用属性的地方去写完整的entity类名是真的很啰嗦

ps: 我也尝试过kotlin的typealias写法, 但是似乎每个kt文件中写一个同名的叫做C的private的typealias, 当数量多的时候编译时会出现引用到其他文件的情况, 同样导致无法编译

提供问题复现步骤 使用kotlin1.9.0以上版本以及mybatis-plus3.5.4以上版本上面代码将无法编译通过

提供完整堆栈日志(可选)

提供问题复现工程(可选) 请尽量提供复现工程,减少大家排错的时间.

Comment From: beingEggache

要用var, 你看报错, 已经是KMutableProperty0了, 不是 KProperty了...可以对照源码看.

Comment From: nieqiurong

这个已经变更过了.

Comment From: atardecer17

看了下源码, 是在KtQueryChainWrapper中奖原来的KProperty<*>改成KProperty1, 对传入类型范围进行收窄了

Comment From: atardecer17

要升级又只能用回之前的写完整类名的方式了, 写着有点难受了, 有没有大佬有其他解法

Comment From: atardecer17

感觉从语法层面找不到解法了...只能把几个wrapper类在项目里重写把KProperty1全都改回KProperty<*>