mirror of
https://github.com/dlang-community/dfmt.git
synced 2025-04-25 21:00:03 +03:00
Fix #81
This commit is contained in:
parent
62d0378740
commit
cb5ca659b1
3 changed files with 43 additions and 10 deletions
22
src/dfmt.d
22
src/dfmt.d
|
@ -292,7 +292,7 @@ private:
|
|||
}
|
||||
else if (isBlockHeader() && peekIs(tok!"(", false))
|
||||
{
|
||||
if (currentIs(tok!"if"))
|
||||
if (currentIs(tok!"if") && !peekBackIs(tok!"else"))
|
||||
ifIndents.push(tempIndent);
|
||||
writeToken();
|
||||
write(" ");
|
||||
|
@ -728,14 +728,16 @@ private:
|
|||
output.put("\n");
|
||||
justAddedExtraNewline = true;
|
||||
}
|
||||
if (config.braceStyle == BraceStyle.otbs)
|
||||
{
|
||||
if (index < tokens.length && currentIs(tok!"else"))
|
||||
write(" ");
|
||||
}
|
||||
if (config.braceStyle == BraceStyle.otbs && currentIs(tok!"else"))
|
||||
write(" ");
|
||||
index++;
|
||||
if (peekIs(tok!"case") || peekIs(tok!"default"))
|
||||
indentLevel--;
|
||||
if (ifIndents.length >= 2 && ifIndents.top == tempIndent && !currentIs(tok!"else"))
|
||||
{
|
||||
ifIndents.pop();
|
||||
tempIndent = ifIndents.top();
|
||||
}
|
||||
newline();
|
||||
}
|
||||
}
|
||||
|
@ -1675,23 +1677,23 @@ State[] validMoves(const Token[] tokens, ref const State current,
|
|||
|
||||
struct FixedStack
|
||||
{
|
||||
void push(int i)
|
||||
void push(int i) pure nothrow
|
||||
{
|
||||
index = index == 255 ? index : index + 1;
|
||||
arr[index] = i;
|
||||
}
|
||||
|
||||
void pop()
|
||||
void pop() pure nothrow
|
||||
{
|
||||
index = index == 0 ? index : index - 1;
|
||||
}
|
||||
|
||||
int top()
|
||||
int top() const pure nothrow @property
|
||||
{
|
||||
return arr[index];
|
||||
}
|
||||
|
||||
size_t length()
|
||||
size_t length() const pure nothrow @property
|
||||
{
|
||||
return index;
|
||||
}
|
||||
|
|
23
tests/issue0081.d
Normal file
23
tests/issue0081.d
Normal file
|
@ -0,0 +1,23 @@
|
|||
unittest
|
||||
{
|
||||
if (0)
|
||||
if (0)
|
||||
{
|
||||
}
|
||||
else if (0)
|
||||
{
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
doSomething();
|
||||
}
|
||||
|
||||
unittest
|
||||
{
|
||||
if (0)
|
||||
if (0)
|
||||
{
|
||||
}
|
||||
doSomething();
|
||||
}
|
8
tests/issue0081.d.ref
Normal file
8
tests/issue0081.d.ref
Normal file
|
@ -0,0 +1,8 @@
|
|||
unittest
|
||||
{
|
||||
if (0)
|
||||
if (0)
|
||||
{
|
||||
}
|
||||
doSomething();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue