@@ -117,44 +117,46 @@ public function process_token( $stackPtr ) {
117117 */
118118 protected function process_single_line_array ( $ stackPtr , $ opener , $ closer ) {
119119 $ array_items = PassedParameters::getParameters ( $ this ->phpcsFile , $ stackPtr );
120-
121120 if ( ( false === $ this ->allow_single_item_single_line_associative_arrays
122- && ! empty ( $ array_items ) )
121+ && empty ( $ array_items ) )
123122 || ( true === $ this ->allow_single_item_single_line_associative_arrays
124- && \count ( $ array_items ) > 1 )
123+ && \count ( $ array_items ) === 1 )
125124 ) {
126- /*
127- * Make sure the double arrow is for *this* array, not for a nested one.
128- */
129- $ array_has_keys = false ; // Reset before doing more detailed check.
130- foreach ( $ array_items as $ item ) {
131- if ( Arrays::getDoubleArrowPtr ( $ this ->phpcsFile , $ item ['start ' ], $ item ['end ' ] ) !== false ) {
132- $ array_has_keys = true ;
133- break ;
134- }
135- }
136-
137- if ( true === $ array_has_keys ) {
138- $ error = 'When an array uses associative keys, each value should start on %s. ' ;
139- if ( true === $ this ->allow_single_item_single_line_associative_arrays ) {
140- $ error = 'When a multi-item array uses associative keys, each value should start on %s. ' ;
141- }
125+ return ;
126+ }
142127
143- /*
144- * Just add a new line before the array closer.
145- * The multi-line array fixer will then fix the individual array items in the next fixer loop.
146- */
147- SpacesFixer::checkAndFix (
148- $ this ->phpcsFile ,
149- $ closer ,
150- $ this ->phpcsFile ->findPrevious ( \T_WHITESPACE , ( $ closer - 1 ), null , true ),
151- 'newline ' ,
152- $ error ,
153- 'AssociativeArrayFound ' ,
154- 'error '
155- );
128+ /*
129+ * Make sure the double arrow is for *this* array, not for a nested one.
130+ */
131+ $ array_has_keys = false ;
132+ foreach ( $ array_items as $ item ) {
133+ if ( Arrays::getDoubleArrowPtr ( $ this ->phpcsFile , $ item ['start ' ], $ item ['end ' ] ) !== false ) {
134+ $ array_has_keys = true ;
135+ break ;
156136 }
157137 }
138+
139+ if ( false === $ array_has_keys ) {
140+ return ;
141+ }
142+ $ error = 'When an array uses associative keys, each value should start on %s. ' ;
143+ if ( true === $ this ->allow_single_item_single_line_associative_arrays ) {
144+ $ error = 'When a multi-item array uses associative keys, each value should start on %s. ' ;
145+ }
146+
147+ /*
148+ * Just add a new line before the array closer.
149+ * The multi-line array fixer will then fix the individual array items in the next fixer loop.
150+ */
151+ SpacesFixer::checkAndFix (
152+ $ this ->phpcsFile ,
153+ $ closer ,
154+ $ this ->phpcsFile ->findPrevious ( \T_WHITESPACE , ( $ closer - 1 ), null , true ),
155+ 'newline ' ,
156+ $ error ,
157+ 'AssociativeArrayFound ' ,
158+ 'error '
159+ );
158160 }
159161
160162 /**
0 commit comments