1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00

Fixed default interface method issue

This commit is contained in:
Brian Fiete 2020-08-31 15:54:40 -07:00
parent 49b124e291
commit 5924d4819b

View file

@ -12934,9 +12934,7 @@ int BfExprEvaluator::GetMixinVariable()
BfModuleMethodInstance BfExprEvaluator::GetSelectedMethod(BfAstNode* targetSrc, BfTypeInstance* curTypeInst, BfMethodDef* methodDef, BfMethodMatcher& methodMatcher) BfModuleMethodInstance BfExprEvaluator::GetSelectedMethod(BfAstNode* targetSrc, BfTypeInstance* curTypeInst, BfMethodDef* methodDef, BfMethodMatcher& methodMatcher)
{ {
bool failed = false; bool failed = false;
auto resolvedCurTypeInst = curTypeInst;//mModule->ResolveGenericType(curTypeInst)->ToTypeInstance();
bool hasDifferentResolvedTypes = resolvedCurTypeInst != curTypeInst;
BfTypeVector resolvedGenericArguments; BfTypeVector resolvedGenericArguments;
BfMethodState* rootMethodState = NULL; BfMethodState* rootMethodState = NULL;
if (mModule->mCurMethodState != NULL) if (mModule->mCurMethodState != NULL)
@ -13075,9 +13073,7 @@ BfModuleMethodInstance BfExprEvaluator::GetSelectedMethod(BfAstNode* targetSrc,
if (genericArg->IsIntUnknown()) if (genericArg->IsIntUnknown())
genericArg = mModule->GetPrimitiveType(BfTypeCode_IntPtr); genericArg = mModule->GetPrimitiveType(BfTypeCode_IntPtr);
auto resolvedGenericArg = genericArg;//mModule->ResolveGenericType(genericArg); auto resolvedGenericArg = genericArg;
if (resolvedGenericArg != genericArg)
hasDifferentResolvedTypes = true;
resolvedGenericArguments.push_back(resolvedGenericArg); resolvedGenericArguments.push_back(resolvedGenericArg);
} }
} }
@ -13121,7 +13117,7 @@ BfModuleMethodInstance BfExprEvaluator::GetSelectedMethod(BfAstNode* targetSrc,
} }
else else
{ {
methodInstance = mModule->GetMethodInstance(resolvedCurTypeInst, methodDef, resolvedGenericArguments, flags, foreignType); methodInstance = mModule->GetMethodInstance(curTypeInst, methodDef, resolvedGenericArguments, flags, foreignType);
} }
if (mModule->mCompiler->IsSkippingExtraResolveChecks()) if (mModule->mCompiler->IsSkippingExtraResolveChecks())
{ {