Skip to content

Commit 7c962b2

Browse files
committed
Improve C++ case printing
1 parent d3cee06 commit 7c962b2

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

lib/PrintAsClang/DeclAndTypePrinter.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -394,16 +394,17 @@ class DeclAndTypePrinter::Implementation
394394
owningPrinter.interopContext);
395395
printer.printValueTypeDecl(ED, /*bodyPrinter=*/[&]() {
396396
ClangSyntaxPrinter syntaxPrinter(os);
397-
os << " enum class cases { ";
397+
os << " enum class cases {";
398398
llvm::interleaveComma(
399399
ED->getAllCases(), os, [&](const EnumCaseDecl *caseDecl) {
400400
llvm::interleaveComma(caseDecl->getElements(), os,
401401
[&](const EnumElementDecl *elementDecl) {
402+
os << "\n ";
402403
syntaxPrinter.printIdentifier(
403404
elementDecl->getNameStr());
404405
});
405406
});
406-
os << " };\n";
407+
os << "\n };\n";
407408
});
408409
os << outOfLineDefinitions;
409410
outOfLineDefinitions.clear();

test/Interop/SwiftToCxx/enums/swift-enum-cases-in-cxx.swift

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,26 @@ public enum EnumCaseIsCxxKeyword {
2222
}
2323

2424
// CHECK: class EnumCaseIsCxxKeyword final {
25-
// CHECK: enum class cases { first, second, const_ };
25+
// CHECK: enum class cases {
26+
// CHECK-NEXT: first,
27+
// CHECK-NEXT: second,
28+
// CHECK-NEXT: const_
29+
// CHECK-NEXT: };
2630

2731
// CHECK: class EnumCaseIsSwiftKeyword final {
28-
// CHECK: enum class cases { first, protocol };
32+
// CHECK: enum class cases {
33+
// CHECK-NEXT: first,
34+
// CHECK-NEXT: protocol
35+
// CHECK-NEXT: };
2936

3037
// CHECK: class EnumMultipleElementsInSingleCase final {
31-
// CHECK: enum class cases { first, second };
38+
// CHECK: enum class cases {
39+
// CHECK-NEXT: first,
40+
// CHECK-NEXT: second
41+
// CHECK-NEXT: };
3242

3343
// CHECK: class EnumSingleElementInSingleCase final {
34-
// CHECK: enum class cases { first, second };
44+
// CHECK: enum class cases {
45+
// CHECK-NEXT: first,
46+
// CHECK-NEXT: second
47+
// CHECK-NEXT: };

0 commit comments

Comments
 (0)