From 639bfac45b417f5a2743210a09e488d4574d5484 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 29 Jan 2022 11:58:30 -0500 Subject: [PATCH] Fixed mixinState hasDeferredUsage --- IDEHelper/Compiler/BfExprEvaluator.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 5fa48e8a..42989005 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -16445,19 +16445,11 @@ void BfExprEvaluator::InjectMixin(BfAstNode* targetSrc, BfTypedValue target, boo if (mixinState->mHasDeferredUsage) { -// if (target) -// { -// if (target.mType->IsValuelessType()) -// mixinState->mTarget = target; -// else -// { -// target = mModule->LoadValue(target); -// auto savedTarget = BfTypedValue(mModule->CreateAlloca(target.mType, false), target.mType, true); -// mModule->mBfIRBuilder->CreateStore(target.mValue, savedTarget.mValue); -// mixinState->mTarget = savedTarget; -// } -// } mixinState->mTarget = BfTypedValue(); + // Put deferred mixin states at the front + BF_ASSERT(rootMethodState->mMixinStates.back() == mixinState); + rootMethodState->mMixinStates.pop_back(); + rootMethodState->mMixinStates.Insert(0, mixinState); } else {