我在 Kotlin 中有一个函数,尽管不是高阶的,但我想内联它。
我发现在整个项目中我多次出现这样的场景。
因此,为了忽略有关使用内联函数的编译器警告,我必须在整个项目中使用大量
Suppress("NOTHING_TO_INLINE")
注释,这开始困扰我。
是否有任何方法可以阻止整个项目的此警告,例如通过编译器选项? 我想知道如何在 IntelliJ IDEA 中执行此操作。
看起来不可能全局禁用检查。至少我在 IntelliJ 中找不到设置。但是,您可以禁用对整个文件的检查:
@file:Suppress("NOTHING_TO_INLINE")
如果您在警告上按 ALT+Enter,您将获得一个选项来抑制它,其中仅包含对函数、类(如果它在一个中)或整个文件的抑制。您可以禁用的任何检查通常在此列表中都有“禁用检查”选项(
NOTHING_TO_INLINE
没有)。
但是,您可以通过将
suppressWarnings
添加到compileKotlin 任务来禁用编译时的警告(但这不会影响检查;编辑时您仍然会看到警告)。 请注意,这会禁用所有警告,而不仅仅是特定的警告。
compileKotlin {
kotlinOptions.suppressWarnings = true
}
随着本周早些时候 Kotlin 2.1.0 的发布,您现在可以通过添加编译器标志来全局抑制警告:
// build.gradle.kts
kotlin {
compilerOptions {
freeCompilerArgs.add("-Xsuppress-warning=NOTHING_TO_INLINE")
}
}
这将在项目范围内抑制编译器警告。但是,IntelliJ IDE 似乎尚不支持此编译器标志(截至版本 2023.3),因为内联警告仍然可见。我怀疑这将在下一个版本中修复。