Platform header IDE annotation: do not report suppressed error #KT-15601 Fixed
This commit is contained in:
+6
-1
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.idea.highlighter
|
|||||||
import com.intellij.lang.annotation.AnnotationHolder
|
import com.intellij.lang.annotation.AnnotationHolder
|
||||||
import com.intellij.lang.annotation.Annotator
|
import com.intellij.lang.annotation.Annotator
|
||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
|
import org.jetbrains.kotlin.caches.resolve.KotlinCacheService
|
||||||
import org.jetbrains.kotlin.descriptors.MemberDescriptor
|
import org.jetbrains.kotlin.descriptors.MemberDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
import org.jetbrains.kotlin.descriptors.ModuleDescriptor
|
||||||
import org.jetbrains.kotlin.descriptors.PlatformKind
|
import org.jetbrains.kotlin.descriptors.PlatformKind
|
||||||
@@ -67,6 +68,10 @@ class PlatformHeaderAnnotator : Annotator {
|
|||||||
checker.checkHeaderDeclarationHasImplementation(declaration, descriptor, diagnosticSink, checkImpl = false)
|
checker.checkHeaderDeclarationHasImplementation(declaration, descriptor, diagnosticSink, checkImpl = false)
|
||||||
}
|
}
|
||||||
|
|
||||||
return if (diagnosticList.isNotEmpty()) SimpleDiagnostics(diagnosticList) else Diagnostics.EMPTY
|
val suppressionCache = KotlinCacheService.getInstance(declaration.project).getSuppressionCache()
|
||||||
|
val filteredList = diagnosticList.filter {
|
||||||
|
!suppressionCache.isSuppressed(declaration, it.factory.name, it.severity)
|
||||||
|
}
|
||||||
|
return if (filteredList.isNotEmpty()) SimpleDiagnostics(filteredList) else Diagnostics.EMPTY
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
// See KT-15601
|
||||||
|
|
||||||
|
@Suppress("HEADER_WITHOUT_IMPLEMENTATION")
|
||||||
|
header interface Event
|
||||||
|
|
||||||
|
@Suppress("SOMETHING_WRONG")
|
||||||
|
header class <error descr="[HEADER_WITHOUT_IMPLEMENTATION] Header declaration 'Wrong' has no implementation in module for JVM">Wrong</error>
|
||||||
@@ -124,4 +124,16 @@ class MultiModuleHighlightingTest : AbstractMultiModuleHighlightingTest() {
|
|||||||
|
|
||||||
checkHighlightingInAllFiles()
|
checkHighlightingInAllFiles()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun testPlatformSuppress() {
|
||||||
|
val header = module("header")
|
||||||
|
header.setPlatformKind(TargetPlatformKind.Common)
|
||||||
|
|
||||||
|
val jvm = module("jvm")
|
||||||
|
jvm.setPlatformKind(TargetPlatformKind.Jvm.JVM_1_6)
|
||||||
|
jvm.enableMultiPlatform()
|
||||||
|
jvm.addDependency(header)
|
||||||
|
|
||||||
|
checkHighlightingInAllFiles()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user