From 4c15edec5ce3c976f2d5870cec85f7645180faab Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 24 Oct 2014 21:46:41 +0200 Subject: [PATCH 1/2] Cleanup (formatting) --- .../modules/decompiler/ExprProcessor.java | 25 +++++++++---------- .../decompiler/exps/InvocationExprent.java | 12 +++++---- 2 files changed, 19 insertions(+), 18 deletions(-) diff --git a/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/ExprProcessor.java b/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/ExprProcessor.java index 6bf80725bf88..edccefe2405e 100644 --- a/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/ExprProcessor.java +++ b/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/ExprProcessor.java @@ -855,8 +855,12 @@ public class ExprProcessor implements CodeConstants { return defaultval; } - public static boolean getCastedExprent(Exprent exprent, VarType leftType, TextBuffer buffer, int indent, - boolean castNull, BytecodeMappingTracer tracer) { + public static boolean getCastedExprent(Exprent exprent, + VarType leftType, + TextBuffer buffer, + int indent, + boolean castNull, + BytecodeMappingTracer tracer) { return getCastedExprent(exprent, leftType, buffer, indent, castNull, false, tracer); } @@ -865,7 +869,8 @@ public class ExprProcessor implements CodeConstants { TextBuffer buffer, int indent, boolean castNull, - boolean castAlways, BytecodeMappingTracer tracer) { + boolean castAlways, + BytecodeMappingTracer tracer) { boolean ret = false; VarType rightType = exprent.getExprType(); @@ -873,16 +878,10 @@ public class ExprProcessor implements CodeConstants { TextBuffer res = exprent.toJava(indent, tracer); boolean cast = - !leftType.isSuperset(rightType) && (rightType.equals(VarType.VARTYPE_OBJECT) || leftType.type != CodeConstants.TYPE_OBJECT); - cast |= castAlways; - - if (!cast && castNull && rightType.type == CodeConstants.TYPE_NULL) { - // check for a nameless anonymous class - cast = !UNDEFINED_TYPE_STRING.equals(getTypeName(leftType)); - } - if (!cast) { - cast = isIntConstant(exprent) && VarType.VARTYPE_INT.isStrictSuperset(leftType); - } + castAlways || + (!leftType.isSuperset(rightType) && (rightType.equals(VarType.VARTYPE_OBJECT) || leftType.type != CodeConstants.TYPE_OBJECT)) || + (castNull && rightType.type == CodeConstants.TYPE_NULL && !UNDEFINED_TYPE_STRING.equals(getTypeName(leftType))) || + (isIntConstant(exprent) && VarType.VARTYPE_INT.isStrictSuperset(leftType)); if (cast) { if (exprent.getPrecedence() >= FunctionExprent.getPrecedence(FunctionExprent.FUNCTION_CAST)) { diff --git a/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/exps/InvocationExprent.java b/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/exps/InvocationExprent.java index 57711eee2bd0..b80b745c04e2 100644 --- a/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/exps/InvocationExprent.java +++ b/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/exps/InvocationExprent.java @@ -357,21 +357,23 @@ public class InvocationExprent extends Exprent { Set setAmbiguousParameters = getAmbiguousParameters(); - boolean firstpar = true; + boolean firstParameter = true; int start = isEnum ? 2 : 0; for (int i = start; i < lstParameters.size(); i++) { if (sigFields == null || sigFields.get(i) == null) { - if (!firstpar) { + if (!firstParameter) { buf.append(", "); } TextBuffer buff = new TextBuffer(); - ExprProcessor.getCastedExprent(lstParameters.get(i), descriptor.params[i], buff, indent, true, setAmbiguousParameters.contains(i), tracer); - + boolean ambiguous = setAmbiguousParameters.contains(i); + ExprProcessor.getCastedExprent(lstParameters.get(i), descriptor.params[i], buff, indent, true, ambiguous, tracer); buf.append(buff); - firstpar = false; + + firstParameter = false; } } + buf.append(")"); return buf; From 19a15f5573c650d59f2efb5bb13145258ff8b355 Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Fri, 24 Oct 2014 21:49:02 +0200 Subject: [PATCH 2/2] Cleanup (unneeded variable) --- .../java/decompiler/modules/decompiler/ExprProcessor.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/ExprProcessor.java b/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/ExprProcessor.java index edccefe2405e..16ef95b38a3c 100644 --- a/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/ExprProcessor.java +++ b/plugins/java-decompiler/engine/src/org/jetbrains/java/decompiler/modules/decompiler/ExprProcessor.java @@ -872,7 +872,6 @@ public class ExprProcessor implements CodeConstants { boolean castAlways, BytecodeMappingTracer tracer) { - boolean ret = false; VarType rightType = exprent.getExprType(); TextBuffer res = exprent.toJava(indent, tracer); @@ -889,12 +888,11 @@ public class ExprProcessor implements CodeConstants { } res.prepend("(" + getCastTypeName(leftType) + ")"); - ret = true; } buffer.append(res); - return ret; + return cast; } private static boolean isIntConstant(Exprent exprent) {