private static void RenderCondition(ConditionalExpression expression, StringBuilder builder, bool wrapped, bool checkedScope) { if (!wrapped) { builder.Append("("); } var nullTestExpressions = default(List <Expression>); var continuationExpression = default(Expression); // try to detect null-propagation operation if (ExpressionUtils.ExtractNullPropagationExpression(expression, out nullTestExpressions, out continuationExpression)) { RenderNullPropagationExpression(continuationExpression, builder, nullTestExpressions, checkedScope); } else { var cond = expression; Render(cond.Test, builder, true, checkedScope); builder.Append(" ? "); Render(cond.IfTrue, builder, true, checkedScope); builder.Append(" : "); Render(cond.IfFalse, builder, true, checkedScope); } if (!wrapped) { builder.Append(")"); } }