,error_levels?:string[]}> */ public function providerValidCodeParse() { return [ 'typeAliasBeforeClass' => [ ' [ ' [ ' [ ' [ ' */ class Bar { public function foo() : void { $bar = /** @return TA */ function() { return ["hello"]; }; /** @var array */ $bat = [$bar(), $bar()]; foreach ($bat as $b) { echo $b[0]; } } } /** * @psalm-type _A=array{elt:int} * @param _A $p * @return _A */ function f($p) { /** @var _A */ $r = $p; return $r; }', ], ]; } /** * @return iterable */ public function providerInvalidCodeParse() { return [ 'invalidTypeAlias' => [ ' */ class A {}', 'error_message' => 'InvalidDocblock', ], 'typeAliasInObjectLike' => [ ' 'InvalidReturnStatement', ], ]; } }