Skip to content

Commit a376838

Browse files
committed
Use reverse instead of forward (semantics)
1 parent e7da0bc commit a376838

File tree

2 files changed

+13
-13
lines changed

2 files changed

+13
-13
lines changed

src/runtime/methodbinder.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -351,13 +351,13 @@ internal Binding Bind(IntPtr inst, IntPtr args, IntPtr kw, MethodBase info, Meth
351351
int clrnargs = pi.Length;
352352
isOperator = isOperator && pynargs == clrnargs - 1; // Handle mismatched arg numbers due to Python operator being bound.
353353
// Preprocessing pi to remove either the first or second argument.
354-
bool isForward = isOperator && OperatorMethod.IsForward((MethodInfo)mi); // Only cast if isOperator.
355-
if (isOperator && isForward) {
354+
bool isReverse = isOperator && OperatorMethod.IsReverse((MethodInfo)mi); // Only cast if isOperator.
355+
if (isOperator && !isReverse) {
356356
// The first Python arg is the right operand, while the bound instance is the left.
357357
// We need to skip the first (left operand) CLR argument.
358358
pi = pi.Skip(1).Take(1).ToArray();
359359
}
360-
else if (isOperator && !isForward) {
360+
else if (isOperator && isReverse) {
361361
// The first Python arg is the left operand.
362362
// We need to take the first CLR argument.
363363
pi = pi.Take(1).ToArray();
@@ -377,10 +377,10 @@ internal Binding Bind(IntPtr inst, IntPtr args, IntPtr kw, MethodBase info, Meth
377377
{
378378
// Postprocessing to extend margs.
379379
var margsTemp = new object[2];
380-
// If forward, the bound instance is the left operand.
381-
int boundOperandIndex = isForward ? 0 : 1;
382-
// If forward, the passed instance is the right operand.
383-
int passedOperandIndex = isForward ? 1 : 0;
380+
// If reverse, the passed instance is the left operand.
381+
int passedOperandIndex= isReverse ? 0 : 1;
382+
// If reverse, the bound instance is the right operand.
383+
int boundOperandIndex = isReverse ? 1 : 0;
384384
margsTemp[boundOperandIndex] = co.inst;
385385
margsTemp[passedOperandIndex] = margs[0];
386386
margs = margsTemp;

src/runtime/operatormethod.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -137,15 +137,15 @@ public static string ReversePyMethodName(string pyName)
137137
}
138138

139139
/// <summary>
140-
/// Check if the method is performing a forward or reverse operation.
140+
/// Check if the method is performing a reverse operation.
141141
/// </summary>
142142
/// <param name="method">The operator method.</param>
143143
/// <returns></returns>
144-
public static bool IsForward(MethodInfo method)
144+
public static bool IsReverse(MethodInfo method)
145145
{
146146
Type declaringType = method.DeclaringType;
147147
Type leftOperandType = method.GetParameters()[0].ParameterType;
148-
return leftOperandType == declaringType;
148+
return leftOperandType != declaringType;
149149
}
150150

151151
public static void FilterMethods(MethodInfo[] methods, out MethodInfo[] forwardMethods, out MethodInfo[] reverseMethods)
@@ -154,12 +154,12 @@ public static void FilterMethods(MethodInfo[] methods, out MethodInfo[] forwardM
154154
List<MethodInfo> reverseMethodsList = new List<MethodInfo>();
155155
foreach (var method in methods)
156156
{
157-
if (IsForward(method))
157+
if (IsReverse(method))
158158
{
159-
forwardMethodsList.Add(method);
159+
reverseMethodsList.Add(method);
160160
} else
161161
{
162-
reverseMethodsList.Add(method);
162+
forwardMethodsList.Add(method);
163163
}
164164

165165
}

0 commit comments

Comments
 (0)