From 4498347c2d50e96290b002f6593ae55d26dd4398 Mon Sep 17 00:00:00 2001 From: Sergei Kozelko Date: Wed, 11 Aug 2021 19:06:49 +0300 Subject: [PATCH] Make faster duplicate keys checking --- src/commonMain/kotlin/com/charleskorn/kaml/YamlNode.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/commonMain/kotlin/com/charleskorn/kaml/YamlNode.kt b/src/commonMain/kotlin/com/charleskorn/kaml/YamlNode.kt index 71ac20e4..1a29be92 100644 --- a/src/commonMain/kotlin/com/charleskorn/kaml/YamlNode.kt +++ b/src/commonMain/kotlin/com/charleskorn/kaml/YamlNode.kt @@ -154,12 +154,15 @@ public data class YamlMap(val entries: Map, override val p } } - keys.forEachIndexed { index, key -> - val duplicate = keys.subList(0, index).firstOrNull { it.equivalentContentTo(key) } + val encounteredKeys = mutableMapOf() + keys.forEach { key -> + val duplicate = encounteredKeys[key.content] if (duplicate != null) { throw DuplicateKeyException(duplicate.path, key.path, key.contentToString()) } + + encounteredKeys[key.content] = key } }