Exemplo n.º 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;
                }
            }
Exemplo n.º 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)));
 }
Exemplo n.º 3
0
        protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
        {
            var bindings = VisitBindingList(node.Bindings);

            return(node.Update(node.Member, bindings));
        }
Exemplo n.º 4
0
 private bool CompareMemberMemberBinding(MemberMemberBinding a, MemberMemberBinding b)
 {
     return(a.Member == b.Member &&
            CompareBindingList(a.Bindings, b.Bindings));
 }
Exemplo n.º 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);
 }
Exemplo n.º 6
0
 protected virtual bool AreEqualMemberMemberBinding(MemberMemberBinding x, MemberMemberBinding y)
 {
     return(this.AreEqualBindingList(x.Bindings, y.Bindings));
 }
Exemplo n.º 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;
 }
Exemplo n.º 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));
 }
Exemplo n.º 10
0
 /// <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));
 }
Exemplo n.º 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);
        }
Exemplo n.º 12
0
 protected override MemberMemberBinding MakeMemberMemberBinding(MemberMemberBinding node, ReadOnlyCollection <MemberBinding> bindings) => node;
Exemplo n.º 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);
 }
Exemplo n.º 16
0
        protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)
        {
            IEnumerable <MemberBinding> bindings = this.VisitBindingList(binding.Bindings);

            return(this.UpdateMemberMemberBinding(binding, binding.Member, bindings));
        }
Exemplo n.º 17
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     throw new NotSupportedException();
 }
Exemplo n.º 18
0
 protected virtual bool CompareMemberMemberBinding(MemberMemberBinding a, MemberMemberBinding b)
 {
     return(a.Member == b.Member &&
            this.CompareBindingList(a.Bindings, b.Bindings));
 }
Exemplo n.º 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();
 }
Exemplo n.º 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);
 }
Exemplo n.º 23
0
        static MemberMemberBinding EnsureMemberMemberBinding(MemberMemberBinding binding)
        {
            var bindings = EnsureBindingList(binding.Bindings);

            return(bindings != binding.Bindings ? Expression.MemberBind(binding.Member, bindings) : binding);
        }
Exemplo n.º 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();
 }
Exemplo n.º 25
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     return(null);
 }
Exemplo n.º 26
0
 protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)
 {
     return(null);
 }
Exemplo n.º 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));
        }
Exemplo n.º 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));
 }
Exemplo n.º 29
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     return(base.VisitMemberMemberBinding(node));
 }
Exemplo n.º 30
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding)
 {
     Accumulate(binding.Member);
     return(base.VisitMemberMemberBinding(binding));
 }
Exemplo n.º 31
0
 private void ToStringMemberMemberBinding(MemberMemberBinding binding)
 {
     ToStringBindingList(binding.Bindings);
     return;
 }
Exemplo n.º 32
0
 protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node)
 {
     UpdateHash((int)node.BindingType);
     UpdateHash(node.Member);
     return(base.VisitMemberMemberBinding(node));
 }
Exemplo n.º 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);
Exemplo n.º 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);
 }