Bugs 111 und 114 gefixt. Unboxing wird aufgerufen wenn es noetig ist

This commit is contained in:
Fayez Abu Alia 2018-10-11 14:17:54 +02:00
parent 54b4ad97f6
commit f325b04ee2

View File

@ -282,7 +282,6 @@ public class BytecodeGenMethod implements StatementVisitor {
default: default:
break; break;
} }
} }
private String getLargerType(String lexpType, String rexpType) { private String getLargerType(String lexpType, String rexpType) {
@ -782,7 +781,7 @@ public class BytecodeGenMethod implements StatementVisitor {
doUnboxing(getResolvedType(methodCall.getType())); doUnboxing(getResolvedType(methodCall.getType()));
} }
if(methodRefl == null && !isReturnStmt) { if(methodRefl == null/* && !isReturnStmt*/) {
if(isBinaryExp) if(isBinaryExp)
doUnboxing(getResolvedType(methodCall.getType())); doUnboxing(getResolvedType(methodCall.getType()));
} }
@ -1081,7 +1080,11 @@ public class BytecodeGenMethod implements StatementVisitor {
break; break;
case "java/lang/Integer": case "java/lang/Integer":
// zweite Argument isLong // zweite Argument isLong
visitIntegerLiteral(((Double) value).intValue(), false); // visitIntegerLiteral(((Double) value).intValue(), false);
if(value instanceof Double)
visitIntegerLiteral(((Double) value).intValue(), false);
if(value instanceof Integer)
visitIntegerLiteral(((Integer) value).intValue(), false);
break; break;
case "java/lang/Long": case "java/lang/Long":
visitLongLiteral(((Double) value).longValue(), true); visitLongLiteral(((Double) value).longValue(), true);