为什么PhpStorm使用yield允许函数返回null返回类型?

Ban*_*ple 5 php phpstorm

我使用PhpStorm在以下函数中自动添加了返回类型:

/**
 * @return \Generator|null
 */
function yieldTest(): ?\Generator
{
    yield from [1, 2, 3];
}
Run Code Online (Sandbox Code Playgroud)

我的问题:为什么在null选项旁边添加选项\Generator

我看不到此方法返回null的方法,所以我想知道我是在忽略工作中的某些东西yield还是这是PhpStorm的怪癖并且可以安全地放弃?

更新:

为了澄清-我问为什么PHPStorm生成的返回类型为?\Generator

我了解它随后被添加null到了php doc @return标签中,因为在上?

更新2:

这是生成额外位之前测试文件的完整代码:

class yieldTestClass
{
    public function yieldTest()
    {
        yield from [1, 2, 3];
    }
}
Run Code Online (Sandbox Code Playgroud)

这是从方法名称的上下文菜单中选择“声明返回类型”后的代码:

class yieldTestClass
{
    public function yieldTest(): ?\Generator
    {
        yield from [1, 2, 3];
    }
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是IDE中的本机功能还是来自插件,但如果是插件,我想它应该是https://plugins.jetbrains.com/plugin/7622-php-inspections-ea-扩展-

不管怎样,同样的问题。

Laz*_*One 1

该检查和预期修复(添加的代码)由Php Inspections (EA Extended) 插件提供。

请向插件作者报告:https ://github.com/kalessil/phpinspectionsea/issues