[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.symbols.impl.FirNamedFunctionSymbol
|
||||||
import org.jetbrains.kotlin.fir.toEffectiveVisibility
|
import org.jetbrains.kotlin.fir.toEffectiveVisibility
|
||||||
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
|
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.config.AccessLevel
|
||||||
import org.jetbrains.kotlin.lombok.k2.config.ConeLombokAnnotations.With
|
import org.jetbrains.kotlin.lombok.k2.config.ConeLombokAnnotations.With
|
||||||
import org.jetbrains.kotlin.lombok.k2.config.LombokService
|
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.lombok.utils.toPropertyNameCapitalized
|
||||||
import org.jetbrains.kotlin.name.CallableId
|
import org.jetbrains.kotlin.name.CallableId
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.types.typeUtil.isBoolean
|
||||||
|
|
||||||
class WithGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
|
class WithGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) {
|
||||||
private val lombokService: LombokService
|
private val lombokService: LombokService
|
||||||
@@ -98,7 +100,13 @@ class WithGenerator(session: FirSession) : FirDeclarationGenerationExtension(ses
|
|||||||
|
|
||||||
private fun computeWithName(field: FirJavaField, withInfo: With): Name? {
|
private fun computeWithName(field: FirJavaField, withInfo: With): Name? {
|
||||||
if (withInfo.visibility == AccessLevel.NONE) return null
|
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)
|
return Name.identifier(functionName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// ISSUE: KT-53451, KT-53370
|
// ISSUE: KT-53451, KT-53370
|
||||||
|
|
||||||
// FILE: UserData.java
|
// FILE: UserData.java
|
||||||
|
|||||||
Reference in New Issue
Block a user