Added workaround for the problem that IDEA doesn't allow keywords in cls annotations.

This commit is contained in:
Evgeny Gerashchenko
2015-01-30 17:36:12 +03:00
parent c1b6e3a63d
commit a492e248fe
3 changed files with 20 additions and 0 deletions
@@ -123,6 +123,12 @@ public class UnusedSymbolInspection : AbstractKotlinInspection() {
}
private fun isEntryPoint(declaration: JetNamedDeclaration): Boolean {
// TODO Workaround for EA-64030 - IOE: PsiJavaParserFacadeImpl.createAnnotationFromText
// This should be fixed on IDEA side: ClsAnnotation should not throw exceptions when annotation class has Java keyword
if (declaration is JetNamedFunction) {
if (declaration.getAnnotationEntries().any { it.getTypeReference().getText().endsWith("native") }) return false
}
val lightElement: PsiElement? = when (declaration) {
is JetClassOrObject -> declaration.toLightClass()
is JetNamedFunction -> LightClassUtil.getLightClassMethod(declaration)
@@ -51,4 +51,13 @@
<problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Unused Symbol</problem_class>
<description>Function 'unused' is never used</description>
</problem>
<problem>
<file>withNativeAnnotation.kt</file>
<line>3</line>
<module>light_idea_test_case</module>
<entry_point TYPE="file" FQNAME="temp:///src/withNativeAnnotation.kt" />
<problem_class severity="WARNING" attribute_key="NOT_USED_ELEMENT_ATTRIBUTES">Unused Symbol</problem_class>
<description>Function 'withNativeAnnotation' is never used</description>
</problem>
</problems>
@@ -0,0 +1,5 @@
annotation class native
native fun withNativeAnnotation() {
}