public override InvokeMemberDynamicCSharpExpression Update(Expression @object, IEnumerable<DynamicCSharpArgument> arguments)
        {
            if (@object == Object && SameElements(ref arguments, Arguments))
            {
                return this;
            }

            return DynamicCSharpExpression.DynamicInvokeMember(Target, Name, TypeArguments, arguments, Flags, Context);
        }
        public override InvokeMemberDynamicCSharpExpression Update(Expression @object, IEnumerable <DynamicCSharpArgument> arguments)
        {
            if (@object == this.Object && arguments == this.Arguments)
            {
                return(this);
            }

            return(DynamicCSharpExpression.DynamicInvokeMember(Target, Name, TypeArguments, arguments, Flags, Context));
        }
Example #3
0
 internal override Expression ReduceGetResult(Expression awaiter)
 {
     return
         (DynamicCSharpExpression.DynamicInvokeMember(
              awaiter,
              "GetResult",
              Array.Empty <Type>(),
              Array.Empty <DynamicCSharpArgument>(),
              ResultDiscarded ? CSharpBinderFlags.ResultDiscarded : CSharpBinderFlags.None,
              Context
              ));
 }
Example #4
0
 internal override Expression ReduceGetAwaiter(Expression operand)
 {
     // TODO: support ICriticalNotifyCompletion?
     return
         (Expression.Convert(
              DynamicCSharpExpression.DynamicInvokeMember(
                  operand,
                  "GetAwaiter",
                  Array.Empty <Type>(),
                  Array.Empty <DynamicCSharpArgument>(),
                  CSharpBinderFlags.None,
                  Context
                  ),
              typeof(INotifyCompletion)
              ));
 }