Get rid of LinkedHashSet in some places in favor of ArrayList

This commit is contained in:
Alexander Udalov
2015-08-06 04:39:20 +03:00
parent f3857cbb89
commit dce99e2fef
2 changed files with 16 additions and 17 deletions
@@ -23,7 +23,10 @@ import org.jetbrains.kotlin.descriptors.annotations.Annotations;
import org.jetbrains.kotlin.name.Name; import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.types.TypeSubstitutor; import org.jetbrains.kotlin.types.TypeSubstitutor;
import java.util.*; import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
public abstract class PropertyAccessorDescriptorImpl extends DeclarationDescriptorNonRootImpl implements PropertyAccessorDescriptor { public abstract class PropertyAccessorDescriptorImpl extends DeclarationDescriptorNonRootImpl implements PropertyAccessorDescriptor {
@@ -140,16 +143,14 @@ public abstract class PropertyAccessorDescriptorImpl extends DeclarationDescript
@NotNull @NotNull
protected Collection<PropertyAccessorDescriptor> getOverriddenDescriptors(boolean isGetter) { protected Collection<PropertyAccessorDescriptor> getOverriddenDescriptors(boolean isGetter) {
Collection<? extends PropertyDescriptor> overriddenProperties = getCorrespondingProperty().getOverriddenDescriptors(); Collection<PropertyAccessorDescriptor> result = new ArrayList<PropertyAccessorDescriptor>(0);
// LinkedHashSet for determinism for (PropertyDescriptor overriddenProperty : getCorrespondingProperty().getOverriddenDescriptors()) {
Set<PropertyAccessorDescriptor> overriddenAccessors = new LinkedHashSet<PropertyAccessorDescriptor>();
for (PropertyDescriptor overriddenProperty : overriddenProperties) {
PropertyAccessorDescriptor accessorDescriptor = isGetter ? overriddenProperty.getGetter() : overriddenProperty.getSetter(); PropertyAccessorDescriptor accessorDescriptor = isGetter ? overriddenProperty.getGetter() : overriddenProperty.getSetter();
if (accessorDescriptor != null) { if (accessorDescriptor != null) {
overriddenAccessors.add(accessorDescriptor); result.add(accessorDescriptor);
} }
} }
return overriddenAccessors; return result;
} }
@Override @Override
@@ -28,7 +28,6 @@ import org.jetbrains.kotlin.types.JetType;
import org.jetbrains.kotlin.types.TypeSubstitutor; import org.jetbrains.kotlin.types.TypeSubstitutor;
import java.util.Collection; import java.util.Collection;
import java.util.Collections;
public class ValueParameterDescriptorImpl extends VariableDescriptorImpl implements ValueParameterDescriptor { public class ValueParameterDescriptorImpl extends VariableDescriptorImpl implements ValueParameterDescriptor {
private final boolean declaresDefaultValue; private final boolean declaresDefaultValue;
@@ -123,14 +122,13 @@ public class ValueParameterDescriptorImpl extends VariableDescriptorImpl impleme
@NotNull @NotNull
@Override @Override
public Collection<? extends ValueParameterDescriptor> getOverriddenDescriptors() { public Collection<? extends ValueParameterDescriptor> getOverriddenDescriptors() {
Collection<? extends CallableDescriptor> overriddenFunctions = getContainingDeclaration().getOverriddenDescriptors(); return KotlinPackage.map(
if (overriddenFunctions.isEmpty()) return Collections.emptySet(); getContainingDeclaration().getOverriddenDescriptors(),
new Function1<CallableDescriptor, ValueParameterDescriptor>() {
return KotlinPackage.toSet(KotlinPackage.map(overriddenFunctions, new Function1<CallableDescriptor, ValueParameterDescriptor>() { @Override
@Override public ValueParameterDescriptor invoke(CallableDescriptor descriptor) {
public ValueParameterDescriptor invoke(CallableDescriptor descriptor) { return descriptor.getValueParameters().get(getIndex());
return descriptor.getValueParameters().get(getIndex()); }
} });
}));
} }
} }