1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-07-04 15:26:00 +02:00

Fixes anonymous type formatting

This commit is contained in:
Brian Fiete 2025-02-23 06:45:13 -08:00
parent b3cf2a0d04
commit 546c4d7e7e
3 changed files with 21 additions and 10 deletions

View file

@ -1728,12 +1728,17 @@ void BfPrinter::Visit(BfPointerTypeRef* ptrType)
void BfPrinter::Visit(BfNullableTypeRef* ptrType) void BfPrinter::Visit(BfNullableTypeRef* ptrType)
{ {
Visit((BfAstNode*) ptrType); Visit((BfAstNode*)ptrType);
VisitChild(ptrType->mElementType); VisitChild(ptrType->mElementType);
VisitChild(ptrType->mQuestionToken); VisitChild(ptrType->mQuestionToken);
} }
void BfPrinter::Visit(BfInlineTypeReference* typeRef)
{
VisitChild(typeRef->mTypeDeclaration);
}
void BfPrinter::Visit(BfVariableDeclaration* varDecl) void BfPrinter::Visit(BfVariableDeclaration* varDecl)
{ {
//Visit(varDecl->ToBase()); //Visit(varDecl->ToBase());
@ -2901,6 +2906,7 @@ void BfPrinter::Visit(BfFieldDeclaration* fieldDeclaration)
ExpectSpace(); ExpectSpace();
if (isEnumDecl) if (isEnumDecl)
mNextStateModify.mExpectingSpace = false; mNextStateModify.mExpectingSpace = false;
QueueVisitChild(fieldDeclaration->mTypeRef); QueueVisitChild(fieldDeclaration->mTypeRef);
ExpectSpace(); ExpectSpace();
QueueVisitChild(fieldDeclaration->mNameNode); QueueVisitChild(fieldDeclaration->mNameNode);

View file

@ -171,6 +171,7 @@ public:
virtual void Visit(BfDelegateTypeRef* typeRef) override; virtual void Visit(BfDelegateTypeRef* typeRef) override;
virtual void Visit(BfPointerTypeRef* typeRef) override; virtual void Visit(BfPointerTypeRef* typeRef) override;
virtual void Visit(BfNullableTypeRef* typeRef) override; virtual void Visit(BfNullableTypeRef* typeRef) override;
virtual void Visit(BfInlineTypeReference* typeRef) override;
virtual void Visit(BfVariableDeclaration* varDecl) override; virtual void Visit(BfVariableDeclaration* varDecl) override;
virtual void Visit(BfParameterDeclaration* paramDecl) override; virtual void Visit(BfParameterDeclaration* paramDecl) override;
virtual void Visit(BfTypeOfExpression* typeOfExpr) override; virtual void Visit(BfTypeOfExpression* typeOfExpr) override;

View file

@ -147,15 +147,15 @@ void BfReducer::MoveNode(BfAstNode* srcNode, BfAstNode* newOwner)
#ifdef BF_AST_HAS_PARENT_MEMBER #ifdef BF_AST_HAS_PARENT_MEMBER
srcNode->mParent = newOwner; srcNode->mParent = newOwner;
#endif #endif
int srcStart = srcNode->GetSrcStart(); int srcStart = srcNode->mSrcStart;
int srcEnd = srcNode->GetSrcEnd(); int srcEnd = srcNode->mSrcEnd;
if (srcStart < newOwner->GetSrcStart()) if (srcStart < newOwner->mSrcStart)
newOwner->SetSrcStart(srcStart); newOwner->mSrcStart = srcStart;
if (srcEnd > newOwner->GetSrcEnd()) if (srcEnd > newOwner->mSrcEnd)
newOwner->SetSrcEnd(srcEnd); newOwner->mSrcEnd = srcEnd;
} }
// Replaces prevNode with new node and adds prevNode to newNode's childrenj // Replaces prevNode with new node and adds prevNode to newNode's children
// It can be considered that newNode encapsulated prevNode. // It can be considered that newNode encapsulated prevNode.
void BfReducer::ReplaceNode(BfAstNode* prevNode, BfAstNode* newNode) void BfReducer::ReplaceNode(BfAstNode* prevNode, BfAstNode* newNode)
{ {
@ -8342,10 +8342,13 @@ bool BfReducer::CheckInlineTypeRefAttribute(BfAstNode* typeRef, BfAttributeDirec
} }
auto typeDecl = inlineTypeRef->mTypeDeclaration; auto typeDecl = inlineTypeRef->mTypeDeclaration;
typeDecl->mTriviaStart = attributes->mTriviaStart;
typeDecl->mSrcStart = attributes->mSrcStart; typeDecl->mSrcStart = attributes->mSrcStart;
typeDecl->mTriviaStart = typeDecl->mSrcStart;
typeDecl->mAttributes = attributes; typeDecl->mAttributes = attributes;
inlineTypeRef->mTriviaStart = attributes->mTriviaStart;
inlineTypeRef->mSrcStart = attributes->mSrcStart;
if ((typeDecl->mIgnoreDeclaration) && (IsNodeRelevant(typeDecl))) if ((typeDecl->mIgnoreDeclaration) && (IsNodeRelevant(typeDecl)))
typeDecl->mIgnoreDeclaration = false; typeDecl->mIgnoreDeclaration = false;
@ -11178,6 +11181,7 @@ void BfReducer::HandleTypeDeclaration(BfTypeDeclaration* typeDecl, BfAttributeDi
if (attributes != NULL) if (attributes != NULL)
{ {
MEMBER_SET(typeDecl, mAttributes, attributes); MEMBER_SET(typeDecl, mAttributes, attributes);
typeDecl->mTriviaStart = BF_MIN(typeDecl->mAttributes->mTriviaStart, attributes->mTriviaStart);
} }
if ((!IsNodeRelevant(deferredHeadNode, typeDecl)) && (!typeDecl->IsTemporary()) && (!findInitializer)) if ((!IsNodeRelevant(deferredHeadNode, typeDecl)) && (!typeDecl->IsTemporary()) && (!findInitializer))