From 3f1f114180172be3d49fa9e499c7cf0ee629af8b Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Mon, 13 Jun 2022 06:55:49 -0700 Subject: [PATCH] Fixed crash in failed rettype --- IDEHelper/Compiler/BfResolvedTypeUtils.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/IDEHelper/Compiler/BfResolvedTypeUtils.cpp b/IDEHelper/Compiler/BfResolvedTypeUtils.cpp index 60165bd2..0005f41a 100644 --- a/IDEHelper/Compiler/BfResolvedTypeUtils.cpp +++ b/IDEHelper/Compiler/BfResolvedTypeUtils.cpp @@ -3706,7 +3706,7 @@ int BfResolvedTypeSet::DoHash(BfTypeReference* typeRef, LookupContext* ctx, BfHa // Don't allow 'let' ctx->mModule->Fail("Invalid use of 'let'", typeRef); ctx->mFailed = true; - return 0; + return 0; } else if (auto retTypeTypeRef = BfNodeDynCastExact(typeRef)) { @@ -3715,7 +3715,12 @@ int BfResolvedTypeSet::DoHash(BfTypeReference* typeRef, LookupContext* ctx, BfHa if (ctx->mRootTypeRef != retTypeTypeRef) { auto type = ctx->mModule->ResolveTypeRef(retTypeTypeRef, BfPopulateType_Identity, GetResolveFlags(retTypeTypeRef, ctx, flags)); - if ((type != NULL) && (type->IsRef())) + if (type == NULL) + { + ctx->mFailed = true; + return 0; + } + if (type->IsRef()) type = type->GetUnderlyingType(); return Hash(type, ctx, flags, hashSeed); }