Make WordPress Core

Opened 4 weeks ago

Last modified 3 weeks ago

#64643 new defect (bug)

Remove some obsolete return by refs

Reported by: swissspidy's profile swissspidy Owned by:
Milestone: 7.0 Priority: normal
Severity: normal Version:
Component: General Keywords: has-patch
Focuses: coding-standards Cc:

Description

[21792] / #21839 removed some unnecessary return by reference usage in core. However, it did not properly remove the ampersands from the function signatures.

For example, the signature of wp_get_post_revision is still function wp_get_post_revision( &$post, $output = OBJECT, $filter = 'raw' ), which messes with static analysis.

I suggest auditing the usage, starting with the functions touched by that commit, and removing the ampersands where possible.

Change History (5)

This ticket was mentioned in PR #10941 on WordPress/wordpress-develop by @niravsherasiya7707.


4 weeks ago
#1

  • Keywords has-patch added; needs-patch removed

#2 @westonruter
4 weeks ago

  • Milestone changed from Future Release to 7.0

@westonruter commented on PR #10941:


4 weeks ago
#3

Take it or leave it, but Gemini CLI found some additional possibilities:

  • src/wp-admin/includes/class-wp-upgrader-skin.php

    diff --git a/src/wp-admin/includes/class-wp-upgrader-skin.php b/src/wp-admin/includes/class-wp-upgrader-skin.php
    index 831da3aeba..4c1615cdd2 100644
    a b class WP_Upgrader_Skin { 
    8383         *
    8484         * @param WP_Upgrader $upgrader
    8585         */
    86         public function set_upgrader( &$upgrader ) {
     86        public function set_upgrader( $upgrader ) {
    8787                if ( is_object( $upgrader ) ) {
    88                         $this->upgrader =& $upgrader;
     88                        $this->upgrader = $upgrader;
    8989                }
    9090                $this->add_strings();
    9191        }
  • src/wp-includes/class-wp-hook.php

    diff --git a/src/wp-includes/class-wp-hook.php b/src/wp-includes/class-wp-hook.php
    index cd6860c0f8..cf6f5aeaca 100644
    a b final class WP_Hook implements Iterator, ArrayAccess { 
    375375         *
    376376         * @since 4.7.0
    377377         *
    378          * @param array $args Arguments to pass to the hook callbacks. Passed by reference.
     378         * @param array $args Arguments to pass to the hook callbacks.
    379379         */
    380         public function do_all_hook( &$args ) {
     380        public function do_all_hook( $args ) {
    381381                $nesting_level                      = $this->nesting_level++;
    382382                $this->iterations[ $nesting_level ] = $this->priorities;
    383383
  • src/wp-includes/deprecated.php

    diff --git a/src/wp-includes/deprecated.php b/src/wp-includes/deprecated.php
    index 390d632492..897b1a48a3 100644
    a b function get_theme_data( $theme_file ) { 
    31113111 *
    31123112 * @param array $pages list of page objects
    31133113 */
    3114 function update_page_cache( &$pages ) {
     3114function update_page_cache( $pages ) {
    31153115        _deprecated_function( __FUNCTION__, '3.4.0', 'update_post_cache()' );
    31163116
    31173117        update_post_cache( $pages );
    function sticky_class( $post_id = null ) { 
    31773177 * @deprecated 3.5.0 Use get_post_ancestors()
    31783178 * @see get_post_ancestors()
    31793179 *
    3180  * @param WP_Post $post Post object, passed by reference (unused).
     3180 * @param WP_Post $post Post object (unused).
    31813181 */
    3182 function _get_post_ancestors( &$post ) {
     3182function _get_post_ancestors( $post ) {
    31833183        _deprecated_function( __FUNCTION__, '3.5.0' );
    31843184}
    31853185
  • src/wp-includes/nav-menu-template.php

    diff --git a/src/wp-includes/nav-menu-template.php b/src/wp-includes/nav-menu-template.php
    index d90fdfa806..29d8a03944 100644
    a b function wp_nav_menu( $args = array() ) { 
    324324 *
    325325 * @param array $menu_items The current menu item objects to which to add the class property information.
    326326 */
    327 function _wp_menu_item_classes_by_context( &$menu_items ) {
     327function _wp_menu_item_classes_by_context( $menu_items ) {
    328328        global $wp_query, $wp_rewrite;
    329329
    330330        $queried_object    = $wp_query->get_queried_object();
  • src/wp-includes/pomo/entry.php

    diff --git a/src/wp-includes/pomo/entry.php b/src/wp-includes/pomo/entry.php
    index e1b1c8f8c8..48c52384b1 100644
    a b if ( ! class_exists( 'Translation_Entry', false ) ) : 
    114114                 *
    115115                 * @param Translation_Entry $other Other translation entry.
    116116                 */
    117                 public function merge_with( &$other ) {
     117                public function merge_with( $other ) {
    118118                        $this->flags      = array_unique( array_merge( $this->flags, $other->flags ) );
    119119                        $this->references = array_unique( array_merge( $this->references, $other->references ) );
    120120                        if ( $this->extracted_comments !== $other->extracted_comments ) {
  • src/wp-includes/pomo/po.php

    diff --git a/src/wp-includes/pomo/po.php b/src/wp-includes/pomo/po.php
    index de1bc92064..594ad80f4e 100644
    a b if ( ! class_exists( 'PO', false ) ) : 
    486486                 * @param Translation_Entry $entry
    487487                 * @param string            $po_comment_line
    488488                 */
    489                 public function add_comment_to_entry( &$entry, $po_comment_line ) {
     489                public function add_comment_to_entry( $entry, $po_comment_line ) {
    490490                        $first_two = substr( $po_comment_line, 0, 2 );
    491491                        $comment   = trim( substr( $po_comment_line, 2 ) );
    492492                        if ( '#:' === $first_two ) {
  • src/wp-includes/pomo/translations.php

    diff --git a/src/wp-includes/pomo/translations.php b/src/wp-includes/pomo/translations.php
    index c4a9ba72d6..8d1a2183b9 100644
    a b if ( ! class_exists( 'Translations', false ) ) : 
    130130                 * @param Translation_Entry $entry Translation entry.
    131131                 * @return Translation_Entry|false Translation entry if it exists, false otherwise.
    132132                 */
    133                 public function translate_entry( &$entry ) {
     133                public function translate_entry( $entry ) {
    134134                        $key = $entry->key();
    135135                        return $this->entries[ $key ] ?? false;
    136136                }
    if ( ! class_exists( 'Translations', false ) ) : 
    220220                 *
    221221                 * @since 2.8.0
    222222                 *
    223                  * @param Translations $other Another Translation object, whose translations will be merged in this one (passed by reference).
     223                 * @param Translations $other Another Translation object, whose translations will be merged in this one.
    224224                 */
    225                 public function merge_with( &$other ) {
     225                public function merge_with( $other ) {
    226226                        foreach ( $other->entries as $entry ) {
    227227                                $this->entries[ $entry->key() ] = $entry;
    228228                        }
    if ( ! class_exists( 'Translations', false ) ) : 
    235235                 *
    236236                 * @param Translations $other
    237237                 */
    238                 public function merge_originals_with( &$other ) {
     238                public function merge_originals_with( $other ) {
    239239                        foreach ( $other->entries as $entry ) {
    240240                                if ( ! isset( $this->entries[ $entry->key() ] ) ) {
    241241                                        $this->entries[ $entry->key() ] = $entry;
  • src/wp-includes/post.php

    diff --git a/src/wp-includes/post.php b/src/wp-includes/post.php
    index f4b06958e0..cb7a91d56c 100644
    a b function get_page_hierarchy( $pages, $page_id = 0 ) { 
    63096309 * @see _page_traverse_name()
    63106310 *
    63116311 * @param int      $page_id  Page ID.
    6312  * @param array    $children Parent-children relations (passed by reference).
     6312 * @param array    $children Parent-children relations.
    63136313 * @param string[] $result   Array of page names keyed by ID (passed by reference).
    63146314 */
    6315 function _page_traverse_name( $page_id, &$children, &$result ) {
     6315function _page_traverse_name( $page_id, $children, &$result ) {
    63166316        if ( isset( $children[ $page_id ] ) ) {
    63176317                foreach ( (array) $children[ $page_id ] as $child ) {
    63186318                        $result[ $child->ID ] = $child->post_name;
    function _get_last_post_time( $timezone, $field, $post_type = 'any' ) { 
    76787678 *
    76797679 * @since 1.5.1
    76807680 *
    7681  * @param WP_Post[] $posts Array of post objects (passed by reference).
     7681 * @param WP_Post[] $posts Array of post objects.
    76827682 */
    7683 function update_post_cache( &$posts ) {
     7683function update_post_cache( $posts ) {
    76847684        if ( ! $posts ) {
    76857685                return;
    76867686        }
    function clean_post_cache( $post ) { 
    77627762 *
    77637763 * @since 1.5.0
    77647764 *
    7765  * @param WP_Post[] $posts             Array of post objects (passed by reference).
     7765 * @param WP_Post[] $posts             Array of post objects.
    77667766 * @param string    $post_type         Optional. Post type. Default 'post'.
    77677767 * @param bool      $update_term_cache Optional. Whether to update the term cache. Default true.
    77687768 * @param bool      $update_meta_cache Optional. Whether to update the meta cache. Default true.
    77697769 */
    7770 function update_post_caches( &$posts, $post_type = 'post', $update_term_cache = true, $update_meta_cache = true ) {
     7770function update_post_caches( $posts, $post_type = 'post', $update_term_cache = true, $update_meta_cache = true ) {
    77717771        // No point in doing all this work if we didn't match any posts.
    77727772        if ( ! $posts ) {
    77737773                return;

@niravsherasiya7707 commented on PR #10941:


3 weeks ago
#4

@westonruter Thanks, I have a plan to remove the ref passed parameter in phase-wise, based on the ticket. I have started with the changes done on mentioed changeset. Next, plan to scan the whole core codebase.

@niravsherasiya7707 commented on PR #10941:


3 weeks ago
#5

Note: E2E tests are failing for all the latest PRs.

Note: See TracTickets for help on using tickets.