Fix PsiInvalidElementAccessException in suppression check (EA-71132)

This commit is contained in:
Nikolay Krasko
2016-01-25 20:42:01 +03:00
parent e7685735bb
commit d5768dc4ff
@@ -69,7 +69,10 @@ abstract class KotlinSuppressCache {
private fun isSuppressed(request: SuppressRequest): Boolean { private fun isSuppressed(request: SuppressRequest): Boolean {
// If diagnostics are reported in a synthetic file generated by KtPsiFactory (dummy.kt), // If diagnostics are reported in a synthetic file generated by KtPsiFactory (dummy.kt),
// there's no point to present such diagnostics to the user, because the user didn't write this code // there's no point to present such diagnostics to the user, because the user didn't write this code
val file = request.element.containingFile val element = request.element
if (!element.isValid) return true
val file = element.containingFile
if (file is KtFile) { if (file is KtFile) {
if (file.doNotAnalyze != null) return true if (file.doNotAnalyze != null) return true
} }
@@ -80,7 +83,7 @@ abstract class KotlinSuppressCache {
} }
} }
val annotated = KtStubbedPsiUtil.getPsiOrStubParent(request.element, KtAnnotated::class.java, false) ?: return false val annotated = KtStubbedPsiUtil.getPsiOrStubParent(element, KtAnnotated::class.java, false) ?: return false
return isSuppressedByAnnotated(request.suppressKey, request.severity, annotated, 0) return isSuppressedByAnnotated(request.suppressKey, request.severity, annotated, 0)
} }