[KAPT] KT-64301 Report invalid enum value names

Merge-request: KT-MR-13520
Merged-by: Pavel Mikhailovskii <Pavel.Mikhailovskii@jetbrains.com>
This commit is contained in:
strangepleasures
2023-12-13 17:53:52 +00:00
committed by Space Team
parent 676e350b6f
commit 1015ae858e
4 changed files with 57 additions and 8 deletions
@@ -43,6 +43,7 @@ import org.jetbrains.kotlin.psi.psiUtil.parameterIndex
import org.jetbrains.kotlin.resolve.calls.util.getCalleeExpressionIfAny
import org.jetbrains.kotlin.utils.toMetadataVersion
import org.jetbrains.kotlin.kapt3.base.KaptOptions
import org.jetbrains.kotlin.kapt3.base.javac.kaptError
import org.jetbrains.kotlin.kapt3.stubs.MembersPositionComparator
import org.jetbrains.kotlin.psi.psiUtil.children
import org.jetbrains.kotlin.utils.Printer
@@ -466,7 +467,9 @@ private class StubGenerator(
private fun convertDotQualifiedExpression(dotQualifiedExpression: KtDotQualifiedExpression): String? {
val qualifier = dotQualifiedExpression.lastChild as? KtNameReferenceExpression ?: return null
val name = qualifier.text.takeIf { isValidIdentifier(it) } ?: "InvalidFieldName"
val name = qualifier.text.takeIf { isValidIdentifier(it) } ?: "InvalidFieldName".also {
onError("'${qualifier.text.removeSurrounding("`")}' is an invalid Java enum value name")
}
val lhs = when (val left = dotQualifiedExpression.firstChild) {
is KtNameReferenceExpression -> left.getReferencedName()
is KtDotQualifiedExpression -> convertDotQualifiedExpression(left) ?: return null
@@ -85,11 +85,7 @@ private fun run(
WriterBackedKaptLogger(isVerbose = false),
)
val onError = { message: String ->
if (context.options[KaptFlag.STRICT]) {
context.reportKaptError(*message.split("\n").toTypedArray())
} else {
context.logger.warn(message)
}
context.reportKaptError(*message.split("\n").toTypedArray())
}
return context to generateStubs(module, files, options, onError, metadataRenderer = { renderMetadata(it) })
}