From 80d9b11166f79ce0176fea492ad8f148083ccf1e Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Mon, 13 Jun 2022 11:50:13 -0700 Subject: [PATCH] Fixed reification on delegate invocations --- IDEHelper/Compiler/BfExprEvaluator.cpp | 8 +++++++- IDEHelper/Compiler/BfModule.cpp | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index b8b2a621..9b4e8b8b 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -15926,7 +15926,13 @@ int BfExprEvaluator::GetMixinVariable() BfModuleMethodInstance BfExprEvaluator::GetSelectedMethod(BfAstNode* targetSrc, BfTypeInstance* curTypeInst, BfMethodDef* methodDef, BfMethodMatcher& methodMatcher, BfType** overrideReturnType) { bool failed = false; - + + if ((mModule->mIsReified) && (!curTypeInst->mIsReified)) + { + // Make sure target type gets reified + mModule->PopulateType(curTypeInst); + } + BfTypeVector resolvedGenericArguments; BfMethodState* rootMethodState = NULL; if (mModule->mCurMethodState != NULL) diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index 955ef3ea..73de18c0 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -8806,7 +8806,7 @@ BfTypedValue BfModule::CreateValueFromExpression(BfExprEvaluator& exprEvaluator, if ((!typedVal.mType->IsComposite()) && (!typedVal.mType->IsGenericParam())) // Load non-structs by default { - if ((!mBfIRBuilder->mIgnoreWrites) && (!typedVal.mType->IsValuelessType()) && (!typedVal.mType->IsVar())) + if ((!mBfIRBuilder->mIgnoreWrites) && (!typedVal.mType->IsDataIncomplete()) && (!typedVal.mType->IsValuelessType()) && (!typedVal.mType->IsVar())) { BF_ASSERT(!typedVal.mValue.IsFake()); }