@@ -32,18 +32,18 @@ internal class MethodBinder
3232public const bool DefaultAllowThreads = true ;
3333public bool allow_threads = DefaultAllowThreads ;
3434
35- public bool args_reversed = false ;
35+ public bool argsReversed = false ;
3636
3737internal MethodBinder ( bool reverse_args = false )
3838{
3939list = new List < MaybeMethodBase > ( ) ;
40- args_reversed = reverse_args ;
40+ argsReversed = reverse_args ;
4141}
4242
43- internal MethodBinder ( MethodInfo mi , bool reverse_args = false )
43+ internal MethodBinder ( MethodInfo mi , bool argsReversed = false )
4444{
4545list = new List < MaybeMethodBase > { new MaybeMethodBase ( mi ) } ;
46- args_reversed = reverse_args ;
46+ this . argsReversed = argsReversed ;
4747}
4848
4949public int Count
@@ -276,11 +276,11 @@ internal static int ArgPrecedence(Type t)
276276/// <param name="inst">The Python target of the method invocation.</param>
277277/// <param name="args">The Python arguments.</param>
278278/// <param name="kw">The Python keyword arguments.</param>
279- /// <param name="reverse_args ">Reverse arguments of methods. Used for methods such as __radd__, __rsub__, __rmod__ etc</param>
279+ /// <param name="argsReversed ">Reverse arguments of methods. Used for methods such as __radd__, __rsub__, __rmod__ etc</param>
280280/// <returns>A Binding if successful. Otherwise null.</returns>
281- internal Binding ? Bind ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , bool reverse_args = false )
281+ internal Binding ? Bind ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , bool argsReversed = false )
282282{
283- return Bind ( inst , args , kw , null , null , reverse_args ) ;
283+ return Bind ( inst , args , kw , null , null , argsReversed ) ;
284284}
285285
286286/// <summary>
@@ -293,11 +293,11 @@ internal static int ArgPrecedence(Type t)
293293/// <param name="args">The Python arguments.</param>
294294/// <param name="kw">The Python keyword arguments.</param>
295295/// <param name="info">If not null, only bind to that method.</param>
296- /// <param name="reverse_args ">Reverse arguments of methods. Used for methods such as __radd__, __rsub__, __rmod__ etc</param>
296+ /// <param name="argsReversed ">Reverse arguments of methods. Used for methods such as __radd__, __rsub__, __rmod__ etc</param>
297297/// <returns>A Binding if successful. Otherwise null.</returns>
298- internal Binding ? Bind ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , MethodBase ? info , bool reverse_args = false )
298+ internal Binding ? Bind ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , MethodBase ? info , bool argsReversed = false )
299299{
300- return Bind ( inst , args , kw , info , null , reverse_args ) ;
300+ return Bind ( inst , args , kw , info , null , argsReversed ) ;
301301}
302302
303303private readonly struct MatchedMethod
@@ -341,9 +341,9 @@ public MismatchedMethod(Exception exception, MethodBase mb)
341341/// <param name="kw">The Python keyword arguments.</param>
342342/// <param name="info">If not null, only bind to that method.</param>
343343/// <param name="methodinfo">If not null, additionally attempt to bind to the generic methods in this array by inferring generic type parameters.</param>
344- /// <param name="reverse_args ">Reverse arguments of methods. Used for methods such as __radd__, __rsub__, __rmod__ etc</param>
344+ /// <param name="argsReversed ">Reverse arguments of methods. Used for methods such as __radd__, __rsub__, __rmod__ etc</param>
345345/// <returns>A Binding if successful. Otherwise null.</returns>
346- internal Binding ? Bind ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , MethodBase ? info , MethodBase [ ] ? methodinfo , bool reverse_args = false )
346+ internal Binding ? Bind ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , MethodBase ? info , MethodBase [ ] ? methodinfo , bool argsReversed = false )
347347{
348348// loop to find match, return invoker w/ or w/o error
349349var kwargDict = new Dictionary < string , PyObject > ( ) ;
@@ -371,10 +371,10 @@ public MismatchedMethod(Exception exception, MethodBase mb)
371371_methods = GetMethods ( ) ;
372372}
373373
374- return Bind ( inst , args , kwargDict , _methods , matchGenerics : true , reverse_args ) ;
374+ return Bind ( inst , args , kwargDict , _methods , matchGenerics : true , argsReversed ) ;
375375}
376376
377- private static Binding ? Bind ( BorrowedReference inst , BorrowedReference args , Dictionary < string , PyObject > kwargDict , MethodBase [ ] methods , bool matchGenerics , bool reversed = false )
377+ private static Binding ? Bind ( BorrowedReference inst , BorrowedReference args , Dictionary < string , PyObject > kwargDict , MethodBase [ ] methods , bool matchGenerics , bool argsReversed = false )
378378{
379379var pynargs = ( int ) Runtime . PyTuple_Size ( args ) ;
380380var isGeneric = false ;
@@ -394,20 +394,22 @@ public MismatchedMethod(Exception exception, MethodBase mb)
394394// Binary operator methods will have 2 CLR args but only one Python arg
395395// (unary operators will have 1 less each), since Python operator methods are bound.
396396isOperator = isOperator && pynargs == pi . Length - 1 ;
397- bool isReverse = isOperator && reversed ; // Only cast if isOperator.
397+ bool isReverse = isOperator && argsReversed ; // Only cast if isOperator.
398398if ( isReverse && OperatorMethod . IsComparisonOp ( ( MethodInfo ) mi ) )
399399continue ; // Comparison operators in Python have no reverse mode.
400400if ( ! MatchesArgumentCount ( pynargs , pi , kwargDict , out bool paramsArray , out ArrayList ? defaultArgList , out int kwargsMatched , out int defaultsNeeded ) && ! isOperator )
401401{
402402continue ;
403403}
404404// Preprocessing pi to remove either the first or second argument.
405- if ( isOperator && ! isReverse ) {
405+ if ( isOperator && ! isReverse )
406+ {
406407// The first Python arg is the right operand, while the bound instance is the left.
407408// We need to skip the first (left operand) CLR argument.
408409pi = pi . Skip ( 1 ) . ToArray ( ) ;
409410}
410- else if ( isOperator && isReverse ) {
411+ else if ( isOperator && isReverse )
412+ {
411413// The first Python arg is the left operand.
412414// We need to take the first CLR argument.
413415pi = pi . Take ( 1 ) . ToArray ( ) ;
@@ -817,14 +819,14 @@ static bool MatchesArgumentCount(int positionalArgumentCount, ParameterInfo[] pa
817819return match ;
818820}
819821
820- internal virtual NewReference Invoke ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , bool reverse_args = false )
822+ internal virtual NewReference Invoke ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , bool argsReversed = false )
821823{
822- return Invoke ( inst , args , kw , null , null , reverse_args ) ;
824+ return Invoke ( inst , args , kw , null , null , argsReversed ) ;
823825}
824826
825- internal virtual NewReference Invoke ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , MethodBase ? info , bool reverse_args = false )
827+ internal virtual NewReference Invoke ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , MethodBase ? info , bool argsReversed = false )
826828{
827- return Invoke ( inst , args , kw , info , null , reverse_args = false ) ;
829+ return Invoke ( inst , args , kw , info , null , argsReversed = false ) ;
828830}
829831
830832protected static void AppendArgumentTypes ( StringBuilder to , BorrowedReference args )
@@ -860,7 +862,7 @@ protected static void AppendArgumentTypes(StringBuilder to, BorrowedReference ar
860862to . Append ( ')' ) ;
861863}
862864
863- internal virtual NewReference Invoke ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , MethodBase ? info , MethodBase [ ] ? methodinfo , bool reverse_args = false )
865+ internal virtual NewReference Invoke ( BorrowedReference inst , BorrowedReference args , BorrowedReference kw , MethodBase ? info , MethodBase [ ] ? methodinfo , bool argsReversed = false )
864866{
865867// No valid methods, nothing to bind.
866868if ( GetMethods ( ) . Length == 0 )
@@ -873,7 +875,7 @@ internal virtual NewReference Invoke(BorrowedReference inst, BorrowedReference a
873875return Exceptions . RaiseTypeError ( msg . ToString ( ) ) ;
874876}
875877
876- Binding ? binding = Bind ( inst , args , kw , info , methodinfo , reverse_args ) ;
878+ Binding ? binding = Bind ( inst , args , kw , info , methodinfo , argsReversed ) ;
877879object result ;
878880IntPtr ts = IntPtr . Zero ;
879881