[Lombok K2] Fix name convention for @With on boolean fields
^KT-53451 Fixed ^KT-53370
This commit is contained in:
+9
-1
@@ -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,4 +1,3 @@
|
||||
// IGNORE_BACKEND_FIR: JVM_IR
|
||||
// ISSUE: KT-53451, KT-53370
|
||||
|
||||
// FILE: UserData.java
|
||||
|
||||
Reference in New Issue
Block a user