From ebfb1ec79247070a07f099065abb70ca95c9f905 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Fri, 27 Apr 2012 19:31:04 +0400 Subject: [PATCH] KT-1558 Exception while analyzing KT-1558 Fixed --- .../ValueArgumentsToParametersMapper.java | 33 +------------------ .../tests/substitutions/kt1558-short.jet | 5 +++ 2 files changed, 6 insertions(+), 32 deletions(-) create mode 100644 compiler/testData/diagnostics/tests/substitutions/kt1558-short.jet diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java index 138183a1b8f..769d11f2881 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java @@ -26,7 +26,6 @@ import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.TemporaryBindingTrace; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; -import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -80,9 +79,7 @@ import static org.jetbrains.jet.lang.resolve.calls.ValueArgumentsToParametersMap D candidate = candidateCall.getCandidateDescriptor(); - D base = getDescriptorForValueArgumentsResolving(candidate); - - List valueParameters = base.getValueParameters(); + List valueParameters = candidate.getValueParameters(); Map parameterByName = Maps.newHashMap(); for (ValueParameterDescriptor valueParameter : valueParameters) { @@ -242,32 +239,4 @@ import static org.jetbrains.jet.lang.resolve.calls.ValueArgumentsToParametersMap } return error; } - - /** - * Descriptor used to resolve parameter names and default parameter values. - */ - @NotNull - private static D getDescriptorForValueArgumentsResolving(D descriptor) { - Set allBases = new HashSet(); - getAllDescriptorsForValueArgumentsResolving(descriptor, allBases); - - if (allBases.size() == 1) { - return allBases.iterator().next(); - } - else { - // TODO remove parameter names and parameter default values - return descriptor; - } - } - - private static void getAllDescriptorsForValueArgumentsResolving(D descriptor, Set dest) { - if (descriptor.getOverriddenDescriptors().isEmpty()) { - dest.add(descriptor); - } - else { - for (CallableDescriptor overridden : descriptor.getOverriddenDescriptors()) { - getAllDescriptorsForValueArgumentsResolving((D) overridden, dest); - } - } - } } diff --git a/compiler/testData/diagnostics/tests/substitutions/kt1558-short.jet b/compiler/testData/diagnostics/tests/substitutions/kt1558-short.jet new file mode 100644 index 00000000000..047b53e0877 --- /dev/null +++ b/compiler/testData/diagnostics/tests/substitutions/kt1558-short.jet @@ -0,0 +1,5 @@ +import java.util.List + +fun testArrays(ci : List) { + ci.toArray(x) +} \ No newline at end of file