From 71cb5e07db7a2fb8b59c0727c1fef15462f14552 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Wed, 9 Oct 2019 17:16:37 +0300 Subject: [PATCH] Minor, don't recreate `Set` with the same values --- .../kotlin/asJava/duplicateJvmSignatureUtil.kt | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/duplicateJvmSignatureUtil.kt b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/duplicateJvmSignatureUtil.kt index f8278f4938e..43e58fb29f5 100644 --- a/compiler/light-classes/src/org/jetbrains/kotlin/asJava/duplicateJvmSignatureUtil.kt +++ b/compiler/light-classes/src/org/jetbrains/kotlin/asJava/duplicateJvmSignatureUtil.kt @@ -18,14 +18,11 @@ package org.jetbrains.kotlin.asJava import com.intellij.psi.PsiElement import com.intellij.psi.search.GlobalSearchScope -import com.intellij.psi.util.CachedValuesManager import org.jetbrains.kotlin.asJava.builder.InvalidLightClassDataHolder import org.jetbrains.kotlin.asJava.builder.LightClassDataProviderForFileFacade -import org.jetbrains.kotlin.asJava.classes.KtLightClassForFacade import org.jetbrains.kotlin.asJava.classes.KtLightClassForSourceDeclaration import org.jetbrains.kotlin.asJava.classes.getOutermostClassOrObject import org.jetbrains.kotlin.diagnostics.Diagnostic -import org.jetbrains.kotlin.diagnostics.DiagnosticFactory import org.jetbrains.kotlin.diagnostics.DiagnosticFactory.cast import org.jetbrains.kotlin.diagnostics.Errors.* import org.jetbrains.kotlin.fileClasses.JvmFileClassUtil @@ -99,16 +96,20 @@ fun getJvmSignatureDiagnostics(element: PsiElement, otherDiagnostics: Diagnostic } class FilteredJvmDiagnostics(val jvmDiagnostics: Diagnostics, val otherDiagnostics: Diagnostics) : Diagnostics by jvmDiagnostics { + companion object { + private val higherPriorityDiagnosticFactories = + setOf(CONFLICTING_OVERLOADS, REDECLARATION, NOTHING_TO_OVERRIDE, MANY_IMPL_MEMBER_NOT_IMPLEMENTED) + + private val jvmDiagnosticFactories = + setOf(CONFLICTING_JVM_DECLARATIONS, ACCIDENTAL_OVERRIDE, CONFLICTING_INHERITED_JVM_DECLARATIONS) + } private fun alreadyReported(psiElement: PsiElement): Boolean { - val higherPriority = setOf>( - CONFLICTING_OVERLOADS, REDECLARATION, NOTHING_TO_OVERRIDE, MANY_IMPL_MEMBER_NOT_IMPLEMENTED) - return otherDiagnostics.forElement(psiElement).any { it.factory in higherPriority } + return otherDiagnostics.forElement(psiElement).any { it.factory in higherPriorityDiagnosticFactories } || psiElement is KtPropertyAccessor && alreadyReported(psiElement.parent) } override fun forElement(psiElement: PsiElement): Collection { - val jvmDiagnosticFactories = setOf(CONFLICTING_JVM_DECLARATIONS, ACCIDENTAL_OVERRIDE, CONFLICTING_INHERITED_JVM_DECLARATIONS) fun Diagnostic.data() = cast(this, jvmDiagnosticFactories).a val (conflicting, other) = jvmDiagnostics.forElement(psiElement).partition { it.factory in jvmDiagnosticFactories } if (alreadyReported(psiElement)) {