Skip to content

Commit 701277e

Browse files
committed
Allow SourceEntityWalker to visit operator decls, so that they can get indented properly. rdar://25246628
1 parent 4bebead commit 701277e

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

lib/IDE/SourceEntityWalker.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ bool SemaAnnotator::walkToDeclPre(Decl *D) {
107107
if (!handleImports(Import))
108108
return false;
109109

110+
} else if (auto OpD = dyn_cast<OperatorDecl>(D)) {
111+
Loc = OpD->getLoc();
112+
if (Loc.isValid())
113+
NameLen = OpD->getName().getLength();
110114
} else {
111115
return true;
112116
}

test/SourceKit/CodeFormat/indent-basic.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ foo(a: [
1313
3: 3
1414
])
1515

16+
operator <> {
17+
x
18+
}
19+
1620
// RUN: %sourcekitd-test -req=format -line=1 -length=1 %s >%t.response
1721
// RUN: %sourcekitd-test -req=format -line=2 -length=1 %s >>%t.response
1822
// RUN: %sourcekitd-test -req=format -line=3 -length=1 %s >>%t.response
@@ -23,6 +27,7 @@ foo(a: [
2327
// RUN: %sourcekitd-test -req=format -line=8 -length=1 %s >>%t.response
2428
// RUN: %sourcekitd-test -req=format -line=9 -length=1 %s >>%t.response
2529
// RUN: %sourcekitd-test -req=format -line=13 -length=1 %s >>%t.response
30+
// RUN: %sourcekitd-test -req=format -line=17 -length=1 %s >>%t.response
2631
// RUN: FileCheck --strict-whitespace %s <%t.response
2732

2833
// CHECK: key.sourcetext: "class Foo {"
@@ -36,3 +41,4 @@ foo(a: [
3641
// CHECK: key.sourcetext: "}"
3742
// "foo(a: ["
3843
// CHECK: key.sourcetext: " 3: 3"
44+
// CHECK: key.sourcetext: " x"

0 commit comments

Comments
 (0)