Skip to content

Commit 226bfaa

Browse files
committed
refactor(CodePrinter): simplify printing logic by removing redundant indentation calls and enhancing attribute handling
1 parent 7623a49 commit 226bfaa

2 files changed

Lines changed: 15 additions & 20 deletions

File tree

lib/ASTPrinter/CodePrinter.cpp

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ class CodePrinter : public ASTVisitor<CodePrinter> {
4747
/// @param node The FunctionDecl node to print
4848
void visitFunctionDecl(FunctionDecl *node)
4949
{
50-
printIndent();
5150
printDeclPrefix(node);
5251

5352
_out << "func " << node->getName();
@@ -69,7 +68,6 @@ class CodePrinter : public ASTVisitor<CodePrinter> {
6968
/// @param node The StructDecl node to print
7069
void visitStructDecl(StructDecl *node)
7170
{
72-
printIndent();
7371
printDeclPrefix(node);
7472

7573
_out << "struct " << node->getName() << " {\n";
@@ -92,7 +90,6 @@ class CodePrinter : public ASTVisitor<CodePrinter> {
9290
/// @param node The EnumDecl node to print
9391
void visitEnumDecl(EnumDecl *node)
9492
{
95-
printIndent();
9693
printDeclPrefix(node);
9794

9895
_out << "enum " << node->getName() << " {\n";
@@ -115,9 +112,7 @@ class CodePrinter : public ASTVisitor<CodePrinter> {
115112
/// @param node The FieldDecl node to print
116113
void visitFieldDecl(FieldDecl *node)
117114
{
118-
printIndent();
119-
visitAttributeList(node->getAttributes());
120-
printVisibility(node->getVisibility());
115+
printDeclPrefix(node);
121116

122117
_out << node->getName();
123118

@@ -135,7 +130,7 @@ class CodePrinter : public ASTVisitor<CodePrinter> {
135130
/// @param node The ParamDecl node to print
136131
void visitParamDecl(ParamDecl *node)
137132
{
138-
visitAttributeList(node->getAttributes());
133+
visit(node->getAttributes());
139134
_out << node->getName() << ": ";
140135
printType(node->getType());
141136
}
@@ -201,7 +196,8 @@ class CodePrinter : public ASTVisitor<CodePrinter> {
201196
/// @param decl The declaration to print prefix for
202197
void printDeclPrefix(DeclBase *decl)
203198
{
204-
visitAttributeList(decl->getAttributes());
199+
printIndent();
200+
visit(decl->getAttributes());
205201
printVisibility(decl->getVisibility());
206202
}
207203

test/functional/run/print-interface.glu

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,34 @@
22
// RUN: gluc --print-interface %s | FileCheck -v %s
33
//
44

5+
// CHECK:private struct S {
6+
// CHECK-NEXT: private a: Int32
7+
// CHECK-NEXT: public b: Int32
8+
// CHECK-NEXT:}
59
struct S {
610
a: Int,
711
public b: Int,
812
}
913

14+
// CHECK:private enum E {
15+
// CHECK-NEXT: private A,
16+
// CHECK-NEXT: private B,
17+
// CHECK-NEXT: private C,
18+
// CHECK-NEXT:}
1019
enum E {
1120
A,
1221
B,
1322
C,
1423
}
1524

25+
// CHECK:private func foo(s: S, @unused e: E) -> Int32;
1626
func foo(s: S, @unused e: E) -> Int {
1727
let result = s.a + s.b;
1828
return result;
1929
}
2030

31+
// CHECK:@linkage_name("borabora") public func bar();
2132
@linkage_name("borabora")
2233
public func bar() -> Void {
2334
// do nothing
2435
}
25-
26-
// CHECK:private struct S {
27-
// CHECK-NEXT: private a: Int32
28-
// CHECK-NEXT: public b: Int32
29-
// CHECK-NEXT:}
30-
// CHECK-NEXT:private enum E {
31-
// CHECK-NEXT: private A,
32-
// CHECK-NEXT: private B,
33-
// CHECK-NEXT: private C,
34-
// CHECK-NEXT:}
35-
// CHECK-NEXT:private func foo(s: S, @unused e: E) -> Int32;
36-
// CHECK-NEXT:@linkage_name("borabora") public func bar();

0 commit comments

Comments
 (0)