Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 71ca063

Browse files
gertdreyerlostmsu
authored andcommitted
Cleanup Codec/Argument Reversing Passing.
1 parent 1542cc9 commit 71ca063

File tree

4 files changed

+21
-26
lines changed

4 files changed

+21
-26
lines changed

src/embed_tests/TestOperator.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ public void Dispose()
2525
}
2626

2727
// Mock Integer class to test math ops on non-native dotnet types
28-
public struct OwnInt
28+
public readonly struct OwnInt
2929
{
30-
private int _value;
30+
private readonly int _value;
3131

3232
public int Num => _value;
3333

src/runtime/MethodBinder.cs

+13-18
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,14 @@ internal class MethodBinder
3434

3535
public bool argsReversed = false;
3636

37-
internal MethodBinder(bool argsReversed = false)
37+
internal MethodBinder()
3838
{
3939
list = new List<MaybeMethodBase>();
40-
this.argsReversed = argsReversed;
4140
}
4241

43-
internal MethodBinder(MethodInfo mi, bool argsReversed = false)
42+
internal MethodBinder(MethodInfo mi)
4443
{
4544
list = new List<MaybeMethodBase> { new MaybeMethodBase(mi) };
46-
this.argsReversed = argsReversed;
4745
}
4846

4947
public int Count
@@ -276,11 +274,10 @@ internal static int ArgPrecedence(Type t)
276274
/// <param name="inst">The Python target of the method invocation.</param>
277275
/// <param name="args">The Python arguments.</param>
278276
/// <param name="kw">The Python keyword arguments.</param>
279-
/// <param name="argsReversed">Reverse arguments of methods. Used for methods such as __radd__, __rsub__, __rmod__ etc</param>
280277
/// <returns>A Binding if successful. Otherwise null.</returns>
281-
internal Binding? Bind(BorrowedReference inst, BorrowedReference args, BorrowedReference kw, bool argsReversed = false)
278+
internal Binding? Bind(BorrowedReference inst, BorrowedReference args, BorrowedReference kw)
282279
{
283-
return Bind(inst, args, kw, null, null, argsReversed);
280+
return Bind(inst, args, kw, null, null);
284281
}
285282

286283
/// <summary>
@@ -293,11 +290,10 @@ internal static int ArgPrecedence(Type t)
293290
/// <param name="args">The Python arguments.</param>
294291
/// <param name="kw">The Python keyword arguments.</param>
295292
/// <param name="info">If not null, only bind to that method.</param>
296-
/// <param name="argsReversed">Reverse arguments of methods. Used for methods such as __radd__, __rsub__, __rmod__ etc</param>
297293
/// <returns>A Binding if successful. Otherwise null.</returns>
298-
internal Binding? Bind(BorrowedReference inst, BorrowedReference args, BorrowedReference kw, MethodBase? info, bool argsReversed = false)
294+
internal Binding? Bind(BorrowedReference inst, BorrowedReference args, BorrowedReference kw, MethodBase? info)
299295
{
300-
return Bind(inst, args, kw, info, null, argsReversed);
296+
return Bind(inst, args, kw, info, null);
301297
}
302298

303299
private readonly struct MatchedMethod
@@ -341,9 +337,8 @@ public MismatchedMethod(Exception exception, MethodBase mb)
341337
/// <param name="kw">The Python keyword arguments.</param>
342338
/// <param name="info">If not null, only bind to that method.</param>
343339
/// <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="argsReversed">Reverse arguments of methods. Used for methods such as __radd__, __rsub__, __rmod__ etc</param>
345340
/// <returns>A Binding if successful. Otherwise null.</returns>
346-
internal Binding? Bind(BorrowedReference inst, BorrowedReference args, BorrowedReference kw, MethodBase? info, MethodBase[]? methodinfo, bool argsReversed = false)
341+
internal Binding? Bind(BorrowedReference inst, BorrowedReference args, BorrowedReference kw, MethodBase? info, MethodBase[]? methodinfo)
347342
{
348343
// loop to find match, return invoker w/ or w/o error
349344
var kwargDict = new Dictionary<string, PyObject>();
@@ -819,14 +814,14 @@ static bool MatchesArgumentCount(int positionalArgumentCount, ParameterInfo[] pa
819814
return match;
820815
}
821816

822-
internal virtual NewReference Invoke(BorrowedReference inst, BorrowedReference args, BorrowedReference kw, bool argsReversed = false)
817+
internal virtual NewReference Invoke(BorrowedReference inst, BorrowedReference args, BorrowedReference kw)
823818
{
824-
return Invoke(inst, args, kw, null, null, argsReversed);
819+
return Invoke(inst, args, kw, null, null);
825820
}
826821

827-
internal virtual NewReference Invoke(BorrowedReference inst, BorrowedReference args, BorrowedReference kw, MethodBase? info, bool argsReversed = false)
822+
internal virtual NewReference Invoke(BorrowedReference inst, BorrowedReference args, BorrowedReference kw, MethodBase? info)
828823
{
829-
return Invoke(inst, args, kw, info, null, argsReversed = false);
824+
return Invoke(inst, args, kw, info, null);
830825
}
831826

832827
protected static void AppendArgumentTypes(StringBuilder to, BorrowedReference args)
@@ -862,7 +857,7 @@ protected static void AppendArgumentTypes(StringBuilder to, BorrowedReference ar
862857
to.Append(')');
863858
}
864859

865-
internal virtual NewReference Invoke(BorrowedReference inst, BorrowedReference args, BorrowedReference kw, MethodBase? info, MethodBase[]? methodinfo, bool argsReversed = false)
860+
internal virtual NewReference Invoke(BorrowedReference inst, BorrowedReference args, BorrowedReference kw, MethodBase? info, MethodBase[]? methodinfo)
866861
{
867862
// No valid methods, nothing to bind.
868863
if (GetMethods().Length == 0)
@@ -875,7 +870,7 @@ internal virtual NewReference Invoke(BorrowedReference inst, BorrowedReference a
875870
return Exceptions.RaiseTypeError(msg.ToString());
876871
}
877872

878-
Binding? binding = Bind(inst, args, kw, info, methodinfo, argsReversed);
873+
Binding? binding = Bind(inst, args, kw, info, methodinfo);
879874
object result;
880875
IntPtr ts = IntPtr.Zero;
881876

src/runtime/Types/MethodBinding.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -238,7 +238,7 @@ public static NewReference tp_call(BorrowedReference ob, BorrowedReference args,
238238
}
239239
}
240240

241-
return self.m.Invoke(target is null ? BorrowedReference.Null : target, args, kw, self.info.UnsafeValue, self.m.binder.argsReversed);
241+
return self.m.Invoke(target is null ? BorrowedReference.Null : target, args, kw, self.info.UnsafeValue);
242242
}
243243
finally
244244
{

src/runtime/Types/MethodObject.cs

+5-5
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public MethodObject(MaybeType type, string name, MethodBase[] info, bool allow_t
3232
this.type = type;
3333
this.name = name;
3434
this.infoList = new List<MaybeMethodInfo>();
35-
binder = new MethodBinder(argsReversed);
35+
binder = new MethodBinder() { argsReversed = argsReversed };
3636
foreach (MethodBase item in info)
3737
{
3838
this.infoList.Add(item);
@@ -67,14 +67,14 @@ internal MethodBase[] info
6767
}
6868
}
6969

70-
public virtual NewReference Invoke(BorrowedReference inst, BorrowedReference args, BorrowedReference kw, bool argsReversed = false)
70+
public virtual NewReference Invoke(BorrowedReference inst, BorrowedReference args, BorrowedReference kw)
7171
{
72-
return Invoke(inst, args, kw, null, argsReversed);
72+
return Invoke(inst, args, kw, null);
7373
}
7474

75-
public virtual NewReference Invoke(BorrowedReference target, BorrowedReference args, BorrowedReference kw, MethodBase? info, bool argsReversed = false)
75+
public virtual NewReference Invoke(BorrowedReference target, BorrowedReference args, BorrowedReference kw, MethodBase? info)
7676
{
77-
return binder.Invoke(target, args, kw, info, this.info, argsReversed);
77+
return binder.Invoke(target, args, kw, info, this.info);
7878
}
7979

8080
/// <summary>

0 commit comments

Comments
 (0)