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(")");
            }
        }