Use kotlin.Metadata instead of old annotations in IDE, reflection and tests

This commit is contained in:
Alexander Udalov
2016-01-26 17:20:25 +03:00
parent 7da981e12c
commit ba80e8ba81
6 changed files with 59 additions and 48 deletions
@@ -94,12 +94,7 @@ class AllClassesCompletion(private val parameters: CompletionParameters,
private fun PsiClass.isSyntheticKotlinClass(): Boolean {
if ('$' !in name!!) return false // optimization to not analyze annotations of all classes
val metadata = modifierList?.findAnnotation(JvmAnnotationNames.METADATA.asString())
if (metadata != null &&
(metadata.findAttributeValue(JvmAnnotationNames.KIND_FIELD_NAME) as? PsiLiteral)?.value ==
KotlinClassHeader.Kind.SYNTHETIC_CLASS.id) {
return true
}
return modifierList?.findAnnotation(JvmAnnotationNames.KOTLIN_SYNTHETIC_CLASS.asString()) != null
return (metadata?.findAttributeValue(JvmAnnotationNames.KIND_FIELD_NAME) as? PsiLiteral)?.value ==
KotlinClassHeader.Kind.SYNTHETIC_CLASS.id
}
}