[Lombok K2] Fix name convention for @With on boolean fields

^KT-53451 Fixed
^KT-53370
This commit is contained in:
Dmitriy Novozhilov
2022-08-03 13:43:58 +03:00
parent 11f8e776af
commit 70da19bd22
2 changed files with 9 additions and 2 deletions
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol
import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol
import org.jetbrains.kotlin.fir.toEffectiveVisibility
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
import org.jetbrains.kotlin.fir.types.isBoolean
import org.jetbrains.kotlin.lombok.config.AccessLevel
import org.jetbrains.kotlin.lombok.k2.config.ConeLombokAnnotations.With
import org.jetbrains.kotlin.lombok.k2.config.LombokService
@@ -33,6 +34,7 @@ import org.jetbrains.kotlin.lombok.utils.collectWithNotNull
import org.jetbrains.kotlin.lombok.utils.toPropertyNameCapitalized
import org.jetbrains.kotlin.name.CallableId
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.types.typeUtil.isBoolean
class WithGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
private val lombokService: LombokService
@@ -98,7 +100,13 @@ class WithGenerator(session: FirSession) : FirDeclarationGenerationExtension(ses
private fun computeWithName(field: FirJavaField, withInfo: With): Name? {
if (withInfo.visibility == AccessLevel.NONE) return null
val functionName = "with" + toPropertyNameCapitalized(field.name.identifier)
val rawPropertyName = field.name.identifier
val propertyName = if (field.returnTypeRef.isPrimitiveBoolean() && rawPropertyName.startsWith("is")) {
rawPropertyName.removePrefix("is")
} else {
rawPropertyName
}
val functionName = "with" + toPropertyNameCapitalized(propertyName)
return Name.identifier(functionName)
}
}
-1
View File
@@ -1,4 +1,3 @@
// IGNORE_BACKEND_FIR: JVM_IR
// ISSUE: KT-53451, KT-53370
// FILE: UserData.java