From 28c3179d4f03d7643ec58f4f7abf31d48b712aa0 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Mon, 4 May 2020 09:39:40 -0700 Subject: [PATCH] Fixes to the lowering fixes --- IDEHelper/Compiler/BfExprEvaluator.cpp | 4 ++-- IDEHelper/Compiler/BfResolvedTypeUtils.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 764b32a6..09270ba3 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -4955,7 +4955,7 @@ void BfExprEvaluator::PushThis(BfAstNode* targetSrc, BfTypedValue argVal, BfMeth if (argVal.mType->IsValuelessType()) return; - if (!methodInstance->AllowsThisSplatting()) + if ((!methodInstance->AllowsThisSplatting()) && (methodDef->mIsMutating)) { argVal = mModule->MakeAddressable(argVal); irArgs.push_back(argVal.mValue); @@ -5010,7 +5010,7 @@ BfTypedValue BfExprEvaluator::CreateCall(BfAstNode* targetSrc, const BfTypedValu if (!mModule->mCompiler->mIsResolveOnly) sCallIdx++; int callIdx = sCallIdx; - if (callIdx == 44) + if (callIdx == 4348) { NOP; } diff --git a/IDEHelper/Compiler/BfResolvedTypeUtils.cpp b/IDEHelper/Compiler/BfResolvedTypeUtils.cpp index f3cba8a8..18f45889 100644 --- a/IDEHelper/Compiler/BfResolvedTypeUtils.cpp +++ b/IDEHelper/Compiler/BfResolvedTypeUtils.cpp @@ -737,7 +737,7 @@ BfType* BfMethodInstance::GetParamType(int paramIdx, bool useResolvedType) return mMethodInfoEx->mClosureInstanceInfo->mThisOverride; BF_ASSERT(!mMethodDef->mIsStatic); auto owner = mMethodInstanceGroup->mOwner; - if ((owner->IsValueType()) && ((mMethodDef->mIsMutating) || (!AllowsSplatting()))) + if ((owner->IsValueType()) && ((mMethodDef->mIsMutating) || (!AllowsSplatting())) && (owner->GetLoweredType() == BfTypeCode_None)) return owner->mModule->CreatePointerType(owner); return owner; }