[Lombok] Support RawTypes in fields wtih @Singular in K2 version

^KT-53657 Fixed
This commit is contained in:
Dmitriy Novozhilov
2022-09-09 12:57:32 +03:00
committed by teamcity
parent 06119a4670
commit a78d43c1ec
7 changed files with 68 additions and 6 deletions
@@ -186,9 +186,11 @@ class BuilderGenerator(session: FirSession) : FirDeclarationGenerationExtension(
val addMultipleParameterType: FirTypeRef
val valueParameters: List<ConeLombokValueParameter>
val fallbackParameterType = DummyJavaClassType.ObjectType.takeIf { javaClassifierType.isRaw }
when (typeName) {
in LombokNames.SUPPORTED_COLLECTIONS -> {
val parameterType = javaClassifierType.parameterType(0) ?: return
val parameterType = javaClassifierType.parameterType(0) ?: fallbackParameterType ?: return
valueParameters = listOf(
ConeLombokValueParameter(nameInSingularForm, parameterType.toRef())
)
@@ -204,8 +206,8 @@ class BuilderGenerator(session: FirSession) : FirDeclarationGenerationExtension(
}
in LombokNames.SUPPORTED_MAPS -> {
val keyType = javaClassifierType.parameterType(0) ?: return
val valueType = javaClassifierType.parameterType(1) ?: return
val keyType = javaClassifierType.parameterType(0) ?: fallbackParameterType ?: return
val valueType = javaClassifierType.parameterType(1) ?: fallbackParameterType ?: return
valueParameters = listOf(
ConeLombokValueParameter(Name.identifier("key"), keyType.toRef()),
ConeLombokValueParameter(Name.identifier("value"), valueType.toRef()),
@@ -217,9 +219,9 @@ class BuilderGenerator(session: FirSession) : FirDeclarationGenerationExtension(
}
in LombokNames.SUPPORTED_TABLES -> {
val rowKeyType = javaClassifierType.parameterType(0) ?: return
val columnKeyType = javaClassifierType.parameterType(1) ?: return
val valueType = javaClassifierType.parameterType(2) ?: return
val rowKeyType = javaClassifierType.parameterType(0) ?: fallbackParameterType ?: return
val columnKeyType = javaClassifierType.parameterType(1) ?: fallbackParameterType ?: return
val valueType = javaClassifierType.parameterType(2) ?: fallbackParameterType ?: return
valueParameters = listOf(
ConeLombokValueParameter(Name.identifier("rowKey"), rowKeyType.toRef()),
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
object JavaClasses {
val Object = DummyJavaClass("Object", javaLangName("Object"), numberOfTypeParameters = 0)
val Iterable = DummyJavaClass("Iterable", javaLangName("Iterable"), numberOfTypeParameters = 1)
val Collection = DummyJavaClass("Collection", javaUtilName("Collection"), numberOfTypeParameters = 1)
val Map = DummyJavaClass("Map", javaUtilName("Map"), numberOfTypeParameters = 2)
@@ -90,6 +90,10 @@ class DummyJavaClassType(
override val classifier: JavaClass,
override val typeArguments: List<JavaType?>
) : JavaClassifierType {
companion object {
val ObjectType = DummyJavaClassType(JavaClasses.Object, typeArguments = emptyList())
}
override val annotations: Collection<JavaAnnotation>
get() = emptyList()
override val isDeprecatedInJavaDoc: Boolean