*/ public function providerValidCodeParse(): array { return [ 'fixMismatchingDocblockParamType70' => [ ' [ ' [ 'fooFoo("hello");', 'fooFoo("hello");', '7.1', ['MissingParamType'], true, ], 'noStringParamTypeWithVariableCall' => [ 'fooFoo("hello"); (new C)->fooFoo("hello");', 'fooFoo("hello"); (new C)->fooFoo("hello");', '7.1', ['MissingParamType'], true, ], 'noStringParamTypeWithDocblockCall' => [ 'fooFoo($a); }', 'fooFoo($a); }', '7.1', ['MissingParamType'], true, ], 'noStringParamType56' => [ 'fooFoo("hello");', 'fooFoo("hello");', '5.6', ['MissingParamType'], true, ], 'noBoolParamTypeWithDefault' => [ 'fooFoo(false);', 'fooFoo(false);', '7.1', ['MissingParamType'], true, ], 'noStringParamTypeParent' => [ 'fooFoo("hello");', 'fooFoo("hello");', '7.1', ['MissingParamType'], true, ], 'stringParamTypeNoOp' => [ 'fooFoo("hello");', 'fooFoo("hello");', '7.1', ['MissingParamType'], true, ], 'addMissingByRefParamType' => [ 'foo($a);', 'foo($a);', '7.1', ['MissingParamType'], true, ], 'NamespacedParamNeeded' => [ 'foo($a);', 'foo($a);', '7.1', ['MissingParamType'], true, ], 'StaticParamForbidden' => [ 'foo($this->ret()); } public function ret(): static { return $this; } } class B extends A { } (new A)->test(); (new A)->test(); ', 'foo($this->ret()); } public function ret(): static { return $this; } } class B extends A { } (new A)->test(); (new A)->test(); ', '8.0', ['MissingParamType'], true, ], ]; } }