Minor, add assertion messages, fix warnings

This commit is contained in:
Alexander Udalov
2014-03-17 17:58:39 +04:00
parent 338bc2f9ec
commit 7d6423fcf1
6 changed files with 20 additions and 19 deletions
@@ -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<StackValue, StackValue> 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<StackValue, StackValue> 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<StackValue, StackValue> implem
) {
List<ResolvedValueArgument> 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<StackValue, StackValue> implem
return false;
}
public int pushMethodArguments(@NotNull ResolvedCall resolvedCall, List<Type> valueParameterTypes, @NotNull CallGenerator callGenerator) {
public int pushMethodArguments(@NotNull ResolvedCall<?> resolvedCall, List<Type> valueParameterTypes, @NotNull CallGenerator callGenerator) {
return pushMethodArguments(resolvedCall, valueParameterTypes, false, callGenerator);
}
private int pushMethodArguments(@NotNull ResolvedCall resolvedCall, List<Type> valueParameterTypes, boolean skipLast, @NotNull CallGenerator callGenerator) {
@SuppressWarnings("unchecked")
private int pushMethodArguments(@NotNull ResolvedCall<?> resolvedCall, List<Type> valueParameterTypes, boolean skipLast, @NotNull CallGenerator callGenerator) {
List<ResolvedValueArgument> 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<ValueParameterDescriptor> 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<StackValue, StackValue> implem
private static boolean hasDefaultArguments(@NotNull ResolvedCall<?> resolvedCall) {
List<ResolvedValueArgument> 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<StackValue, StackValue> 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) {
@@ -66,12 +66,12 @@ public class TailRecursionCodegen {
public void generateTailRecursion(ResolvedCall<? extends CallableDescriptor> 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<ResolvedValueArgument> 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) {
@@ -422,7 +422,7 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
}
List<ResolvedValueArgument> 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());
@@ -100,10 +100,11 @@ public class ArrayAccessTranslator extends AbstractTranslator implements AccessT
List<ResolvedValueArgument> 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;
@@ -160,7 +160,7 @@ public class CallArgumentTranslator extends AbstractTranslator {
List<JsExpression> result = new ArrayList<JsExpression>(valueParameters.size());
List<ResolvedValueArgument> 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<JsExpression> argsBeforeVararg = null;
for (ValueParameterDescriptor parameterDescriptor : valueParameters) {
@@ -148,7 +148,7 @@ public final class InlinedCallExpressionTranslator extends AbstractCallExpressio
private TemporaryVariable createAliasForArgument(@NotNull ValueParameterDescriptor parameterDescriptor) {
List<ResolvedValueArgument> 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);