diff --git a/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/SlicedMapImpl.java b/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/SlicedMapImpl.java index 7b519ab6d13..cd68fa34f60 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/SlicedMapImpl.java +++ b/compiler/frontend/src/org/jetbrains/kotlin/util/slicedMap/SlicedMapImpl.java @@ -26,6 +26,7 @@ import kotlin.Function3; import org.jetbrains.annotations.NotNull; import java.util.Collection; +import java.util.Collections; import java.util.Map; public class SlicedMapImpl implements MutableSlicedMap { @@ -35,7 +36,7 @@ public class SlicedMapImpl implements MutableSlicedMap { } private final Map map = new THashMap(0); - private final Multimap, Object> collectiveSliceKeys = ArrayListMultimap.create(); + private Multimap, Object> collectiveSliceKeys = null; @Override public void put(WritableSlice slice, K key, V value) { @@ -63,6 +64,10 @@ public class SlicedMapImpl implements MutableSlicedMap { } if (slice.isCollective()) { + if (collectiveSliceKeys == null) { + collectiveSliceKeys = ArrayListMultimap.create(); + } + collectiveSliceKeys.put(slice, key); } @@ -88,6 +93,8 @@ public class SlicedMapImpl implements MutableSlicedMap { @SuppressWarnings("unchecked") public Collection getKeys(WritableSlice slice) { assert slice.isCollective() : "Keys are not collected for slice " + slice; + + if (collectiveSliceKeys == null) return Collections.emptyList(); return (Collection) collectiveSliceKeys.get(slice); }