diff --git a/src/dfmt.d b/src/dfmt.d index 549d17d..20c414e 100644 --- a/src/dfmt.d +++ b/src/dfmt.d @@ -428,8 +428,11 @@ private: else if (!assumeSorted(astInformation.caseEndLocations) .equalRange(current.index).empty) { - if (!(peekIs(tok!"case") || peekIs(tok!"default") || peekIsLabel())) + if (!(peekIs(tok!"case", false) || peekIs(tok!"default", false) + || peekIs(tok!"}") || peekIsLabel())) + { indentLevel++; + } writeToken(); newline(); } @@ -843,8 +846,8 @@ private: writeToken(); write(" "); } - else if (peekIs(tok!"case") || peekIs(tok!"default") - || peekIs(tok!"}") || peekIsLabel()) + else if (peekIs(tok!"case", false) || peekIs(tok!"default", false) + || peekIs(tok!"}", false) || peekIsLabel()) { indentLevel = l; formatStep(); diff --git a/tests/issue0049.d b/tests/issue0049.d new file mode 100644 index 0000000..ec690e3 --- /dev/null +++ b/tests/issue0049.d @@ -0,0 +1,12 @@ +void main(string[] args) +{ + switch (value) + { + case 0: + return null; + case 1: + // Indented comment + /* fall through */ + default: + } +} diff --git a/tests/issue0049.d.ref b/tests/issue0049.d.ref new file mode 100644 index 0000000..517fab4 --- /dev/null +++ b/tests/issue0049.d.ref @@ -0,0 +1,12 @@ +void main(string[] args) +{ + switch (value) + { + case 0: + return null; + case 1: + // Indented comment + /* fall through */ + default: + } +}