Skip to content

Return typehints in interfaces are not reported as T_RETURN_TYPE #854

@ondrejmirtes

Description

@ondrejmirtes
interface Foo
{

    public function doFoo($param):Foo;

    public function doBar($param):\Bar;

    public function doBaz($param):\Foo\Bar;

    public function dooFoo($param):  Foo;

    public function dooBar($param):  \Bar;

    public function dooBaz($param):  \Foo\Bar;

}

In this case, these tokens are reported as T_STRING, not T_RETURN_TYPE:

Foo
Bar
Bar
Foo
Bar
Bar

I expect consistent behaviour with this codesnippet, where the above-mentioned types are reported as T_RETURN_TYPE:

class FooBar implements Foo
{

    public function doFoo($param):Foo
    {

    }

    public function doBar($param):\Bar
    {

    }

    public function doBaz($param):\Foo\Bar
    {

    }

    public function dooFoo($param):  Foo
    {

    }

    public function dooBar($param):  \Bar
    {

    }

    public function dooBaz($param):  \Foo\Bar
    {

    }

}

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