@@ -214,7 +214,7 @@ function Unparser:unparseStatement(statement, tabbing)
214214 push (" ," , self :optionalWhitespace (), exprcode );
215215 end
216216 local bodyCode = self :unparseBlock (statement .body , tabbing );
217- push (self :whitespaceIfNeeded2 (joinParts ( parts ) ), " do" , self :whitespaceIfNeeded (bodyCode , self :newline (true )),
217+ push (self :whitespaceIfNeeded2 (# parts > 0 and parts [ # parts ] or " " ), " do" , self :whitespaceIfNeeded (bodyCode , self :newline (true )),
218218 bodyCode , self :newline (false ),
219219 self :whitespaceIfNeeded2 (bodyCode , self :tabs (tabbing , true )), " end" );
220220
@@ -228,14 +228,16 @@ function Unparser:unparseStatement(statement, tabbing)
228228 for i , eif in ipairs (statement .elseifs ) do
229229 exprcode = self :unparseExpression (eif .condition , tabbing );
230230 bodyCode = self :unparseBlock (eif .body , tabbing );
231- push (self :newline (false ), self :whitespaceIfNeeded2 (joinParts (parts ), self :tabs (tabbing , true )),
231+ local lastPart = # parts > 0 and parts [# parts ] or " " ;
232+ push (self :newline (false ), self :whitespaceIfNeeded2 (lastPart , self :tabs (tabbing , true )),
232233 " elseif" , self :whitespaceIfNeeded (exprcode ), exprcode , self :whitespaceIfNeeded2 (exprcode ),
233234 " then" , self :whitespaceIfNeeded (bodyCode , self :newline (true )), bodyCode );
234235 end
235236
236237 if (statement .elsebody ) then
237238 bodyCode = self :unparseBlock (statement .elsebody , tabbing );
238- push (self :newline (false ), self :whitespaceIfNeeded2 (joinParts (parts ), self :tabs (tabbing , true )),
239+ local lastPart = # parts > 0 and parts [# parts ] or " " ;
240+ push (self :newline (false ), self :whitespaceIfNeeded2 (lastPart , self :tabs (tabbing , true )),
239241 " else" , self :whitespaceIfNeeded (bodyCode , self :newline (true )), bodyCode );
240242 end
241243
0 commit comments