private static Expression ConvertIfNeeded(Expression expression, Type type)
 {
     if (expression.Type != type)
     {
         return(Ast.DynamicConvert(expression, type));
     }
     return(expression);
 }