[lombok] Introduce synthetic constructors generation

This commit is contained in:
Andrey Zinovyev
2021-03-26 10:52:52 +03:00
committed by TeamCityServer
parent e0216cc9f4
commit e9a33e0335
6 changed files with 39 additions and 7 deletions
@@ -99,6 +99,8 @@ class LazyJavaClassMemberScope(
}
}
c.components.syntheticPartsProvider.generateSyntheticConstructors(ownerDescriptor, result)
c.components.signatureEnhancement.enhanceSignatures(
c,
result.ifEmpty { listOfNotNull(createDefaultConstructor()) }
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.resolve.jvm
import org.jetbrains.kotlin.descriptors.ClassConstructorDescriptor
import org.jetbrains.kotlin.descriptors.ClassDescriptor
import org.jetbrains.kotlin.descriptors.SimpleFunctionDescriptor
import org.jetbrains.kotlin.name.Name
@@ -23,6 +24,8 @@ interface SyntheticJavaPartsProvider {
result: MutableCollection<SimpleFunctionDescriptor>
)
fun generateSyntheticConstructors(thisDescriptor: ClassDescriptor, result: MutableList<ClassConstructorDescriptor>)
}
class CompositeSyntheticJavaPartsProvider(private val inner: List<SyntheticJavaPartsProvider>) : SyntheticJavaPartsProvider {
@@ -33,5 +36,11 @@ class CompositeSyntheticJavaPartsProvider(private val inner: List<SyntheticJavaP
thisDescriptor: ClassDescriptor,
name: Name,
result: MutableCollection<SimpleFunctionDescriptor>
) = inner.forEach { it.generateSyntheticMethods(thisDescriptor, name, result) }
) {
inner.forEach { it.generateSyntheticMethods(thisDescriptor, name, result) }
}
override fun generateSyntheticConstructors(thisDescriptor: ClassDescriptor, result: MutableList<ClassConstructorDescriptor>) {
inner.forEach { it.generateSyntheticConstructors(thisDescriptor, result) }
}
}