Skip to content

StaticCallToMethodCallRector dont consider parent class constructor #9071

@parth391

Description

@parth391

Bug Report

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

Minimal PHP Code Causing Issue

See https://getrector.com/demo/2136fc0d-2973-409e-89c1-0a7ba83ad24f

<?php

use Illuminate\Support\Facades\App;
use Illuminate\Http\Request;
use Illuminate\Http\Resources\MissingValue;

class JsonResource
{
    public $resource;

    public function __construct($resource)
    {
        $this->resource = $resource;
    }
}

final class Card extends JsonResource
{
    public function toArray(
        Request $request,
    ): array {
        return [
            'user_id' => $this->user_id ?? App::get(MissingValue::class),
        ];
    }
}

Responsible rules

  • StaticCallToMethodCallRector

Expected Behavior

  <?php

  use Illuminate\Http\Request;
  use Illuminate\Http\Resources\MissingValue;

  class JsonResource
  {
      public $resource;

      public function __construct($resource)
      {
          $this->resource = $resource;
      }
  }

  final class Card extends JsonResource
  {
      public function __construct($resource, private readonly \Illuminate\Foundation\Application $application)
      {
      }
      public function toArray(
          Request $request,
      ): array {
          return [
              'user_id' => $this->user_id ?? $this->application->get(MissingValue::class),
          ];
      }
  }

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