@@ -369,7 +369,8 @@ impl<'a> Formatter<'a> {
369369 ] ;
370370
371371 const ADD_WHITESPACE_BETWEEN : & [ TokenKind ] = & [ TokenKind :: CloseParen , TokenKind :: Reserved ] ;
372-
372+ const BEFORE_ARRAY : & [ TokenKind ] =
373+ & [ TokenKind :: CloseParen , TokenKind :: Word , TokenKind :: Reserved ] ;
373374 let inlined = self . inline_block . begin_if_possible ( self . tokens , self . index ) ;
374375 let previous_non_whitespace_token = self . previous_non_whitespace_token ( 1 ) ;
375376 let fold_in_top_level = !inlined
@@ -387,13 +388,16 @@ impl<'a> Formatter<'a> {
387388 // Take out the preceding space unless there was whitespace there in the original query
388389 // or another opening parens or line comment
389390 let previous_token = self . previous_token ( 1 ) ;
390- if previous_token. is_none ( )
391- || !PRESERVE_WHITESPACE_FOR . contains ( & previous_token. unwrap ( ) . kind )
391+ if previous_token. is_none_or ( |t| !PRESERVE_WHITESPACE_FOR . contains ( & t. kind ) )
392+ || previous_non_whitespace_token
393+ . is_some_and ( |t| token. value == "[" && BEFORE_ARRAY . contains ( & t. kind ) )
392394 {
393395 self . trim_spaces_end ( query) ;
394396 }
395397
396- if previous_non_whitespace_token. is_some_and ( |t| ADD_WHITESPACE_BETWEEN . contains ( & t. kind ) ) {
398+ if previous_non_whitespace_token
399+ . is_some_and ( |t| token. value != "[" && ADD_WHITESPACE_BETWEEN . contains ( & t. kind ) )
400+ {
397401 self . trim_spaces_end ( query) ;
398402 query. push ( ' ' ) ;
399403 }
0 commit comments