Android Studio Lint检查Kotlin高阶函数

我已经看到下面这个高阶函数的例子被用作一个方便的方法来包装Android API版本检查。

fun isLollipop(func: () -> Unit) { if (VERSION.SDK_INT >= VERSION_CODES.LOLLIPOP) { func() } } 

但是,在Android Studio 3.0(Kotlin版本1.2.0)中,如果我尝试使用需要Lollipop的API(该项目的minSdk为17),则会看到lint错误。 例如:

 isLollipop { appBarLayout.elevation = 4f } 

Lint抱怨elevation属性上的API最小值。

正如一个侧面说明,如果您将函数编写为inline fun函数,则无关紧要,lint仍会提供相同的警告。 使用内联函数,反编译的Java代码显然被版本检查包围。

我刚才发现了这个讨论,但似乎Kotlin团队已经整合了支持。 https://youtrack.jetbrains.com/issue/KT-7729

lint系统是否支持查看高阶函数?