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:
parent
5de6373b99
commit
5928ac4e7e
1 changed files with 28 additions and 9 deletions
|
@ -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);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue