From 0a9dbbea7992ea1ce13a01ae40cffb43f206df75 Mon Sep 17 00:00:00 2001 From: Svetlana Isakova Date: Wed, 12 Feb 2014 19:35:56 +0400 Subject: [PATCH] Remove duplicates from implicit receiver hierarchy while building tasks --- .../lang/resolve/calls/tasks/TaskPrioritizer.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/TaskPrioritizer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/TaskPrioritizer.java index a0ea7c6a766..82a32324b1f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/TaskPrioritizer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/tasks/TaskPrioritizer.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.lang.resolve.calls.tasks; import com.google.common.collect.Lists; +import com.google.common.collect.Sets; import com.intellij.openapi.progress.ProgressIndicatorProvider; import com.intellij.openapi.util.Pair; import org.jetbrains.annotations.NotNull; @@ -38,10 +39,7 @@ import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.PackageType; import org.jetbrains.jet.lang.types.checker.JetTypeChecker; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.List; +import java.util.*; import static org.jetbrains.jet.lang.resolve.calls.CallResolverUtil.isOrOverridesSynthesized; import static org.jetbrains.jet.lang.resolve.calls.tasks.ExplicitReceiverKind.*; @@ -119,7 +117,7 @@ public class TaskPrioritizer { addCandidatesForInvoke(receiver, c); return; } - List implicitReceivers = JetScopeUtils.getImplicitReceiversHierarchyValues(c.scope); + Collection implicitReceivers = Sets.newLinkedHashSet(JetScopeUtils.getImplicitReceiversHierarchyValues(c.scope)); if (receiver.exists()) { addCandidatesForExplicitReceiver(receiver, implicitReceivers, c, /*isExplicit=*/true); return; @@ -129,7 +127,7 @@ public class TaskPrioritizer { private static void addCandidatesForExplicitReceiver( @NotNull ReceiverValue explicitReceiver, - @NotNull List implicitReceivers, + @NotNull Collection implicitReceivers, @NotNull TaskPrioritizerContext c, boolean isExplicit ) { @@ -180,7 +178,7 @@ public class TaskPrioritizer { } private static void addCandidatesForNoReceiver( - @NotNull List implicitReceivers, + @NotNull Collection implicitReceivers, @NotNull TaskPrioritizerContext c ) { List>> localsList = Lists.newArrayList();