From ddad5bd4923b7c05dbbfd926d3718a1c1939da98 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Mon, 12 Oct 2020 17:48:59 -0700 Subject: [PATCH] Support for expression-bodied indexers --- IDEHelper/Compiler/BfReducer.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/IDEHelper/Compiler/BfReducer.cpp b/IDEHelper/Compiler/BfReducer.cpp index 4b1d36f2..bd72c59c 100644 --- a/IDEHelper/Compiler/BfReducer.cpp +++ b/IDEHelper/Compiler/BfReducer.cpp @@ -6724,9 +6724,6 @@ BfAstNode* BfReducer::ReadTypeMember(BfAstNode* node, int depth, BfAstNode* defe mVisitorPos.MoveNext(); blockAfterIdx = mVisitorPos.mReadPos + 1; - auto block = ExpectBlockAfter(blockAfterPos); - if (block == NULL) - return indexerDeclaration; } else { @@ -6742,9 +6739,7 @@ BfAstNode* BfReducer::ReadTypeMember(BfAstNode* node, int depth, BfAstNode* defe // If we don't have a token afterwards then still treat it as a property for autocomplete purposes if ((typeRef != NULL) && ((block != NULL) || (tokenNode == NULL) || (isExprBodyProp))) - { - //mVisitorPos.mReadPos = blockAfterIdx; - + { if (propertyDeclaration == NULL) { if ((block == NULL) && (!isExprBodyProp)) @@ -6820,6 +6815,13 @@ BfAstNode* BfReducer::ReadTypeMember(BfAstNode* node, int depth, BfAstNode* defe return propertyDeclaration; } + else if (propertyDeclaration != NULL) + { + // Failure case + block = ExpectBlockAfter(blockAfterPos); + BF_ASSERT(block == NULL); + return propertyDeclaration; + } //nextNode = mVisitorPos.Get(mVisitorPos.mReadPos + 2); /*if (tokenNode == NULL)