diff --git a/IDEHelper/Compiler/BfReducer.cpp b/IDEHelper/Compiler/BfReducer.cpp index 316dde6d..87b263c4 100644 --- a/IDEHelper/Compiler/BfReducer.cpp +++ b/IDEHelper/Compiler/BfReducer.cpp @@ -4564,6 +4564,8 @@ BfTypeReference* BfReducer::DoCreateTypeRef(BfAstNode* firstNode, CreateTypeRefF { if (auto memberReferenceExpression = BfNodeDynCast(firstNode)) { + SetAndRestoreValue prevSkipCurrentNodeAssert(mSkipCurrentNodeAssert, true); + auto qualifiedTypeRef = mAlloc->Alloc(); ReplaceNode(firstNode, qualifiedTypeRef); BF_ASSERT(memberReferenceExpression->mTarget != NULL); @@ -4574,6 +4576,8 @@ BfTypeReference* BfReducer::DoCreateTypeRef(BfAstNode* firstNode, CreateTypeRefF MEMBER_SET(qualifiedTypeRef, mLeft, leftTypeRef); } MEMBER_SET(qualifiedTypeRef, mDot, memberReferenceExpression->mDotToken); + if (memberReferenceExpression->mDotToken->mToken == BfToken_DotDot) + Fail("Invalid use of '..' in type reference", memberReferenceExpression->mDotToken); if (memberReferenceExpression->mMemberName != NULL) { MoveNode(memberReferenceExpression->mMemberName, memberReferenceExpression);