From bb2efb2f162701ac24f3534a43d53b560f3f8c7a Mon Sep 17 00:00:00 2001 From: UniquePassive Date: Tue, 17 Oct 2017 17:48:16 +0200 Subject: [PATCH] Output ints rather than chars for numbers in ternary operators --- .../decompiler/exps/FunctionExprent.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/org/jetbrains/java/decompiler/modules/decompiler/exps/FunctionExprent.java b/src/org/jetbrains/java/decompiler/modules/decompiler/exps/FunctionExprent.java index 7ee6cfb..b8f212d 100644 --- a/src/org/jetbrains/java/decompiler/modules/decompiler/exps/FunctionExprent.java +++ b/src/org/jetbrains/java/decompiler/modules/decompiler/exps/FunctionExprent.java @@ -507,11 +507,21 @@ public class FunctionExprent extends Exprent { } return res.append(".length"); case FUNCTION_IIF: + Exprent left = lstOperands.get(1); + Exprent right = lstOperands.get(2); + + if (right.type == EXPRENT_CONST) { + ((ConstExprent) right).adjustConstType(left.getExprType()); + } + else if (left.type == EXPRENT_CONST) { + ((ConstExprent) left).adjustConstType(right.getExprType()); + } + return wrapOperandString(lstOperands.get(0), true, indent, tracer) - .append("?") - .append(wrapOperandString(lstOperands.get(1), true, indent, tracer)) - .append(":") - .append(wrapOperandString(lstOperands.get(2), true, indent, tracer)); + .append("?") + .append(wrapOperandString(left, true, indent, tracer)) + .append(":") + .append(wrapOperandString(right, true, indent, tracer)); case FUNCTION_IPP: return wrapOperandString(lstOperands.get(0), true, indent, tracer).append("++"); case FUNCTION_PPI: