mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-10 12:32:20 +02:00
Fixed ability to call GetType on an interface reference
This commit is contained in:
parent
e6405e49c6
commit
dcacf87d66
2 changed files with 9 additions and 2 deletions
|
@ -2233,8 +2233,12 @@ bool BfMethodMatcher::CheckType(BfTypeInstance* typeInstance, BfTypedValue targe
|
|||
if (baseType == NULL)
|
||||
{
|
||||
//TODO: Why were we doing the interface checking?
|
||||
|
||||
if ((curTypeInst != mModule->mContext->mBfObjectType) && (!curTypeInst->IsInterface()))
|
||||
if ((curTypeInst->IsInterface()) && (curTypeInst == target.mType))
|
||||
{
|
||||
// When we are directly calling on interfaces rather than indirectly matching through binding
|
||||
baseType = mModule->mContext->mBfObjectType;
|
||||
}
|
||||
else if ((curTypeInst != mModule->mContext->mBfObjectType) && (!curTypeInst->IsInterface()))
|
||||
{
|
||||
// This can happen for structs
|
||||
baseType = mModule->mContext->mBfObjectType;
|
||||
|
|
|
@ -127,6 +127,9 @@ namespace Tests
|
|||
Test.Assert(UseIA2((IFaceA)cba) == 60);
|
||||
Test.Assert(UseIA2(cc) == 70);
|
||||
Test.Assert(UseIA2(cca) == 70);
|
||||
|
||||
IFaceA ifa = cba;
|
||||
Test.Assert(ifa.GetType() == typeof(ClassB));
|
||||
}
|
||||
|
||||
////
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue