diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/symbolAnnotationsUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/symbolAnnotationsUtils.kt index 2dcff1ff6fa..b84224c4f7c 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/symbolAnnotationsUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/annotations/symbolAnnotationsUtils.kt @@ -24,7 +24,10 @@ import org.jetbrains.kotlin.name.JvmNames.JVM_SYNTHETIC_ANNOTATION_CLASS_ID import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.resolve.deprecation.DeprecationLevelValue -internal fun AnnotationUseSiteTarget?.toFilterWithAdditionalNull(): AnnotationUseSiteTargetFilter { +/** + * @return [AnnotationUseSiteTargetFilter] which allows [this] and [NoAnnotationUseSiteTargetFilter] filter + */ +internal fun AnnotationUseSiteTarget?.toOptionalFilter(): AnnotationUseSiteTargetFilter { if (this == null) return NoAnnotationUseSiteTargetFilter return annotationUseSiteTargetFilterOf(NoAnnotationUseSiteTargetFilter, toFilter()) diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt index d4e021309b6..b4032aad5ea 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/SymbolLightClassForFacade.kt @@ -71,7 +71,7 @@ class SymbolLightClassForFacade( annotationsProvider = SymbolAnnotationsProvider( ktModule = this.ktModule, annotatedSymbolPointer = firstFileInFacade.symbolPointerOfType(), - annotationUseSiteTargetFilter = AnnotationUseSiteTarget.FILE.toFilterWithAdditionalNull(), + annotationUseSiteTargetFilter = AnnotationUseSiteTarget.FILE.toOptionalFilter(), ) ) }, diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt index f0b3b8ce925..cfb457e5fb0 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/classes/symbolLightClassUtils.kt @@ -309,7 +309,7 @@ internal fun SymbolLightClassBase.createPropertyAccessors( if (this !is SymbolLightClassForFacade && propertyTypeIsValueClass) return fun KtPropertyAccessorSymbol.needToCreateAccessor(siteTarget: AnnotationUseSiteTarget): Boolean { - val useSiteTargetFilterForPropertyAccessor = siteTarget.toFilterWithAdditionalNull() + val useSiteTargetFilterForPropertyAccessor = siteTarget.toOptionalFilter() if (onlyJvmStatic && !hasJvmStaticAnnotation(useSiteTargetFilterForPropertyAccessor) && !declaration.hasJvmStaticAnnotation(useSiteTargetFilterForPropertyAccessor) @@ -404,7 +404,7 @@ private fun hasBackingField(property: KtPropertySymbol): Boolean { val fieldUseSite = AnnotationUseSiteTarget.FIELD if (property.modality == Modality.ABSTRACT || - property.isHiddenOrSynthetic(fieldUseSite, fieldUseSite.toFilterWithAdditionalNull()) + property.isHiddenOrSynthetic(fieldUseSite, fieldUseSite.toOptionalFilter()) ) return false return hasBackingFieldByPsi ?: property.hasBackingField diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt index d96f7b4fc6d..31b85e447da 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/fields/SymbolLightFieldForProperty.kt @@ -87,7 +87,7 @@ internal class SymbolLightFieldForProperty private constructor( private val _isDeprecated: Boolean by lazyPub { withPropertySymbol { propertySymbol -> - propertySymbol.hasDeprecatedAnnotation(AnnotationUseSiteTarget.FIELD.toFilterWithAdditionalNull()) + propertySymbol.hasDeprecatedAnnotation(AnnotationUseSiteTarget.FIELD.toOptionalFilter()) } } @@ -125,7 +125,7 @@ internal class SymbolLightFieldForProperty private constructor( PsiModifier.VOLATILE -> withPropertySymbol { propertySymbol -> val hasAnnotation = propertySymbol.hasAnnotation( VOLATILE_ANNOTATION_CLASS_ID, - AnnotationUseSiteTarget.FIELD.toFilterWithAdditionalNull(), + AnnotationUseSiteTarget.FIELD.toOptionalFilter(), ) mapOf(modifier to hasAnnotation) @@ -134,7 +134,7 @@ internal class SymbolLightFieldForProperty private constructor( PsiModifier.TRANSIENT -> withPropertySymbol { propertySymbol -> val hasAnnotation = propertySymbol.hasAnnotation( TRANSIENT_ANNOTATION_CLASS_ID, - AnnotationUseSiteTarget.FIELD.toFilterWithAdditionalNull(), + AnnotationUseSiteTarget.FIELD.toOptionalFilter(), ) mapOf(modifier to hasAnnotation) @@ -157,7 +157,7 @@ internal class SymbolLightFieldForProperty private constructor( annotationsProvider = SymbolAnnotationsProvider( ktModule = ktModule, annotatedSymbolPointer = propertySymbolPointer, - annotationUseSiteTargetFilter = AnnotationUseSiteTarget.FIELD.toFilterWithAdditionalNull(), + annotationUseSiteTargetFilter = AnnotationUseSiteTarget.FIELD.toOptionalFilter(), ), additionalAnnotationsProvider = NullabilityAnnotationsProvider { withPropertySymbol { propertySymbol -> diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt index afd8d4e349f..6056c9f84b7 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightAccessorMethod.kt @@ -91,7 +91,7 @@ internal class SymbolLightAccessorMethod private constructor( private val _name: String by lazyPub { analyzeForLightClasses(ktModule) { - propertyAccessorSymbol().getJvmNameFromAnnotation(accessorSite.toFilterWithAdditionalNull()) ?: run { + propertyAccessorSymbol().getJvmNameFromAnnotation(accessorSite.toOptionalFilter()) ?: run { val symbol = propertySymbol() val defaultName = symbol.name.identifier.let { if (this@SymbolLightAccessorMethod.containingClass.isAnnotationType) it else it.abiName() @@ -136,7 +136,7 @@ internal class SymbolLightAccessorMethod private constructor( builder, this@SymbolLightAccessorMethod, containingClass, - accessorSite.toFilterWithAdditionalNull(), + accessorSite.toOptionalFilter(), ) } } @@ -178,7 +178,7 @@ internal class SymbolLightAccessorMethod private constructor( return@analyzeForLightClasses true } - val filter = accessorSite.toFilterWithAdditionalNull() + val filter = accessorSite.toOptionalFilter() propertySymbol.hasJvmStaticAnnotation(filter) || propertyAccessorSymbol().hasJvmStaticAnnotation(filter) } @@ -191,7 +191,7 @@ internal class SymbolLightAccessorMethod private constructor( SymbolAnnotationsProvider( ktModule = ktModule, annotatedSymbolPointer = propertyAccessorSymbolPointer, - annotationUseSiteTargetFilter = accessorSite.toFilterWithAdditionalNull(), + annotationUseSiteTargetFilter = accessorSite.toOptionalFilter(), ), SymbolAnnotationsProvider( ktModule = ktModule, @@ -222,7 +222,7 @@ internal class SymbolLightAccessorMethod private constructor( private val _isDeprecated: Boolean by lazyPub { analyzeForLightClasses(ktModule) { - val filter = accessorSite.toFilterWithAdditionalNull() + val filter = accessorSite.toOptionalFilter() propertySymbol().hasDeprecatedAnnotation(filter) || propertyAccessorSymbol().hasDeprecatedAnnotation(filter) } } diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethodBase.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethodBase.kt index 8f5c33470af..01c858a50f7 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethodBase.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/methods/SymbolLightMethodBase.kt @@ -29,7 +29,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.light.classes.symbol.SymbolLightMemberBase import org.jetbrains.kotlin.light.classes.symbol.annotations.getJvmNameFromAnnotation import org.jetbrains.kotlin.light.classes.symbol.annotations.hasPublishedApiAnnotation -import org.jetbrains.kotlin.light.classes.symbol.annotations.toFilterWithAdditionalNull +import org.jetbrains.kotlin.light.classes.symbol.annotations.toOptionalFilter import org.jetbrains.kotlin.light.classes.symbol.classes.SymbolLightClassBase internal abstract class SymbolLightMethodBase( @@ -109,7 +109,7 @@ internal abstract class SymbolLightMethodBase( containingClass: SymbolLightClassBase, annotationUseSiteTarget: AnnotationUseSiteTarget? = null, ): String where T : KtAnnotatedSymbol, T : KtSymbolWithVisibility, T : KtCallableSymbol { - getJvmNameFromAnnotation(annotationUseSiteTarget.toFilterWithAdditionalNull())?.let { return it } + getJvmNameFromAnnotation(annotationUseSiteTarget.toOptionalFilter())?.let { return it } if (visibility != Visibilities.Internal) return defaultName if (containingClass is KtLightClassForFacade) return defaultName diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameter.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameter.kt index 157120d8c68..4f7e979cc6b 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameter.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameter.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.light.classes.symbol.annotations.GranularAnnotationsBox import org.jetbrains.kotlin.light.classes.symbol.annotations.NullabilityAnnotationsProvider import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolAnnotationsProvider -import org.jetbrains.kotlin.light.classes.symbol.annotations.toFilterWithAdditionalNull +import org.jetbrains.kotlin.light.classes.symbol.annotations.toOptionalFilter import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList import org.jetbrains.kotlin.light.classes.symbol.withSymbol @@ -37,7 +37,7 @@ internal class SymbolLightParameter( annotatedSymbolPointer = parameterSymbolPointer, annotationUseSiteTargetFilter = isConstructorParameterSymbol.ifTrue { AnnotationUseSiteTarget.CONSTRUCTOR_PARAMETER - }.toFilterWithAdditionalNull(), + }.toOptionalFilter(), ), additionalAnnotationsProvider = NullabilityAnnotationsProvider(::nullabilityType), ), diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterForReceiver.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterForReceiver.kt index 77af86dad98..360f6d37df1 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterForReceiver.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightParameterForReceiver.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.light.classes.symbol.* import org.jetbrains.kotlin.light.classes.symbol.annotations.GranularAnnotationsBox import org.jetbrains.kotlin.light.classes.symbol.annotations.NullabilityAnnotationsProvider import org.jetbrains.kotlin.light.classes.symbol.annotations.SymbolAnnotationsProvider -import org.jetbrains.kotlin.light.classes.symbol.annotations.toFilterWithAdditionalNull +import org.jetbrains.kotlin.light.classes.symbol.annotations.toOptionalFilter import org.jetbrains.kotlin.light.classes.symbol.methods.SymbolLightMethodBase import org.jetbrains.kotlin.light.classes.symbol.modifierLists.SymbolLightClassModifierList import org.jetbrains.kotlin.psi.KtParameter @@ -72,7 +72,7 @@ internal class SymbolLightParameterForReceiver private constructor( annotationsProvider = SymbolAnnotationsProvider( ktModule = ktModule, annotatedSymbolPointer = receiverPointer, - annotationUseSiteTargetFilter = AnnotationUseSiteTarget.RECEIVER.toFilterWithAdditionalNull(), + annotationUseSiteTargetFilter = AnnotationUseSiteTarget.RECEIVER.toOptionalFilter(), ), additionalAnnotationsProvider = NullabilityAnnotationsProvider { withReceiverSymbol { receiver -> diff --git a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightSetterParameter.kt b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightSetterParameter.kt index fee86c948af..d9bce8cab73 100644 --- a/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightSetterParameter.kt +++ b/analysis/symbol-light-classes/src/org/jetbrains/kotlin/light/classes/symbol/parameters/SymbolLightSetterParameter.kt @@ -46,7 +46,7 @@ internal class SymbolLightSetterParameter( SymbolAnnotationsProvider( ktModule = ktModule, annotatedSymbolPointer = parameterSymbolPointer, - annotationUseSiteTargetFilter = AnnotationUseSiteTarget.SETTER_PARAMETER.toFilterWithAdditionalNull(), + annotationUseSiteTargetFilter = AnnotationUseSiteTarget.SETTER_PARAMETER.toOptionalFilter(), ), SymbolAnnotationsProvider( ktModule = ktModule,