Skip to content

Incorrect behavior of TypedPropertyFromAssignsRector #8177

@franmomu

Description

@franmomu

Bug Report

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

Minimal PHP Code Causing Issue

See https://getrector.com/demo/e9ab79bf-29b5-42a5-9db9-611cc7e671d3

<?php

use Reader;
use OtherReader;

final class DemoFile
{
    /** @var Reader|OtherReader|null */
    private $reader;
    
    /** @return Reader|OtherReader|null */
    public function getReader()
    {
        return $this->$reader;
    }
    
    public function test(): void
    {
        $this->reader = $this->getDefaultReader();
    }
    
    public function getDefaultReader(): Reader
    {
        return new Reader();
    }
    
    /** @param Reader|OtherReader|null $reader */
    public function setReader($reader)
    {
        $this->reader = $reader;
    }
}

Responsible rules

  • TypedPropertyFromAssignsRector

Expected Behavior

Rector should not add the ?Reader type since it could be Reader|OtherReader|null.

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