1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00

Allow anonymous 'using' fields

This commit is contained in:
Brian Fiete 2025-01-05 08:55:17 -08:00
parent 613f9c743a
commit 854122cb46
9 changed files with 323 additions and 256 deletions

View file

@ -6309,11 +6309,13 @@ BfFieldDeclaration* BfReducer::CreateFieldDeclaration(BfTokenNode* tokenNode, Bf
else
{
ReplaceNode(typeRef, fieldDeclaration);
fieldDeclaration->mTypeRef = typeRef;
fieldDeclaration->mNameNode = nameIdentifier;
fieldDeclaration->mTypeRef = typeRef;
fieldDeclaration->mInitializer = NULL;
MoveNode(fieldDeclaration->mNameNode, fieldDeclaration);
//mVisitorPos.MoveNext();
if (nameIdentifier != NULL)
{
fieldDeclaration->mNameNode = nameIdentifier;
MoveNode(fieldDeclaration->mNameNode, fieldDeclaration);
}
}
CheckMultiuseAttributeTypeRef(fieldDeclaration->mTypeRef);
@ -7407,7 +7409,7 @@ BfAstNode* BfReducer::ReadTypeMember(BfAstNode* node, bool declStarted, int dept
}
else if (auto nextToken = BfNodeDynCast<BfTokenNode>(nextNode))
{
if (nextToken->GetToken() == BfToken_Operator)
if (nextToken->mToken == BfToken_Operator)
{
auto operatorDecl = mAlloc->Alloc<BfOperatorDeclaration>();
BfDeferredAstSizedArray<BfParameterDeclaration*> params(operatorDecl->mParams, mAlloc);
@ -7493,7 +7495,7 @@ BfAstNode* BfReducer::ReadTypeMember(BfAstNode* node, bool declStarted, int dept
return operatorDecl;
}
else if (nextToken->GetToken() == BfToken_LParen)
else if (nextToken->mToken == BfToken_LParen)
{
Fail("Method return type expected", node);
@ -7505,6 +7507,10 @@ BfAstNode* BfReducer::ReadTypeMember(BfAstNode* node, bool declStarted, int dept
typeRef = NULL;
}
}
else if (nextToken->mToken == BfToken_Semicolon)
{
forceIsMethod = true;
}
}
if ((nameIdentifier != NULL) || (forceIsMethod) || (indexerThisToken != NULL))