From 1ec41b16f609a15dc66e13c381aa4ac0ef74d07c Mon Sep 17 00:00:00 2001 From: Błażej Kardyś Date: Fri, 20 Mar 2020 16:59:05 +0100 Subject: Restoring filtered out expected values --- .../documentables/DocumentableVisibilityFilter.kt | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'plugins/base') diff --git a/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt b/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt index 76276f39..150df302 100644 --- a/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt +++ b/plugins/base/src/main/kotlin/transformers/documentables/DocumentableVisibilityFilter.kt @@ -79,27 +79,27 @@ internal object DocumentableVisibilityFilter : PreMergeDocumentableTransformer { private fun alwaysTrue(a: T, p: PlatformData) = true private fun alwaysFalse(a: T, p: PlatformData) = false + private fun WithVisibility.visibilityForPlatform(data: PlatformData): Visibility? = + visibility[data] ?: visibility.expect + private fun T.filterPlatforms( additionalCondition: (T, PlatformData) -> Boolean = ::alwaysTrue, - optionalCondition: (T, PlatformData) -> Boolean = ::alwaysFalse + alternativeCondition: (T, PlatformData) -> Boolean = ::alwaysFalse ) where T : Documentable, T : WithVisibility = - visibility.mapNotNull { (platformData, visibility) -> - platformData.takeIf { d -> - (visibility.isAllowedInPackage(dri.packageName) || optionalCondition( - this, - d - )) && additionalCondition(this, d) - } + platformData.filter { d -> + visibilityForPlatform(d)?.isAllowedInPackage(dri.packageName) == true && + additionalCondition(this, d) || + alternativeCondition(this, d) } private fun List.transform( additionalCondition: (T, PlatformData) -> Boolean = ::alwaysTrue, - optionalCondition: (T, PlatformData) -> Boolean = ::alwaysFalse, + alternativeCondition: (T, PlatformData) -> Boolean = ::alwaysFalse, recreate: (T, List) -> T ): Pair> where T : Documentable, T : WithVisibility { var changed = false val values = mapNotNull { t -> - val filteredPlatforms = t.filterPlatforms(additionalCondition, optionalCondition) + val filteredPlatforms = t.filterPlatforms(additionalCondition, alternativeCondition) when (filteredPlatforms.size) { t.visibility.size -> t 0 -> { @@ -140,8 +140,8 @@ internal object DocumentableVisibilityFilter : PreMergeDocumentableTransformer { } private fun hasVisibleAccessorsForPlatform(property: DProperty, data: PlatformData) = - property.getter?.visibility?.get(data)?.isAllowedInPackage(property.dri.packageName) == true || - property.setter?.visibility?.get(data)?.isAllowedInPackage(property.dri.packageName) == true + property.getter?.visibilityForPlatform(data)?.isAllowedInPackage(property.dri.packageName) == true || + property.setter?.visibilityForPlatform(data)?.isAllowedInPackage(property.dri.packageName) == true private fun filterProperties( properties: List, -- cgit