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

Fix for valueluess mixin arguments

This commit is contained in:
Brian Fiete 2023-05-05 06:17:05 -07:00
parent 678bdc0ba6
commit f723ce1e39

View file

@ -17705,22 +17705,24 @@ void BfExprEvaluator::InjectMixin(BfAstNode* targetSrc, BfTypedValue target, boo
BfType* allocType = localVal.mType;
auto allocaVal = mModule->CreateAlloca(allocType);
mModule->mBfIRBuilder->CreateStore(localVal.mValue, allocaVal);
if (!mModule->mBfIRBuilder->mIgnoreWrites)
if (!allocType->IsValuelessType())
{
if (newLocalVar->mIsSplat)
auto allocaVal = mModule->CreateAlloca(allocType);
mModule->mBfIRBuilder->CreateStore(localVal.mValue, allocaVal);
if (!mModule->mBfIRBuilder->mIgnoreWrites)
{
//TODO: Implement
}
else
{
auto diType = mModule->mBfIRBuilder->DbgGetType(allocType);
auto diVariable = mModule->mBfIRBuilder->DbgCreateAutoVariable(mModule->mCurMethodState->mCurScope->mDIScope,
newLocalVar->mName, mModule->mCurFilePosition.mFileInstance->mDIFile, mModule->mCurFilePosition.mCurLine, diType);
mModule->mBfIRBuilder->DbgInsertDeclare(allocaVal, diVariable);
if (newLocalVar->mIsSplat)
{
//TODO: Implement
}
else
{
auto diType = mModule->mBfIRBuilder->DbgGetType(allocType);
auto diVariable = mModule->mBfIRBuilder->DbgCreateAutoVariable(mModule->mCurMethodState->mCurScope->mDIScope,
newLocalVar->mName, mModule->mCurFilePosition.mFileInstance->mDIFile, mModule->mCurFilePosition.mCurLine, diType);
mModule->mBfIRBuilder->DbgInsertDeclare(allocaVal, diVariable);
}
}
}
}