Skip to content

Commit b199ffc

Browse files
author
emmanue1
committed
Fix syntax errors in decompiled sources
1 parent a58e6d6 commit b199ffc

File tree

2 files changed

+6
-31
lines changed

2 files changed

+6
-31
lines changed

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

Lines changed: 3 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,9 @@ protected AbstractLocalVariable searchLocalVariable(int index, int offset) {
333333
}
334334

335335
public boolean isCompatible(AbstractLocalVariable lv, Type valueType) {
336-
if (valueType.isObject() && (lv.getType().getDimension() == valueType.getDimension())) {
336+
if (valueType == ObjectType.TYPE_UNDEFINED_OBJECT) {
337+
return true;
338+
} else if (valueType.isObject() && (lv.getType().getDimension() == valueType.getDimension())) {
337339
ObjectType valueObjectType = (ObjectType) valueType;
338340

339341
if (lv.getType().isObject()) {
@@ -389,33 +391,6 @@ public AbstractLocalVariable getLocalVariableInAssignment(Map<String, BaseType>
389391
return lv;
390392
}
391393

392-
public AbstractLocalVariable getLocalVariableInCastAssignment(Map<String, BaseType> typeBounds, int index, int offset, Type castType, Type valueType) {
393-
AbstractLocalVariable lv = searchLocalVariable(index, offset);
394-
395-
if (lv == null) {
396-
// Create a new local variable
397-
createLocalVariableVisitor.init(index, offset);
398-
valueType.accept(createLocalVariableVisitor);
399-
lv = createLocalVariableVisitor.getLocalVariable();
400-
} else if (lv.isAssignableFrom(typeBounds, castType) || isCompatible(lv, castType)) {
401-
// Assignable, reduce type
402-
lv.typeOnRight(typeBounds, castType);
403-
} else if (lv.isAssignableFrom(typeBounds, valueType) || isCompatible(lv, valueType)) {
404-
// Assignable, reduce type
405-
lv.typeOnRight(typeBounds, valueType);
406-
} else if (!lv.getType().isGeneric() || (ObjectType.TYPE_OBJECT != valueType)) {
407-
// Not assignable -> Create a new local variable
408-
createLocalVariableVisitor.init(index, offset);
409-
valueType.accept(createLocalVariableVisitor);
410-
lv = createLocalVariableVisitor.getLocalVariable();
411-
}
412-
413-
lv.setToOffset(offset);
414-
store(lv);
415-
416-
return lv;
417-
}
418-
419394
public AbstractLocalVariable getLocalVariableInNullAssignment(int index, int offset, Type valueType) {
420395
AbstractLocalVariable lv = searchLocalVariable(index, offset);
421396

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838

3939
import java.util.*;
4040

41-
import static org.jd.core.v1.model.javasyntax.type.ObjectType.TYPE_OBJECT;
41+
import static org.jd.core.v1.model.javasyntax.type.ObjectType.TYPE_UNDEFINED_OBJECT;
4242
import static org.jd.core.v1.model.javasyntax.type.PrimitiveType.*;
4343
import static org.jd.core.v1.service.converter.classfiletojavasyntax.model.cfg.BasicBlock.*;
4444

@@ -907,10 +907,10 @@ protected TernaryOperatorExpression newTernaryOperatorExpression(int lineNumber,
907907
} else if (typeMaker.isAssignable(typeBounds, ot2, ot1)) {
908908
type = getTernaryOperatorExpressionType(ot2, ot1);
909909
} else {
910-
type = TYPE_OBJECT;
910+
type = TYPE_UNDEFINED_OBJECT;
911911
}
912912
} else {
913-
type = TYPE_OBJECT;
913+
type = TYPE_UNDEFINED_OBJECT;
914914
}
915915

916916
return new TernaryOperatorExpression(lineNumber, type, condition, expressionTrue, expressionFalse);

0 commit comments

Comments
 (0)