From de3af6151b09c0c762d195ff6efe4aad9409cd04 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Mon, 2 Dec 2013 19:12:53 +0400 Subject: [PATCH] Proper assertion message --- .../lang/resolve/calls/model/ResolvedCallImpl.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/model/ResolvedCallImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/model/ResolvedCallImpl.java index 35bb2b4334a..0ace0e0f2b6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/model/ResolvedCallImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/model/ResolvedCallImpl.java @@ -238,14 +238,20 @@ public class ResolvedCallImpl implements ResolvedC } for (Map.Entry entry : valueArguments.entrySet()) { - if (arguments.set(entry.getKey().getIndex(), entry.getValue()) != null) { - throw new IllegalStateException(); + ValueParameterDescriptor parameterDescriptor = entry.getKey(); + 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) { - throw new IllegalStateException(); + throw new IllegalStateException("No argument for " + getCandidateDescriptor().getValueParameters().get(i)); } }