From b4ee116de78a3f0f6f81061a528945239d8b8b0c Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Thu, 3 Jun 2021 16:24:12 +0300 Subject: [PATCH] Experimental checkers: simplify visiting code a bit --- .../checkers/ExperimentalMarkerDeclarationAnnotationChecker.kt | 3 +-- .../kotlin/resolve/checkers/ExperimentalUsageChecker.kt | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalMarkerDeclarationAnnotationChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalMarkerDeclarationAnnotationChecker.kt index 4dd6766a943..ddc506caa73 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalMarkerDeclarationAnnotationChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalMarkerDeclarationAnnotationChecker.kt @@ -95,8 +95,7 @@ class ExperimentalMarkerDeclarationAnnotationChecker(private val module: ModuleD experimentalFqName: FqName, visited: MutableSet = mutableSetOf() ): Boolean { - if (this in visited) return false - visited += this + if (!visited.add(this)) return false for (overridden in overriddenDescriptors) { if (overridden.annotations.any { it.fqName == experimentalFqName }) { return true diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt index 3d60f904c96..e6cf338644b 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/checkers/ExperimentalUsageChecker.kt @@ -175,8 +175,7 @@ class ExperimentalUsageChecker(project: Project) : CallChecker { languageVersionSettings: LanguageVersionSettings, visited: MutableSet = mutableSetOf() ): Set { - if (this in visited) return emptySet() - visited += this + if (!visited.add(this)) return emptySet() val result = SmartSet.create() if (this is CallableMemberDescriptor && kind == CallableMemberDescriptor.Kind.FAKE_OVERRIDE) { for (overridden in overriddenDescriptors) {