Skip to content

Final classes should bypass static check #3120

@muglug

Description

@muglug

Bug report

<?php

class A {
    /** @return static */
    public static function getInstance() {
		$class = static::class;
        return new $class();
    }
}

final class AChild extends A {
    public static function getInstance() {
        return new AChild();
    }
}

Expected: no issue
Actual: Method AChild::getInstance() should return static(AChild) but returns AChild

https://phpstan.org/r/2c338741-4eae-443a-b677-e832a81ca29a

Slightly related to #3118

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions