KT-1558 Exception while analyzing

KT-1558 Fixed
This commit is contained in:
Andrey Breslav
2012-04-27 19:31:04 +04:00
parent 5453598b2f
commit ebfb1ec792
2 changed files with 6 additions and 32 deletions
@@ -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<ValueParameterDescriptor> valueParameters = base.getValueParameters();
List<ValueParameterDescriptor> valueParameters = candidate.getValueParameters();
Map<String, ValueParameterDescriptor> 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 extends CallableDescriptor> D getDescriptorForValueArgumentsResolving(D descriptor) {
Set<D> allBases = new HashSet<D>();
getAllDescriptorsForValueArgumentsResolving(descriptor, allBases);
if (allBases.size() == 1) {
return allBases.iterator().next();
}
else {
// TODO remove parameter names and parameter default values
return descriptor;
}
}
private static <D extends CallableDescriptor> void getAllDescriptorsForValueArgumentsResolving(D descriptor, Set<D> dest) {
if (descriptor.getOverriddenDescriptors().isEmpty()) {
dest.add(descriptor);
}
else {
for (CallableDescriptor overridden : descriptor.getOverriddenDescriptors()) {
getAllDescriptorsForValueArgumentsResolving((D) overridden, dest);
}
}
}
}
@@ -0,0 +1,5 @@
import java.util.List
fun testArrays(ci : List<Int>) {
ci.toArray<Int>(<!UNRESOLVED_REFERENCE!>x<!>)
}