Пример #1
0
            internal MemberMemberBindingRewriter(MemberMemberBinding binding, StackSpiller spiller, Stack stack) :
                base(binding, spiller) {

                _bindings = binding.Bindings;
                _bindingRewriters = new BindingRewriter[_bindings.Count];
                for (int i = 0; i < _bindings.Count; i++) {
                    BindingRewriter br = BindingRewriter.Create(_bindings[i], spiller, stack);
                    _action |= br.Action;
                    _bindingRewriters[i] = br;
                }
            }
Пример #2
0
 /// <summary>
 /// Visits the children of the <see cref="MemberMemberBinding" />.
 /// </summary>
 /// <param name="node">The expression to visit.</param>
 /// <returns>The modified expression, if it or any subexpression was modified;
 /// otherwise, returns the original expression.</returns>
 protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     return(node.Update(Visit(node.Bindings, VisitMemberBinding)));
 }
Пример #3
0
        protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
        {
            var bindings = VisitBindingList(node.Bindings);

            return(node.Update(node.Member, bindings));
        }
Пример #4
0
 private bool CompareMemberMemberBinding(MemberMemberBinding a, MemberMemberBinding b)
 {
     return(a.Member == b.Member &&
            CompareBindingList(a.Bindings, b.Bindings));
 }
Пример #5
0
 /// <summary>
 /// Visits a MemberMemberBinding.
 /// </summary>
 /// <param name="node">The MemberMemberBinding.</param>
 /// <returns>The MemberMemberBinding.</returns>
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     _sb.Append("<MemberMemberBinding>");
     return(node);
 }
Пример #6
0
 protected virtual bool AreEqualMemberMemberBinding(MemberMemberBinding x, MemberMemberBinding y)
 {
     return(this.AreEqualBindingList(x.Bindings, y.Bindings));
 }
Пример #7
0
 protected MemberBinding BaseVisitMemberMemberBinding(MemberMemberBinding binding)
 {
     return(base.VisitMemberMemberBinding(binding));
 }
 protected MemberMemberBinding UpdateMemberMemberBinding(MemberMemberBinding binding, MemberInfo member, IEnumerable<MemberBinding> bindings)
 {
     if (bindings != binding.Bindings || member != binding.Member)
     {
         return Expression.MemberBind(member, bindings);
     }
     return binding;
 }
Пример #9
0
 /// <summary>Visits the children of the <see cref="T:System.Linq.Expressions.MemberMemberBinding"></see>.</summary>
 /// <param name="node">The expression to visit.</param>
 /// <returns>The modified expression, if it or any subexpression was modified; otherwise, returns the original expression.</returns>
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     WriteMember(node.Member);
     Box.Put((byte)node.BindingType);
     return(base.VisitMemberMemberBinding(node));
 }
 /// <summary>
 /// Visits a MemberMemberBinding.
 /// </summary>
 /// <param name="node">The MemberMemberBinding.</param>
 /// <returns>The result of visiting the Expression.</returns>
 protected virtual T VisitMemberMemberBinding(MemberMemberBinding node)
 {
     this.VisitMemberBindingList(node.Bindings);
     return(default(T));
 }
Пример #11
0
        /// <summary>
        /// VisitMemberMemberBinding
        /// </summary>
        /// <param name="binding"></param>
        /// <returns></returns>
        protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)
        {
            IEnumerable <MemberBinding> bindings = VisitBindingList(binding.Bindings);

            return(bindings != binding.Bindings ? Expression.MemberBind(binding.Member, bindings) : binding);
        }
Пример #12
0
 protected override MemberMemberBinding MakeMemberMemberBinding(MemberMemberBinding node, ReadOnlyCollection <MemberBinding> bindings) => node;
Пример #13
0
 private bool EqualsMemberMemberBinding(MemberMemberBinding x, MemberMemberBinding y)
 {
     return(Equals(x.Bindings, y.Bindings, this.EqualsMemberBinding));
 }
 protected virtual bool CompareMemberMemberBinding(MemberMemberBinding a, MemberMemberBinding b)
 {
     return a.Member == b.Member
         && this.CompareBindingList(a.Bindings, b.Bindings);
 }
 protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)
 {
     IEnumerable<MemberBinding> bindings = this.VisitBindingList(binding.Bindings);
     return this.UpdateMemberMemberBinding(binding, binding.Member, bindings);
 }
Пример #16
0
        protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)
        {
            IEnumerable <MemberBinding> bindings = this.VisitBindingList(binding.Bindings);

            return(this.UpdateMemberMemberBinding(binding, binding.Member, bindings));
        }
Пример #17
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     throw new NotSupportedException();
 }
Пример #18
0
 protected virtual bool CompareMemberMemberBinding(MemberMemberBinding a, MemberMemberBinding b)
 {
     return(a.Member == b.Member &&
            this.CompareBindingList(a.Bindings, b.Bindings));
 }
Пример #19
0
 protected override MemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)
 {
     return(VisitUnhandledItem <MemberMemberBinding, MemberBinding> (binding, "VisitMemberMemberBinding", BaseVisitMemberMemberBinding));
 }
 private static void VisitBinding(MemberMemberBinding binding, ParameterExpression currentParameter,
                                  List <string> orderByProperties)
 {
     throw new NotImplementedException();
 }
Пример #21
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     return(GiveUp(node));
 }
 public MemberMemberBindingNode(INodeFactory factory, MemberMemberBinding memberMemberBinding)
     : base(factory, memberMemberBinding.BindingType, memberMemberBinding.Member)
 {
     this.Bindings = new MemberBindingNodeList(factory, memberMemberBinding.Bindings);
 }
Пример #23
0
        static MemberMemberBinding EnsureMemberMemberBinding(MemberMemberBinding binding)
        {
            var bindings = EnsureBindingList(binding.Bindings);

            return(bindings != binding.Bindings ? Expression.MemberBind(binding.Member, bindings) : binding);
        }
Пример #24
0
 /// <summary>
 /// Visits a MemberMemberBinding.
 /// </summary>
 /// <param name="node">The MemberMemberBinding.</param>
 /// <returns>The MemberMemberBinding.</returns>
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     throw new NotImplementedException();
 }
Пример #25
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     return(null);
 }
Пример #26
0
 protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)
 {
     return(null);
 }
Пример #27
0
        /// <summary>
        /// 访问 <see cref="MemberMemberBinding"/>。
        /// </summary>
        /// <param name="binding"></param>
        /// <returns></returns>
        protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)
        {
            var bindings = VisitBindingList(binding.Bindings);

            return(binding.Update(binding.Member, bindings));
        }
Пример #28
0
 /// <summary>
 /// Visits the children of <see cref="System.Linq.Expressions.MemberMemberBinding"/>.
 /// </summary>
 /// <param name="node">The expression to visit.</param>
 /// <returns>The modified expression, if it or any subexpression was modified; otherwise,
 /// returns the original expression.</returns>
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     throw new NotSupportedException(string.Format(Resources.EX_PROCESS_NODE_NOT_SUPPORT, node.GetType().Name));
 }
Пример #29
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     return(base.VisitMemberMemberBinding(node));
 }
Пример #30
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)
 {
     Accumulate(binding.Member);
     return(base.VisitMemberMemberBinding(binding));
 }
Пример #31
0
 private void ToStringMemberMemberBinding(MemberMemberBinding binding)
 {
     ToStringBindingList(binding.Bindings);
     return;
 }
Пример #32
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     UpdateHash((int)node.BindingType);
     UpdateHash(node.Member);
     return(base.VisitMemberMemberBinding(node));
 }
Пример #33
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     return(node.Update(node.Bindings.Select(VisitMemberBinding)));
 }
 private bool CompareMemberMemberBinding(MemberMemberBinding a, MemberMemberBinding b)
 => Equals(a.Member, b.Member) &&
 CompareBindingList(a.Bindings, b.Bindings);
Пример #35
0
 private void EmitMemberMemberBinding(MemberMemberBinding binding)
 {
     Type type = GetMemberType(binding.Member);
     if (binding.Member is PropertyInfo && type.GetTypeInfo().IsValueType)
     {
         throw Error.CannotAutoInitializeValueTypeMemberThroughProperty(binding.Member);
     }
     if (type.GetTypeInfo().IsValueType)
     {
         EmitMemberAddress(binding.Member, binding.Member.DeclaringType);
     }
     else
     {
         EmitMemberGet(binding.Member, binding.Member.DeclaringType);
     }
     EmitMemberInit(binding.Bindings, false, type);
 }
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)
 {
     Accumulate(binding.Member);
     return base.VisitMemberMemberBinding(binding);
 }