mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 03:52:19 +02:00
Fixed reification issues, mut-vs-imut method mangling
This commit is contained in:
parent
425284f023
commit
9a857cceb3
8 changed files with 31 additions and 18 deletions
|
@ -447,7 +447,7 @@ bool BfContext::ProcessWorkList(bool onlyReifiedTypes, bool onlyReifiedMethods)
|
|||
|
||||
auto typeInst = methodSpecializationRequest.mType->ToTypeInstance();
|
||||
module->GetMethodInstance(methodSpecializationRequest.mType->ToTypeInstance(), methodSpecializationRequest.mMethodDef, methodSpecializationRequest.mMethodGenericArguments,
|
||||
(BfGetMethodInstanceFlags)(methodSpecializationRequest.mFlags | BfGetMethodInstanceFlag_ResultNotUsed));
|
||||
(BfGetMethodInstanceFlags)(methodSpecializationRequest.mFlags | BfGetMethodInstanceFlag_ResultNotUsed), methodSpecializationRequest.mForeignType);
|
||||
didWork = true;
|
||||
}
|
||||
}
|
||||
|
@ -505,7 +505,11 @@ bool BfContext::ProcessWorkList(bool onlyReifiedTypes, bool onlyReifiedMethods)
|
|||
module->PopulateType(owner, BfPopulateType_Full);
|
||||
|
||||
if (methodInstance->mDeclModule != NULL)
|
||||
{
|
||||
if (!mCompiler->mIsResolveOnly)
|
||||
BF_ASSERT(!methodInstance->mIsReified || methodInstance->mDeclModule->mIsModuleMutable);
|
||||
ProcessMethod(methodInstance);
|
||||
}
|
||||
}
|
||||
|
||||
workIdx = mMethodWorkList.RemoveAt(workIdx);
|
||||
|
@ -2452,7 +2456,7 @@ void BfContext::QueueMethodSpecializations(BfTypeInstance* typeInst, bool checkS
|
|||
specializationRequest->mFromModuleRevision = typeInst->mModule->mRevision;
|
||||
specializationRequest->mMethodDef = methodRef.mTypeInstance->mTypeDef->mMethods[methodRef.mMethodNum];
|
||||
specializationRequest->mMethodGenericArguments = methodRef.mMethodGenericArguments;
|
||||
specializationRequest->mType = methodRef.mTypeInstance;
|
||||
specializationRequest->mType = methodRef.mTypeInstance;
|
||||
|
||||
BfLogSysM("QueueMethodSpecializations typeInst %p specializationRequest %p methodDef %p fromModule %p\n", typeInst, specializationRequest, methodDef, specializationRequest->mFromModule);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue