[lombok] Generate no-arg static factory method
This commit is contained in:
committed by
TeamCityServer
parent
37926f333e
commit
59f936fdef
+3
-3
@@ -78,7 +78,7 @@ class LazyJavaClassMemberScope(
|
||||
addAll(declaredMemberIndex().getMethodNames())
|
||||
addAll(declaredMemberIndex().getRecordComponentNames())
|
||||
addAll(computeClassNames(kindFilter, nameFilter))
|
||||
addAll(c.components.syntheticPartsProvider.getSyntheticFunctionNames(ownerDescriptor))
|
||||
addAll(c.components.syntheticPartsProvider.getMethodNames(ownerDescriptor))
|
||||
}
|
||||
|
||||
internal val constructors = c.storageManager.createLazyValue {
|
||||
@@ -99,7 +99,7 @@ class LazyJavaClassMemberScope(
|
||||
}
|
||||
}
|
||||
|
||||
c.components.syntheticPartsProvider.generateSyntheticConstructors(ownerDescriptor, result)
|
||||
c.components.syntheticPartsProvider.generateConstructors(ownerDescriptor, result)
|
||||
|
||||
c.components.signatureEnhancement.enhanceSignatures(
|
||||
c,
|
||||
@@ -500,7 +500,7 @@ class LazyJavaClassMemberScope(
|
||||
result.add(resolveRecordComponentToFunctionDescriptor(declaredMemberIndex().findRecordComponentByName(name)!!))
|
||||
}
|
||||
|
||||
c.components.syntheticPartsProvider.generateSyntheticMethods(ownerDescriptor, name, result)
|
||||
c.components.syntheticPartsProvider.generateMethods(ownerDescriptor, name, result)
|
||||
}
|
||||
|
||||
private fun resolveRecordComponentToFunctionDescriptor(recordComponent: JavaRecordComponent): JavaMethodDescriptor {
|
||||
|
||||
+5
@@ -48,6 +48,7 @@ class LazyJavaStaticClassScope(
|
||||
if (jClass.isEnum) {
|
||||
addAll(listOf(StandardNames.ENUM_VALUE_OF, StandardNames.ENUM_VALUES))
|
||||
}
|
||||
addAll(c.components.syntheticPartsProvider.getStaticFunctionNames(ownerDescriptor))
|
||||
}
|
||||
|
||||
override fun computePropertyNames(kindFilter: DescriptorKindFilter, nameFilter: ((Name) -> Boolean)?) =
|
||||
@@ -81,6 +82,10 @@ class LazyJavaStaticClassScope(
|
||||
}
|
||||
}
|
||||
|
||||
override fun computeImplicitlyDeclaredFunctions(result: MutableCollection<SimpleFunctionDescriptor>, name: Name) {
|
||||
c.components.syntheticPartsProvider.generateStaticFunctions(ownerDescriptor, name, result)
|
||||
}
|
||||
|
||||
override fun computeNonDeclaredProperties(name: Name, result: MutableCollection<PropertyDescriptor>) {
|
||||
val propertiesFromSupertypes = flatMapJavaStaticSupertypesScopes(ownerDescriptor, mutableSetOf()) {
|
||||
it.getContributedVariables(name, NoLookupLocation.WHEN_GET_SUPER_MEMBERS)
|
||||
|
||||
+24
-9
@@ -16,31 +16,46 @@ interface SyntheticJavaPartsProvider {
|
||||
val EMPTY = CompositeSyntheticJavaPartsProvider(emptyList())
|
||||
}
|
||||
|
||||
fun getSyntheticFunctionNames(thisDescriptor: ClassDescriptor): List<Name>
|
||||
fun getMethodNames(thisDescriptor: ClassDescriptor): List<Name>
|
||||
|
||||
fun generateSyntheticMethods(
|
||||
fun generateMethods(
|
||||
thisDescriptor: ClassDescriptor,
|
||||
name: Name,
|
||||
result: MutableCollection<SimpleFunctionDescriptor>
|
||||
)
|
||||
|
||||
fun generateSyntheticConstructors(thisDescriptor: ClassDescriptor, result: MutableList<ClassConstructorDescriptor>)
|
||||
fun getStaticFunctionNames(thisDescriptor: ClassDescriptor): List<Name>
|
||||
|
||||
fun generateStaticFunctions(
|
||||
thisDescriptor: ClassDescriptor,
|
||||
name: Name,
|
||||
result: MutableCollection<SimpleFunctionDescriptor>
|
||||
)
|
||||
|
||||
fun generateConstructors(thisDescriptor: ClassDescriptor, result: MutableList<ClassConstructorDescriptor>)
|
||||
|
||||
}
|
||||
|
||||
class CompositeSyntheticJavaPartsProvider(private val inner: List<SyntheticJavaPartsProvider>) : SyntheticJavaPartsProvider {
|
||||
override fun getSyntheticFunctionNames(thisDescriptor: ClassDescriptor): List<Name> =
|
||||
inner.flatMap { it.getSyntheticFunctionNames(thisDescriptor) }
|
||||
override fun getMethodNames(thisDescriptor: ClassDescriptor): List<Name> =
|
||||
inner.flatMap { it.getMethodNames(thisDescriptor) }
|
||||
|
||||
override fun generateSyntheticMethods(
|
||||
override fun generateMethods(
|
||||
thisDescriptor: ClassDescriptor,
|
||||
name: Name,
|
||||
result: MutableCollection<SimpleFunctionDescriptor>
|
||||
) {
|
||||
inner.forEach { it.generateSyntheticMethods(thisDescriptor, name, result) }
|
||||
inner.forEach { it.generateMethods(thisDescriptor, name, result) }
|
||||
}
|
||||
|
||||
override fun generateSyntheticConstructors(thisDescriptor: ClassDescriptor, result: MutableList<ClassConstructorDescriptor>) {
|
||||
inner.forEach { it.generateSyntheticConstructors(thisDescriptor, result) }
|
||||
override fun getStaticFunctionNames(thisDescriptor: ClassDescriptor): List<Name> =
|
||||
inner.flatMap { it.getStaticFunctionNames(thisDescriptor) }
|
||||
|
||||
override fun generateStaticFunctions(thisDescriptor: ClassDescriptor, name: Name, result: MutableCollection<SimpleFunctionDescriptor>) {
|
||||
inner.forEach { it.generateStaticFunctions(thisDescriptor, name, result) }
|
||||
}
|
||||
|
||||
override fun generateConstructors(thisDescriptor: ClassDescriptor, result: MutableList<ClassConstructorDescriptor>) {
|
||||
inner.forEach { it.generateConstructors(thisDescriptor, result) }
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user