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; } }
/// <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))); }
protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node) { var bindings = VisitBindingList(node.Bindings); return(node.Update(node.Member, bindings)); }
private bool CompareMemberMemberBinding(MemberMemberBinding a, MemberMemberBinding b) { return(a.Member == b.Member && CompareBindingList(a.Bindings, b.Bindings)); }
/// <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); }
protected virtual bool AreEqualMemberMemberBinding(MemberMemberBinding x, MemberMemberBinding y) { return(this.AreEqualBindingList(x.Bindings, y.Bindings)); }
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; }
/// <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)); }
/// <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); }
protected override MemberMemberBinding MakeMemberMemberBinding(MemberMemberBinding node, ReadOnlyCollection <MemberBinding> bindings) => node;
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); }
protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding) { IEnumerable <MemberBinding> bindings = this.VisitBindingList(binding.Bindings); return(this.UpdateMemberMemberBinding(binding, binding.Member, bindings)); }
protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node) { throw new NotSupportedException(); }
protected virtual bool CompareMemberMemberBinding(MemberMemberBinding a, MemberMemberBinding b) { return(a.Member == b.Member && this.CompareBindingList(a.Bindings, b.Bindings)); }
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(); }
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); }
static MemberMemberBinding EnsureMemberMemberBinding(MemberMemberBinding binding) { var bindings = EnsureBindingList(binding.Bindings); return(bindings != binding.Bindings ? Expression.MemberBind(binding.Member, bindings) : binding); }
/// <summary> /// Visits a MemberMemberBinding. /// </summary> /// <param name="node">The MemberMemberBinding.</param> /// <returns>The MemberMemberBinding.</returns> protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node) { throw new NotImplementedException(); }
protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node) { return(null); }
protected virtual MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding) { return(null); }
/// <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)); }
/// <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)); }
protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node) { return(base.VisitMemberMemberBinding(node)); }
protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding binding) { Accumulate(binding.Member); return(base.VisitMemberMemberBinding(binding)); }
private void ToStringMemberMemberBinding(MemberMemberBinding binding) { ToStringBindingList(binding.Bindings); return; }
protected override MemberMemberBinding VisitMemberMemberBinding(MemberMemberBinding node) { UpdateHash((int)node.BindingType); UpdateHash(node.Member); return(base.VisitMemberMemberBinding(node)); }
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);
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); }