1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

More methodref fixes

This commit is contained in:
Brian Fiete 2020-10-22 06:31:31 -07:00
parent b16f8b303e
commit 4449952235
3 changed files with 25 additions and 10 deletions

View file

@ -17141,7 +17141,7 @@ void BfModule::EmitGCFindTLSMembers()
void BfModule::ProcessMethod(BfMethodInstance* methodInstance, bool isInlineDup)
{
BP_ZONE_F("BfModule::ProcessMethod %s", BP_DYN_STR(methodInstance->mMethodDef->mName.c_str()));
if (mAwaitingInitFinish)
FinishInit();
@ -19694,6 +19694,8 @@ BfModuleMethodInstance BfModule::GetLocalMethodInstance(BfLocalMethod* localMeth
BfDeferredLocalAssignData deferredLocalAssignData(rootMethodState->mCurScope);
deferredLocalAssignData.mVarIdBarrier = rootMethodState->mCurLocalVarId;
SetAndRestoreValue<BfDeferredLocalAssignData*> prevDLA(rootMethodState->mDeferredLocalAssignData, &deferredLocalAssignData);
if (!mIgnoreErrors)
localMethod->mDidBodyErrorPass = true;
_VisitLambdaBody();
RestoreScopeState();
@ -19907,7 +19909,8 @@ BfModuleMethodInstance BfModule::GetLocalMethodInstance(BfLocalMethod* localMeth
// Since we handle errors & warnings in the capture phase, we don't need to process any local methods for resolve-only (unless we're doing a mDbgVerifyCodeGen)
if ((!localMethod->mDeclOnly) && (!methodInstance->IsOrInUnspecializedVariation()) &&
(!mWantsIRIgnoreWrites) && (methodDef->mMethodType != BfMethodType_Mixin))
(methodDef->mMethodType != BfMethodType_Mixin) &&
((!mWantsIRIgnoreWrites) || (!localMethod->mDidBodyErrorPass)))
{
BP_ZONE("BfDeferredLocalMethod:create");