1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 03:28:20 +02:00

Merge pull request #2189 from Fusioon/fix-#1865

Better interface method matching when names match
This commit is contained in:
Brian Fiete 2025-03-21 08:40:39 -04:00 committed by GitHub
commit 4693290c1d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -26742,12 +26742,17 @@ bool BfModule::SlotVirtualMethod(BfMethodInstance* methodInstance, BfAmbiguityCo
bool isBetter = false;
bool isWorse = false;
isBetter = (methodInstance->mMethodInfoEx != NULL) && (methodInstance->mMethodInfoEx->mExplicitInterface != NULL);
isWorse = (prevMethod->mMethodInfoEx != NULL) && (prevMethod->mMethodInfoEx->mExplicitInterface != NULL);
isBetter = methodInstance->mReturnType == iMethodInst->mReturnType;
isWorse = prevMethod->mReturnType == iMethodInst->mReturnType;
if (isBetter == isWorse)
{
isBetter = methodInstance->mReturnType == iMethodInst->mReturnType;
isWorse = prevMethod->mReturnType == iMethodInst->mReturnType;
isBetter = (methodInstance->mMethodInfoEx != NULL) && (methodInstance->mMethodInfoEx->mExplicitInterface != NULL);
isWorse = (prevMethod->mMethodInfoEx != NULL) && (prevMethod->mMethodInfoEx->mExplicitInterface != NULL);
if ((isBetter) && (isWorse))
{
isBetter = methodInstance->mMethodInfoEx->mExplicitInterface == ifaceInst;
isWorse = prevMethod->mMethodInfoEx->mExplicitInterface == ifaceInst;
}
}
if (isBetter == isWorse)