public ParsedCatchBlock(
     ParsedType type,
     ParsedParameterExpression variable,
     ParsedExpression filter,
     ParsedExpression body)
 {
     this.Type     = type;
     this.Variable = variable;
     this.Filter   = filter;
     this.Body     = body;
 }
        private ParameterExpression Deserialize(ParsedParameterExpression parsedExpression)
        {
            if (parsedExpression == null)
            {
                throw new ArgumentNullException(nameof(parsedExpression));
            }

            return(Expression.Parameter(
                       parsedExpression.Type == null ? null : Deserialize(parsedExpression.Type),
                       parsedExpression.Name));
        }