From 41f7fd57e600a595ff092e07c42f6c585a6c379d Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sat, 30 Oct 2021 21:41:10 -0700 Subject: [PATCH] Type deconstification --- IDEHelper/Compiler/BfExprEvaluator.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index f695fae8..86ab8d7c 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -3050,6 +3050,19 @@ void BfExprEvaluator::Evaluate(BfAstNode* astNode, bool propogateNullConditional if ((mBfEvalExprFlags & BfEvalExprFlags_AllowIntUnknown) == 0) mModule->FixIntUnknown(mResult); + if (!mModule->mBfIRBuilder->mIgnoreWrites) + { + if (mResult.mValue.IsConst()) + { + auto constant = mModule->mBfIRBuilder->GetConstant(mResult.mValue); + if (constant->mConstType == BfConstType_TypeOf) + { + auto typeOfConst = (BfTypeOf_Const*)constant; + mResult.mValue = mModule->CreateTypeDataRef(typeOfConst->mType); + } + } + } + if (mModule->mCurMethodState != NULL) { if (mInsidePendingNullable)