From 87ac9e65cffe158cbd07cfae870a45e66f8ca18c Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Fri, 31 Jan 2020 16:10:23 -0800 Subject: [PATCH] Fixed formatting of function/delegate types --- IDEHelper/Compiler/BfPrinter.cpp | 38 +++++++++++++++++++++++++------- IDEHelper/Compiler/BfPrinter.h | 1 + 2 files changed, 31 insertions(+), 8 deletions(-) diff --git a/IDEHelper/Compiler/BfPrinter.cpp b/IDEHelper/Compiler/BfPrinter.cpp index 3a920230..da7539c0 100644 --- a/IDEHelper/Compiler/BfPrinter.cpp +++ b/IDEHelper/Compiler/BfPrinter.cpp @@ -1094,13 +1094,35 @@ void BfPrinter::Visit(BfTupleTypeRef* typeRef) if (fieldNameNode != NULL) VisitChild(fieldNameNode); } + } + VisitChild(typeRef->mCloseParen); +} + +void BfPrinter::Visit(BfDelegateTypeRef* typeRef) +{ + Visit((BfAstNode*)typeRef); + + VisitChild(typeRef->mTypeToken); + ExpectSpace(); + VisitChild(typeRef->mReturnType); + VisitChild(typeRef->mAttributes); + VisitChild(typeRef->mOpenParen); + + for (int i = 0; i < (int)typeRef->mParams.size(); i++) + { + if (i > 0) + { + VisitChild(typeRef->mCommas[i - 1]); + ExpectSpace(); + } + VisitChild(typeRef->mParams[i]); } VisitChild(typeRef->mCloseParen); } void BfPrinter::Visit(BfPointerTypeRef* ptrType) { - Visit((BfAstNode*) ptrType); + Visit((BfAstNode*)ptrType); VisitChild(ptrType->mElementType); VisitChild(ptrType->mStarNode); @@ -1280,13 +1302,7 @@ void BfPrinter::Visit(BfObjectCreateExpression* newExpr) VisitChild(newExpr->mNewNode); ExpectSpace(); - - if (newExpr->mStarToken != NULL) - { - VisitChild(newExpr->mStarToken); - ExpectSpace(); - } - + VisitChild(newExpr->mTypeRef); VisitChild(newExpr->mOpenToken); @@ -1300,6 +1316,12 @@ void BfPrinter::Visit(BfObjectCreateExpression* newExpr) VisitChild(newExpr->mArguments[i]); } VisitChild(newExpr->mCloseToken); + + if (newExpr->mStarToken != NULL) + { + VisitChild(newExpr->mStarToken); + ExpectSpace(); + } } void BfPrinter::Visit(BfBoxExpression* boxExpr) diff --git a/IDEHelper/Compiler/BfPrinter.h b/IDEHelper/Compiler/BfPrinter.h index 6e755161..43c5b852 100644 --- a/IDEHelper/Compiler/BfPrinter.h +++ b/IDEHelper/Compiler/BfPrinter.h @@ -140,6 +140,7 @@ public: virtual void Visit(BfArrayTypeRef* typeRef) override; virtual void Visit(BfGenericInstanceTypeRef* typeRef) override; virtual void Visit(BfTupleTypeRef * typeRef) override; + virtual void Visit(BfDelegateTypeRef* typeRef) override; virtual void Visit(BfPointerTypeRef* typeRef) override; virtual void Visit(BfNullableTypeRef* typeRef) override; virtual void Visit(BfVariableDeclaration* varDecl) override;