Skip to content

Commit b4f3fca

Browse files
author
emmanue1
committed
Fix exceptions
1 parent 6470113 commit b4f3fca

File tree

3 files changed

+18
-10
lines changed

3 files changed

+18
-10
lines changed

src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/util/StatementMaker.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -982,10 +982,15 @@ protected void replacePreOperatorWithPostOperator(Statements statements) {
982982
String operator = poe.getOperator();
983983

984984
if ("++".equals(operator) || "--".equals(operator)) {
985-
ExpressionStatement cfes = (ExpressionStatement)statement;
986-
987-
// Replace pre-operator statement with post-operator statement
988-
cfes.setExpression(new PostOperatorExpression(poe.getLineNumber(), poe.getExpression(), operator));
985+
if (statement.isExpressionStatement()) {
986+
ExpressionStatement es = (ExpressionStatement) statement;
987+
// Replace pre-operator statement with post-operator statement
988+
es.setExpression(new PostOperatorExpression(poe.getLineNumber(), poe.getExpression(), operator));
989+
} else if (statement.isReturnExpressionStatement()) {
990+
ReturnExpressionStatement res = (ReturnExpressionStatement) statement;
991+
// Replace pre-operator statement with post-operator statement
992+
res.setExpression(new PostOperatorExpression(poe.getLineNumber(), poe.getExpression(), operator));
993+
}
989994
}
990995
}
991996
}

src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/visitor/PopulateBindingsWithTypeArgumentVisitor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public void visit(TypeArguments arguments) {
4242
Iterator<TypeArgument> typeArgumentIterator = arguments.iterator();
4343
Iterator<TypeArgument> typeGenericArgumentIterator = current.getTypeArgumentList().iterator();
4444

45-
while (typeArgumentIterator.hasNext()) {
45+
while (typeArgumentIterator.hasNext() && typeGenericArgumentIterator.hasNext()) {
4646
current = typeGenericArgumentIterator.next();
4747
typeArgumentIterator.next().accept(this);
4848
}

src/main/java/org/jd/core/v1/service/converter/classfiletojavasyntax/visitor/UpdateIntegerConstantTypeVisitor.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,14 @@ public void visit(BinaryOperatorExpression expression) {
106106
case "&":
107107
case "|":
108108
case "^":
109-
Type type = PrimitiveTypeUtil.getCommonPrimitiveType((PrimitiveType)leftType, (PrimitiveType)rightType);
110-
if (type == null) {
111-
type = TYPE_INT;
109+
if (leftType.isPrimitiveType() && rightType.isPrimitiveType()) {
110+
Type type = PrimitiveTypeUtil.getCommonPrimitiveType((PrimitiveType) leftType, (PrimitiveType) rightType);
111+
if (type == null) {
112+
type = TYPE_INT;
113+
}
114+
expression.setLeftExpression(updateExpression(type, left));
115+
expression.setRightExpression(updateExpression(type, right));
112116
}
113-
expression.setLeftExpression(updateExpression(type, left));
114-
expression.setRightExpression(updateExpression(type, right));
115117
break;
116118
case "=":
117119
left.accept(this);
@@ -126,6 +128,7 @@ public void visit(BinaryOperatorExpression expression) {
126128
if ((leftType.getDimension() == 0) && (rightType.getDimension() == 0)) {
127129
if (leftType.isPrimitiveType()) {
128130
if (rightType.isPrimitiveType()) {
131+
Type type;
129132
if (leftType == rightType) {
130133
type = leftType;
131134
} else {

0 commit comments

Comments
 (0)