diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index a1bdf47ef3a..859aba83cdb 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -47,7 +47,6 @@ import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils; import org.jetbrains.jet.lang.evaluate.EvaluatePackage; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.calls.model.*; import org.jetbrains.jet.lang.resolve.calls.util.CallMaker; @@ -1356,7 +1355,7 @@ public class ExpressionCodegen extends JetVisitor implem //noinspection SuspiciousMethodCalls CallableMethod superCallable = typeMapper.mapToCallableMethod(superConstructor); Type[] argumentTypes = superCallable.getAsmMethod().getArgumentTypes(); - ResolvedCall resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, superCall.getCalleeExpression()); + ResolvedCall resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, superCall.getCalleeExpression()); assert resolvedCall != null; pushMethodArguments(resolvedCall, Arrays.asList(argumentTypes), defaulCallGenerator); } @@ -1734,7 +1733,6 @@ public class ExpressionCodegen extends JetVisitor implem if (descriptor instanceof ValueParameterDescriptor && descriptor.getContainingDeclaration() instanceof ScriptDescriptor) { ScriptDescriptor scriptDescriptor = (ScriptDescriptor) descriptor.getContainingDeclaration(); - assert scriptDescriptor != null; Type scriptClassType = asmTypeForScriptDescriptor(bindingContext, scriptDescriptor); ValueParameterDescriptor valueParameterDescriptor = (ValueParameterDescriptor) descriptor; ClassDescriptor scriptClass = bindingContext.get(CLASS_FOR_SCRIPT, scriptDescriptor); @@ -1931,7 +1929,7 @@ public class ExpressionCodegen extends JetVisitor implem ) { List arguments = resolvedCall.getValueArgumentsByIndex(); if (arguments == null) { - throw new IllegalStateException("Failed to arrange value arguments by index"); + throw new IllegalStateException("Failed to arrange value arguments by index: " + resolvedCall.getResultingDescriptor()); } ResolvedValueArgument argument = arguments.get(0); if (!(argument instanceof ExpressionValueArgument)) { @@ -2320,21 +2318,20 @@ public class ExpressionCodegen extends JetVisitor implem return false; } - public int pushMethodArguments(@NotNull ResolvedCall resolvedCall, List valueParameterTypes, @NotNull CallGenerator callGenerator) { + public int pushMethodArguments(@NotNull ResolvedCall resolvedCall, List valueParameterTypes, @NotNull CallGenerator callGenerator) { return pushMethodArguments(resolvedCall, valueParameterTypes, false, callGenerator); } - private int pushMethodArguments(@NotNull ResolvedCall resolvedCall, List valueParameterTypes, boolean skipLast, @NotNull CallGenerator callGenerator) { - @SuppressWarnings("unchecked") + private int pushMethodArguments(@NotNull ResolvedCall resolvedCall, List valueParameterTypes, boolean skipLast, @NotNull CallGenerator callGenerator) { List valueArguments = resolvedCall.getValueArgumentsByIndex(); - if (valueArguments == null) { - throw new IllegalStateException("Failed to arrange value arguments by index"); - } CallableDescriptor fd = resolvedCall.getResultingDescriptor(); + if (valueArguments == null) { + throw new IllegalStateException("Failed to arrange value arguments by index: " + fd); + } List valueParameters = fd.getValueParameters(); if (valueParameters.size() != valueArguments.size()) { - throw new IllegalStateException(); + throw new IllegalStateException("Parameters and arguments size mismatch: " + valueParameters.size() + " != " + valueArguments.size()); } int mask = 0; @@ -2374,6 +2371,9 @@ public class ExpressionCodegen extends JetVisitor implem private static boolean hasDefaultArguments(@NotNull ResolvedCall resolvedCall) { List valueArguments = resolvedCall.getValueArgumentsByIndex(); CallableDescriptor fd = resolvedCall.getResultingDescriptor(); + if (valueArguments == null) { + throw new IllegalStateException("Failed to arrange value arguments by index: " + resolvedCall.getResultingDescriptor()); + } for (ValueParameterDescriptor valueParameter : fd.getValueParameters()) { ResolvedValueArgument resolvedValueArgument = valueArguments.get(valueParameter.getIndex()); @@ -2835,7 +2835,7 @@ public class ExpressionCodegen extends JetVisitor implem private boolean isIntZero(JetExpression expr, Type exprType) { CompileTimeConstant exprValue = getCompileTimeConstant(expr, bindingContext); - return isIntPrimitive(exprType) && exprValue != null && exprValue.getValue().equals(0); + return isIntPrimitive(exprType) && exprValue != null && Integer.valueOf(0).equals(exprValue.getValue()); } private StackValue genCmpWithZero(JetExpression exp, Type expType, IElementType opToken) { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/TailRecursionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/TailRecursionCodegen.java index 04622c65ce3..ab550bd161f 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/TailRecursionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/TailRecursionCodegen.java @@ -66,12 +66,12 @@ public class TailRecursionCodegen { public void generateTailRecursion(ResolvedCall resolvedCall) { CallableDescriptor fd = resolvedCall.getResultingDescriptor(); - assert fd instanceof FunctionDescriptor : "the resolved call is not refer to the function descriptor so why do we use generateTailRecursion for something strange?"; + assert fd instanceof FunctionDescriptor : "Resolved call doesn't refer to the function descriptor: " + fd; CallableMethod callable = (CallableMethod) codegen.resolveToCallable((FunctionDescriptor) fd, false); List arguments = resolvedCall.getValueArgumentsByIndex(); if (arguments == null) { - throw new IllegalStateException("Failed to arrange value arguments by index"); + throw new IllegalStateException("Failed to arrange value arguments by index: " + fd); } assignParameterValues(fd, callable, arguments); if (callable.getReceiverClass() != null) { diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenAnnotatingVisitor.java b/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenAnnotatingVisitor.java index 31de763b7a9..abd43a47162 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenAnnotatingVisitor.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/binding/CodegenAnnotatingVisitor.java @@ -422,7 +422,7 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid { } List valueArguments = call.getValueArgumentsByIndex(); if (valueArguments == null) { - throw new IllegalStateException("Failed to arrange value arguments by index"); + throw new IllegalStateException("Failed to arrange value arguments by index: " + descriptor); } for (ValueParameterDescriptor valueParameter : original.getValueParameters()) { JavaClassDescriptor samInterface = getInterfaceIfSamType(valueParameter.getType()); diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/reference/ArrayAccessTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/reference/ArrayAccessTranslator.java index e3efc51902e..d9acb7b9326 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/reference/ArrayAccessTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/reference/ArrayAccessTranslator.java @@ -100,10 +100,11 @@ public class ArrayAccessTranslator extends AbstractTranslator implements AccessT List arguments = resolvedCall.getValueArgumentsByIndex(); if (arguments == null) { - throw new IllegalStateException("Failed to arrange value arguments by index"); + throw new IllegalStateException("Failed to arrange value arguments by index: " + resolvedCall.getResultingDescriptor()); } ResolvedValueArgument lastArgument = arguments.get(arguments.size() - 1); - assert lastArgument instanceof ExpressionValueArgument: "Last argument of array-like setter must be ExpressionValueArgument"; + assert lastArgument instanceof ExpressionValueArgument: + "Last argument of array-like setter must be ExpressionValueArgument: " + lastArgument; ValueArgument valueArgument = ((ExpressionValueArgument) lastArgument).getValueArgument(); assert valueArgument != null; diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/reference/CallArgumentTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/reference/CallArgumentTranslator.java index 089bbc72e88..263a91bbd45 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/reference/CallArgumentTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/reference/CallArgumentTranslator.java @@ -160,7 +160,7 @@ public class CallArgumentTranslator extends AbstractTranslator { List result = new ArrayList(valueParameters.size()); List valueArgumentsByIndex = resolvedCall.getValueArgumentsByIndex(); if (valueArgumentsByIndex == null) { - throw new IllegalStateException("Failed to arrange value arguments by index"); + throw new IllegalStateException("Failed to arrange value arguments by index: " + resolvedCall.getResultingDescriptor()); } List argsBeforeVararg = null; for (ValueParameterDescriptor parameterDescriptor : valueParameters) { diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/reference/InlinedCallExpressionTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/reference/InlinedCallExpressionTranslator.java index da86aac51ec..6d6c64da76a 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/reference/InlinedCallExpressionTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/reference/InlinedCallExpressionTranslator.java @@ -148,7 +148,7 @@ public final class InlinedCallExpressionTranslator extends AbstractCallExpressio private TemporaryVariable createAliasForArgument(@NotNull ValueParameterDescriptor parameterDescriptor) { List actualArguments = resolvedCall.getValueArgumentsByIndex(); if (actualArguments == null) { - throw new IllegalStateException("Failed to arrange value arguments by index"); + throw new IllegalStateException("Failed to arrange value arguments by index: " + resolvedCall.getResultingDescriptor()); } ResolvedValueArgument actualArgument = actualArguments.get(parameterDescriptor.getIndex()); JsExpression translatedArgument = translateArgument(actualArgument);