public static IList <MemberBinding> FoldBindingList(ReadOnlyCollection <MemberBinding> inputExpressionList)
        {
            List <MemberBinding> list = null;

            for (int i = 0; i < inputExpressionList.Count; i++)
            {
                MemberBinding b = ConstantFolding.FoldBinding(inputExpressionList[i]);
                if (list != null)
                {
                    list.Add(b);
                }
                else if (b != inputExpressionList[i])
                {
                    list = new List <MemberBinding>(inputExpressionList.Count);
                    for (int j = 0; j < i; j++)
                    {
                        list.Add(inputExpressionList[j]);
                    }
                    list.Add(b);
                }
            }

            if (list != null)
            {
                return(list);
            }

            return(inputExpressionList);
        }