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

Skip to content

Commit d9c09ea

Browse files
committed
Fixes #755
1 parent 08344b7 commit d9c09ea

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

src/runtime/methodbinder.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -601,6 +601,19 @@ internal class MethodSorter : IComparer
601601
{
602602
int IComparer.Compare(object m1, object m2)
603603
{
604+
var me1 = (MethodBase)m1;
605+
var me2 = (MethodBase)m2;
606+
if (me1.DeclaringType != me2.DeclaringType)
607+
{
608+
// m2's type derives from m1's type, favor m2
609+
if (me1.DeclaringType.IsAssignableFrom(me2.DeclaringType))
610+
return 1;
611+
612+
// m1's type derives from m2's type, favor m1
613+
if (me2.DeclaringType.IsAssignableFrom(me1.DeclaringType))
614+
return -1;
615+
}
616+
604617
int p1 = MethodBinder.GetPrecedence((MethodBase)m1);
605618
int p2 = MethodBinder.GetPrecedence((MethodBase)m2);
606619
if (p1 < p2)

0 commit comments

Comments
 (0)