Skip to content

Incorrect behavior of ReadOnlyClassRector #8058

@fvozar

Description

@fvozar

Bug Report

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

Minimal PHP Code Causing Issue

See https://getrector.com/demo/e997b6f2-3398-44a6-a278-b7f04b034705

<?php

class A {}


class B extends A
{
    
    public function __construct(
        private string $foo
    ) {}
    
    public function run()
    {
        return $this->foo;
    }
}

Responsible rules

  • ReadOnlyPropertyRector
  • ReadOnlyClassRector
  • FinalizeClassesWithoutChildrenRector

Result from Rector

- class B extends A
+ final readonly class B extends A

Expected Behavior

Class B shouldn't be readonly because PHP throws a "Fatal error: Readonly class B cannot extend non-readonly class A".

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