ChecksSdkIntAtLeast 无法正常工作

ChecksSdkIntAtLeast is not working properly

我正在尝试使用 @ChecksSdkIntAtLeast 注释将我们的 java 实用函数转换为不需要 @SuppressLint("NewApi").

的 kotlin 属性

但无论如何我写了 属性,它停止了 if 的两个分支的红色下划线代码。

演示:

@get:ChecksSdkIntAtLeast(api = Build.VERSION_CODES.O)
val isAtLeastOreo: Boolean
    get() = Build.VERSION.SDK_INT >= Build.VERSION_CODES.O

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
    manager.getNotificationChannel("general")
} else {
    manager.getNotificationChannel("general")        // CORRECTLY UNDERLINED
}

if (isAtLeastOreo) {
    manager.getNotificationChannel("general")
} else {
    manager.getNotificationChannel("general")        // NOT UNDERLINED - WHY??
}

如果我把它变成函数而不是 getter,同样的事情也会发生。唯一可行的方法是使用 lambda,但后来我失去了 if-else 结构,需要大量的地方进行重构。

问题已于 8 月 23 日报告。正在等待回复

https://issuetracker.google.com/issues/197428342