From 74deb587343c963bbcc23caa6efc592c9af67eab Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 3 Jun 2014 19:57:44 +0400 Subject: [PATCH] Filtering duplicate diagnostics for trait implementations --- .../org/jetbrains/jet/asJava/duplicateJvmSignatureUtil.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/duplicateJvmSignatureUtil.kt b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/duplicateJvmSignatureUtil.kt index b385a337d94..882fd14c1d3 100644 --- a/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/duplicateJvmSignatureUtil.kt +++ b/compiler/jet.as.java.psi/src/org/jetbrains/jet/asJava/duplicateJvmSignatureUtil.kt @@ -63,7 +63,7 @@ public fun getJvmSignatureDiagnostics(element: PsiElement): Diagnostics? { val filtered = arrayListOf() conflicting.groupBy { - CONFLICTING_JVM_DECLARATIONS.cast(it).getA().signature + CONFLICTING_JVM_DECLARATIONS.cast(it).getA().signature.name }.forEach { val diagnostics = it.getValue() if (diagnostics.size <= 1) { @@ -89,7 +89,11 @@ public fun getJvmSignatureDiagnostics(element: PsiElement): Diagnostics? { } private fun ConflictingJvmDeclarationsData.higherThan(other: ConflictingJvmDeclarationsData): Boolean { - return this.classOrigin.originKind == PACKAGE_FACADE && other.classOrigin.originKind == PACKAGE_PART + return when (other.classOrigin.originKind) { + PACKAGE_PART -> this.classOrigin.originKind == PACKAGE_FACADE + TRAIT_IMPL -> this.classOrigin.originKind != TRAIT_IMPL + else -> false + } } private fun getDiagnosticsForPackage(file: JetFile): Diagnostics? {