Skip to content

Incorrect behavior of combined LongArrayToShortArrayRector, SensitiveConstantNameRector, AddParamBasedOnParentClassMethodRector #8153

@klimslim

Description

@klimslim

Bug Report

Subject Details
Rector version last dev-main
Installed as composer dependency

Minimal PHP Code Causing Issue

See https://getrector.com/demo/dc7e8fb1-8243-4b93-b2aa-5a0b61d76dcd

<?php

class Foo{
    public function baz($default = array()) {
        return implode($default);
    }
}

class Bar extends Foo {
    public function baz() {
        return parent::baz();
    }
}

Responsible rules

  • LongArrayToShortArrayRector

  • SensitiveConstantNameRector

  • AddParamBasedOnParentClassMethodRector

Expected Behavior

@@ -1,13 +1,13 @@
 <?php
 
 class Foo{
-    public function baz($default = array()) {
+    public function baz($default = []) {
         return implode($default);
     }
 }
 
 class Bar extends Foo {
-    public function baz() {
+    public function baz($default = []) {
         return parent::baz();
     }
 }

But instead, a syntactically incorrect PHP code is produced:
https://3v4l.org/obEd9

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions