Proper assertion message

This commit is contained in:
Andrey Breslav
2013-12-02 19:12:53 +04:00
parent 1e2eb6dfa1
commit de3af6151b
@@ -238,14 +238,20 @@ public class ResolvedCallImpl<D extends CallableDescriptor> implements ResolvedC
} }
for (Map.Entry<ValueParameterDescriptor, ResolvedValueArgument> entry : valueArguments.entrySet()) { for (Map.Entry<ValueParameterDescriptor, ResolvedValueArgument> entry : valueArguments.entrySet()) {
if (arguments.set(entry.getKey().getIndex(), entry.getValue()) != null) { ValueParameterDescriptor parameterDescriptor = entry.getKey();
throw new IllegalStateException(); ResolvedValueArgument value = entry.getValue();
ResolvedValueArgument oldValue = arguments.set(parameterDescriptor.getIndex(), value);
if (oldValue != null) {
throw new IllegalStateException("Argument set twice for " + parameterDescriptor + "\n" +
"old value: " + oldValue + "\n" +
"new value: " + value);
} }
} }
for (Object o : arguments) { for (int i = 0; i < arguments.size(); i++) {
Object o = arguments.get(i);
if (o == null) { if (o == null) {
throw new IllegalStateException(); throw new IllegalStateException("No argument for " + getCandidateDescriptor().getValueParameters().get(i));
} }
} }