Lex Luthor
04/18/2024, 3:40 AM@Suppress("ktlint:standard:property-naming")
interface ExternalModel {
val sys_id: String?
val table_name: String
}
$ ./gradlew ktlintFormat
...
* What went wrong:
Execution failed for task ':runKtlintCheckOverMainSourceSet'.
> A failure occurred while executing org.jlleitschuh.gradle.ktlint.worker.KtLintWorkAction
> 'void org.jetbrains.kotlin.psi.psiUtil.PsiUtilsKt.checkDecompiledText(org.jetbrains.kotlin.com.intellij.psi.PsiElement)'
I am using the following configuration:
Gradle 8.6
Amazon Corretto 17.0.10-amzn
Ktlint Gradle 12.1.0
ktlint 1.2.1
Anyone come across this?Alex Arana
04/18/2024, 4:04 AM@Suppress("PropertyName")
interface ExternalModel {
val sys_id: String?
val table_name: String
}
Paul Dingemans
04/18/2024, 7:24 AM.editorconfig
when you can reproduce it with the CLI version.Alex Arana
04/19/2024, 3:30 AMCaused by: java.lang.NoSuchMethodError: 'void org.jetbrains.kotlin.psi.psiUtil.PsiUtilsKt.checkDecompiledText(org.jetbrains.kotlin.com.intellij.psi.PsiElement)'
at com.pinterest.ktlint.rule.engine.internal.rules.KtlintSuppressionRule.visitKtlintSuppressionInAnnotation(KtlintSuppressionRule.kt:432)
at com.pinterest.ktlint.rule.engine.internal.rules.KtlintSuppressionRule.beforeVisitChildNodes(KtlintSuppressionRule.kt:78)
at com.pinterest.ktlint.rule.engine.internal.RuleExecutionContext$executeRuleOnNodeRecursively$1.invoke(RuleExecutionContext.kt:125)
at com.pinterest.ktlint.rule.engine.internal.RuleExecutionContext$executeRuleOnNodeRecursively$1.invoke(RuleExecutionContext.kt:124)
at com.pinterest.ktlint.rule.engine.internal.SuppressHandler.handle(SuppressHandler.kt:28)
The missing method, which ktlint engine is unable to find, is PsiElement.checkDecompiledText
. Looking at the Kotlin sources repository, said method was not introduced until version 1.9.20:
• https://github.com/JetBrains/kotlin/blob/v1.9.10/compiler/psi/src/org/jetbrains/kotlin/psi/psiUtil/psiUtils.kt (missing)
• https://github.com/JetBrains/kotlin/blob/v1.9.20/compiler/psi/src/org/jetbrains/kotlin/psi/psiUtil/psiUtils.kt (#e9c8be3)
I tested upgrading my project to Kotlin language version 1.9.20 (from 1.9.10) and Gradle task ktlintFormat
does not fail anymore.Paul Dingemans
04/19/2024, 3:32 PMThe missing method, which ktlint engine is unable to find, isThat is a very good find. The call to. Looking at the Kotlin sources repository, said method was not introduced until version 1.9.20:PsiElement.checkDecompiledText
checkDecompiledText
is not made directly by KtlintRuleEngine
. I would need the full stack trace to find the root cause of it.Lex Luthor
04/20/2024, 3:01 AM