From 288b99cc3c04dc0a220d36bf7335fb984d559bf4 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Wed, 21 Jul 2021 14:05:51 -0700 Subject: [PATCH] Fixed double-semicolon requirement on field dtors with compound stmt --- IDEHelper/Compiler/BfReducer.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/IDEHelper/Compiler/BfReducer.cpp b/IDEHelper/Compiler/BfReducer.cpp index 83015c12..c997f52b 100644 --- a/IDEHelper/Compiler/BfReducer.cpp +++ b/IDEHelper/Compiler/BfReducer.cpp @@ -5777,11 +5777,17 @@ BfFieldDeclaration* BfReducer::CreateFieldDeclaration(BfTokenNode* tokenNode, Bf return fieldDeclaration; } + bool hasSemicolon = false; + auto fieldDtor = CreateFieldDtorDeclaration(fieldDeclaration); if (fieldDtor != NULL) + { fieldDeclaration->mFieldDtor = fieldDtor; + if (fieldDtor->mBody != NULL) + hasSemicolon = !fieldDtor->mBody->IsMissingSemicolon(); + } - if (ExpectTokenAfter(fieldDeclaration, BfToken_Semicolon, BfToken_Comma) != NULL) + if ((!hasSemicolon) && (ExpectTokenAfter(fieldDeclaration, BfToken_Semicolon, BfToken_Comma) != NULL)) { // This gets taken later mVisitorPos.mReadPos--;