1111 * @package wp-cli
1212 */
1313abstract class CommandWithTranslation extends WP_CLI_Command {
14+ /**
15+ * @var string
16+ */
1417 protected $ obj_type ;
1518
19+ /**
20+ * @var string[]
21+ */
1622 protected $ obj_fields ;
1723
1824 /**
1925 * Callback to sort array by a 'language' key.
26+ *
27+ * @param array{language: string, english_name: string, native_name: string, updated: string} $a
28+ * @param array{language: string, english_name: string, native_name: string, updated: string} $b
2029 */
2130 protected function sort_translations_callback ( $ a , $ b ) {
2231 return strnatcasecmp ( $ a ['language ' ], $ b ['language ' ] );
@@ -66,7 +75,7 @@ public function update( $args, $assoc_args ) {
6675 $ plugins = get_plugins ( '/ ' . $ update ->slug );
6776
6877 /**
69- * @var array{Name: string}> $plugin_data
78+ * @var array{Name: string} $plugin_data
7079 */
7180 $ plugin_data = array_shift ( $ plugins );
7281 $ name = $ plugin_data ['Name ' ];
@@ -115,6 +124,8 @@ public function update( $args, $assoc_args ) {
115124 */
116125 $ upgrader_instance = Utils \get_upgrader ( $ upgrader );
117126
127+ // Wrong docblock in core.
128+ // @phpstan-ignore argument.type
118129 $ result = $ upgrader_instance ->upgrade ( $ update );
119130
120131 $ results [] = $ result ;
@@ -157,7 +168,7 @@ public function update( $args, $assoc_args ) {
157168 *
158169 * @see wp_get_translation_updates()
159170 *
160- * @return array
171+ * @return array<object{type: string, slug: string, language: string}&\stdClass>
161172 */
162173 protected function get_translation_updates () {
163174 $ available = $ this ->get_installed_languages ();
@@ -202,7 +213,7 @@ protected function get_translation_updates() {
202213 $ updates = array ();
203214
204215 /**
205- * @var object{translations: array} $transient
216+ * @var object{translations: list< array{type: string, slug: string, language: string}> } $transient
206217 */
207218 $ transient = get_site_transient ( $ transient );
208219
@@ -214,6 +225,10 @@ protected function get_translation_updates() {
214225 $ updates [] = (object ) $ translation ;
215226 }
216227
228+ /**
229+ * @var array<object{type: string, slug: string, language: string}&\stdClass> $updates
230+ */
231+
217232 return $ updates ;
218233 }
219234
@@ -376,6 +391,8 @@ protected function get_all_languages( $slug = null ) {
376391 *
377392 * @param array $assoc_args Parameters passed to command. Determines formatting.
378393 * @return Formatter
394+ *
395+ * @phpstan-ignore missingType.iterableValue
379396 */
380397 protected function get_formatter ( &$ assoc_args ) {
381398 return new Formatter ( $ assoc_args , $ this ->obj_fields , $ this ->obj_type );
0 commit comments