1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-11 04:52:21 +02:00

Accidentally didn't require () for allocations

This commit is contained in:
Brian Fiete 2020-05-11 10:14:07 -07:00
parent 5de6373b99
commit 5928ac4e7e

View file

@ -7302,14 +7302,21 @@ BfObjectCreateExpression* BfReducer::CreateObjectCreateExpression(BfAstNode* all
if (typeRef == NULL) if (typeRef == NULL)
return objectCreateExpr; return objectCreateExpr;
bool isArray = false;
if (auto ptrType = BfNodeDynCast<BfPointerTypeRef>(typeRef)) if (auto ptrType = BfNodeDynCast<BfPointerTypeRef>(typeRef))
{ {
if (auto arrayType = BfNodeDynCast<BfArrayTypeRef>(ptrType->mElementType)) if (auto arrayType = BfNodeDynCast<BfArrayTypeRef>(ptrType->mElementType))
{ {
MEMBER_SET(objectCreateExpr, mStarToken, ptrType->mStarNode); MEMBER_SET(objectCreateExpr, mStarToken, ptrType->mStarNode);
typeRef = ptrType->mElementType; typeRef = ptrType->mElementType;
isArray = true;
} }
} }
else if (auto arrayType = BfNodeDynCast<BfArrayTypeRef>(typeRef))
{
isArray = true;
}
MEMBER_SET(objectCreateExpr, mTypeRef, typeRef); MEMBER_SET(objectCreateExpr, mTypeRef, typeRef);
@ -7324,16 +7331,28 @@ BfObjectCreateExpression* BfReducer::CreateObjectCreateExpression(BfAstNode* all
} }
MEMBER_SET(objectCreateExpr, mCloseToken, block->mCloseBrace); MEMBER_SET(objectCreateExpr, mCloseToken, block->mCloseBrace);
return objectCreateExpr; return objectCreateExpr;
}
if (isArray)
{
tokenNode = BfNodeDynCast<BfTokenNode>(mVisitorPos.GetNext());
if (tokenNode == NULL)
return objectCreateExpr;
if (tokenNode->GetToken() != BfToken_LParen)
return objectCreateExpr;
mVisitorPos.MoveNext();
} }
else
tokenNode = BfNodeDynCast<BfTokenNode>(mVisitorPos.GetNext()); {
// Note- if there WERE an LBracket here then we'd have an 'isArray' case. We pass this in here for
if (tokenNode == NULL) // error display purposes
return objectCreateExpr; tokenNode = ExpectTokenAfter(objectCreateExpr, BfToken_LParen, BfToken_LBracket);
if (tokenNode->GetToken() != BfToken_LParen) if (tokenNode == NULL)
return objectCreateExpr; return objectCreateExpr;
}
mVisitorPos.MoveNext();
MEMBER_SET(objectCreateExpr, mOpenToken, tokenNode); MEMBER_SET(objectCreateExpr, mOpenToken, tokenNode);
BfToken endToken = (BfToken)(tokenNode->GetToken() + 1); BfToken endToken = (BfToken)(tokenNode->GetToken() + 1);