diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt index f4ed45af85a..69a032b4c6a 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/lazy/context.kt @@ -173,10 +173,7 @@ private fun LazyJavaResolverContext.extractDefaultNullabilityQualifier( } val nullabilityQualifier = - components - .signatureEnhancement - .extractNullability(typeQualifier, onlyForJspecify = false) - ?.copy(isForWarningOnly = jsr305State.isWarning) + components.signatureEnhancement.extractNullability(typeQualifier)?.copy(isForWarningOnly = jsr305State.isWarning) ?: return null return JavaDefaultQualifiers(nullabilityQualifier, applicability) diff --git a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt index 70d2647afb5..5be3f2d4b27 100644 --- a/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt +++ b/core/descriptors.jvm/src/org/jetbrains/kotlin/load/java/typeEnhancement/signatureEnhancement.kt @@ -65,11 +65,8 @@ class SignatureEnhancement( } } - fun extractNullability( - annotationDescriptor: AnnotationDescriptor, - onlyForJspecify: Boolean - ): NullabilityQualifierWithMigrationStatus? { - extractNullabilityFromKnownAnnotations(annotationDescriptor, onlyForJspecify)?.let { return it } + fun extractNullability(annotationDescriptor: AnnotationDescriptor): NullabilityQualifierWithMigrationStatus? { + extractNullabilityFromKnownAnnotations(annotationDescriptor)?.let { return it } val typeQualifierAnnotation = annotationTypeQualifierResolver.resolveTypeQualifierAnnotation(annotationDescriptor) @@ -78,28 +75,25 @@ class SignatureEnhancement( val jsr305State = annotationTypeQualifierResolver.resolveJsr305AnnotationState(annotationDescriptor) if (jsr305State.isIgnore) return null - return extractNullabilityFromKnownAnnotations( - typeQualifierAnnotation, onlyForJspecify - )?.copy(isForWarningOnly = jsr305State.isWarning) + return extractNullabilityFromKnownAnnotations(typeQualifierAnnotation)?.copy(isForWarningOnly = jsr305State.isWarning) } private fun extractNullabilityFromKnownAnnotations( - annotationDescriptor: AnnotationDescriptor, - onlyForJspecify: Boolean + annotationDescriptor: AnnotationDescriptor ): NullabilityQualifierWithMigrationStatus? { val annotationFqName = annotationDescriptor.fqName ?: return null val migrationStatus = jspecifyMigrationStatus(annotationFqName) - ?: (if (!onlyForJspecify) commonMigrationStatus(annotationFqName, annotationDescriptor) else null) + ?: commonMigrationStatus(annotationFqName, annotationDescriptor) ?: return null return if (!migrationStatus.isForWarningOnly && annotationDescriptor is PossiblyExternalAnnotationDescriptor && annotationDescriptor.isIdeExternalAnnotation - ) + ) { migrationStatus.copy(isForWarningOnly = true) - else migrationStatus + } else migrationStatus } private fun jspecifyMigrationStatus( @@ -251,15 +245,12 @@ class SignatureEnhancement( } } - private fun ValueParameterDescriptor.hasDefaultValueInAnnotation(type: KotlinType): Boolean { - val defaultValue = getDefaultValueFromAnnotation() - - return when (defaultValue) { + private fun ValueParameterDescriptor.hasDefaultValueInAnnotation(type: KotlinType) = + when (val defaultValue = getDefaultValueFromAnnotation()) { is StringDefaultValue -> type.lexicalCastFrom(defaultValue.value) != null NullDefaultValue -> TypeUtils.acceptsNullable(type) null -> declaresDefaultValue() } && overriddenDescriptors.isEmpty() - } private inner class SignatureParts( private val typeContainer: Annotated?, @@ -438,7 +429,7 @@ class SignatureEnhancement( } private fun Annotations.extractNullability(): NullabilityQualifierWithMigrationStatus? = - this.firstNotNullResult { extractNullability(it, onlyForJspecify = typeParameterBounds) } + this.firstNotNullResult { extractNullability(it) } private fun computeIndexedQualifiersForOverride(): (Int) -> JavaTypeQualifiers {