From 38abaf6b3f7e896b998289aba5f5fbcb3ab94b43 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 31 Dec 2021 12:05:36 -0500 Subject: [PATCH] Fixed default case for discriminated union with empty payload member --- IDEHelper/Compiler/BfCompiler.cpp | 5 ----- IDEHelper/Compiler/BfExprEvaluator.cpp | 4 ++-- IDEHelper/Compiler/BfModule.cpp | 5 ----- 3 files changed, 2 insertions(+), 12 deletions(-) diff --git a/IDEHelper/Compiler/BfCompiler.cpp b/IDEHelper/Compiler/BfCompiler.cpp index 50305910..6eadc643 100644 --- a/IDEHelper/Compiler/BfCompiler.cpp +++ b/IDEHelper/Compiler/BfCompiler.cpp @@ -1357,11 +1357,6 @@ void BfCompiler::CreateVData(BfVDataModule* bfModule) if ((typeInst != NULL) && (!typeInst->IsReified()) && (!typeInst->IsUnspecializedType())) continue; - if (type->mTypeId == 0x0000045F) - { - NOP; - } - bool needsTypeData = (needsTypeList) || ((type->IsObject()) && (needsObjectTypeData)); bool needsVData = (type->IsObject()) && (typeInst->HasBeenInstantiated()); diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index cbf21c8a..1faa05e4 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -4587,8 +4587,8 @@ BfTypedValue BfExprEvaluator::LookupField(BfAstNode* targetSrc, BfTypedValue tar } SizedArray values; - values.Add(mModule->mBfIRBuilder->CreateConstAggZero(mModule->mBfIRBuilder->MapType(curCheckType->mBaseType))); - values.Add(mModule->mBfIRBuilder->CreateConstAggZero(mModule->mBfIRBuilder->MapType(curCheckType->GetUnionInnerType()))); + values.Add(mModule->mBfIRBuilder->CreateConstAggZero(mModule->mBfIRBuilder->MapType(curCheckType->mBaseType))); + values.Add(mModule->GetDefaultValue(curCheckType->GetUnionInnerType())); values.Add(mModule->mBfIRBuilder->CreateConst(dscrType->mTypeDef->mTypeCode, tagIdx)); return BfTypedValue(mModule->mBfIRBuilder->CreateConstAgg(mModule->mBfIRBuilder->MapType(curCheckType), values), curCheckType); } diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index d6e3bd72..57d79ac9 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -5305,11 +5305,6 @@ BfIRValue BfModule::CreateTypeData(BfType* type, Dictionary& usedStrin return BfIRValue(); } - if (mContext->mBfTypeType == NULL) - { - - } - BfIRValue typeTypeData; int typeFlags = 0; if (needsTypeData)