@@ -387,7 +387,8 @@ impl<'a> Formatter<'a> {
387387 ] ;
388388
389389 const ADD_WHITESPACE_BETWEEN : & [ TokenKind ] = & [ TokenKind :: CloseParen , TokenKind :: Reserved ] ;
390-
390+ const BEFORE_ARRAY : & [ TokenKind ] =
391+ & [ TokenKind :: CloseParen , TokenKind :: Word , TokenKind :: Reserved ] ;
391392 let inlined = self . inline_block . begin_if_possible ( self . tokens , self . index ) ;
392393 let previous_non_whitespace_token = self . previous_non_whitespace_token ( 1 ) ;
393394 let fold_in_top_level = !inlined
@@ -406,13 +407,16 @@ impl<'a> Formatter<'a> {
406407 // Take out the preceding space unless there was whitespace there in the original query
407408 // or another opening parens or line comment
408409 let previous_token = self . previous_token ( 1 ) ;
409- if previous_token. is_none ( )
410- || !PRESERVE_WHITESPACE_FOR . contains ( & previous_token. unwrap ( ) . kind )
410+ if previous_token. is_none_or ( |t| !PRESERVE_WHITESPACE_FOR . contains ( & t. kind ) )
411+ || previous_non_whitespace_token
412+ . is_some_and ( |t| token. value == "[" && BEFORE_ARRAY . contains ( & t. kind ) )
411413 {
412414 self . trim_spaces_end ( query) ;
413415 }
414416
415- if previous_non_whitespace_token. is_some_and ( |t| ADD_WHITESPACE_BETWEEN . contains ( & t. kind ) ) {
417+ if previous_non_whitespace_token
418+ . is_some_and ( |t| token. value != "[" && ADD_WHITESPACE_BETWEEN . contains ( & t. kind ) )
419+ {
416420 self . trim_spaces_end ( query) ;
417421 query. push ( ' ' ) ;
418422 }
0 commit comments