public ExpressionResolutionResult GetExpressionResolutionResult(
            ExpressionResolutionResult expressionResolutionResult, PropertyMap propertyMap, IValueResolver valueResolver)
        {
            var oldParameter = propertyMap.CustomExpression.Parameters.Single();
            var newParameter = expressionResolutionResult.ResolutionExpression;
            var converter = new ParameterConversionVisitor(newParameter, oldParameter);

            var currentChild = converter.Visit(propertyMap.CustomExpression.Body);
            var currentChildType = currentChild.Type;

            return new ExpressionResolutionResult(currentChild, currentChildType);
        }
        public ExpressionResolutionResult GetExpressionResolutionResult(
            ExpressionResolutionResult expressionResolutionResult, PropertyMap propertyMap, IValueResolver valueResolver)
        {
            var oldParameter = propertyMap.CustomExpression.Parameters.Single();
            var newParameter = expressionResolutionResult.ResolutionExpression;
            var converter    = new ParameterConversionVisitor(newParameter, oldParameter);

            var currentChild     = converter.Visit(propertyMap.CustomExpression.Body);
            var currentChildType = currentChild.Type;

            return(new ExpressionResolutionResult(currentChild, currentChildType));
        }