Fix completion order & presentation wrt to DeprecatedSinceKotlin

This commit is contained in:
Mikhail Zarechenskiy
2020-06-19 02:18:14 +03:00
parent bcaa635a4e
commit beca7fca30
6 changed files with 56 additions and 15 deletions
@@ -108,19 +108,6 @@ internal sealed class DeprecatedByAnnotation(
}
return StandardDeprecated(deprecatedAnnotation, target, propagatesToOverrides)
}
private fun computeLevelForDeprecatedSinceKotlin(annotation: AnnotationDescriptor, apiVersion: ApiVersion): DeprecationLevelValue? {
val hiddenSince = annotation.getSinceVersion("hiddenSince")
if (hiddenSince != null && apiVersion >= hiddenSince) return HIDDEN
val errorSince = annotation.getSinceVersion("errorSince")
if (errorSince != null && apiVersion >= errorSince) return ERROR
val warningSince = annotation.getSinceVersion("warningSince")
if (warningSince != null && apiVersion >= warningSince) return WARNING
return null
}
}
}
@@ -26,6 +26,19 @@ fun Deprecation.deprecatedByAnnotationReplaceWithExpression(): String? = (this a
fun AnnotationDescriptor.getSinceVersion(name: String): ApiVersion? =
argumentValue(name)?.safeAs<StringValue>()?.value?.takeUnless(String::isEmpty)?.let(ApiVersion.Companion::parse)
fun computeLevelForDeprecatedSinceKotlin(annotation: AnnotationDescriptor, apiVersion: ApiVersion): DeprecationLevelValue? {
val hiddenSince = annotation.getSinceVersion("hiddenSince")
if (hiddenSince != null && apiVersion >= hiddenSince) return HIDDEN
val errorSince = annotation.getSinceVersion("errorSince")
if (errorSince != null && apiVersion >= errorSince) return ERROR
val warningSince = annotation.getSinceVersion("warningSince")
if (warningSince != null && apiVersion >= warningSince) return WARNING
return null
}
internal fun createDeprecationDiagnostic(
element: PsiElement, deprecation: Deprecation, languageVersionSettings: LanguageVersionSettings
): Diagnostic {