From 61a3328c5a97d41437147f9a50383dc86b0b1100 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sun, 5 Jan 2025 09:07:36 -0800 Subject: [PATCH] Proper error for anonymous type declarations in emitted code --- IDEHelper/Compiler/BfReducer.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/IDEHelper/Compiler/BfReducer.cpp b/IDEHelper/Compiler/BfReducer.cpp index fd3ea754..1646cae1 100644 --- a/IDEHelper/Compiler/BfReducer.cpp +++ b/IDEHelper/Compiler/BfReducer.cpp @@ -49,6 +49,7 @@ BfReducer::BfReducer() mMethodDepth = 0; mDocumentCheckIdx = 0; mTypeMemberNodeStart = NULL; + mCurTypeState = NULL; } bool BfReducer::IsSemicolon(BfAstNode* node) @@ -8260,7 +8261,13 @@ void BfReducer::InitAnonymousType(BfTypeDeclaration* typeDecl) memcpy(typeDecl->mAnonymousName, name.c_str(), len); if (mCurTypeState != NULL) + { mCurTypeState->mAnonymousTypeDecls.Add(typeDecl); + } + else + { + Fail("Type declarations are not allowed in emitted code", typeDecl); + } } bool BfReducer::CheckInlineTypeRefAttribute(BfAstNode* typeRef, BfAttributeDirective* attributes)