setPass(new EmptyArrayDimFetchPass()); } /** * @dataProvider invalidStatements */ public function testProcessInvalidStatement($code) { $this->expectException(\Psy\Exception\FatalErrorException::class); $this->parseAndTraverse($code); $this->fail(); } public function invalidStatements() { return [ ['$foo[]'], ['echo $foo[]'], ['${$foo}[]'], ['array_pop($this->foo[])'], ['$foo[] = $bar[]'], ]; } /** * @dataProvider validStatements */ public function testProcessValidStatement($code) { $this->parseAndTraverse($code); $this->assertTrue(true); } public function validStatements() { $data = [ ['$foo[] = "bar"'], ['$this->foo[] = 1'], ['$foo->{$bar}[] = 1'], ['foreach ($bar as $foo[]) {}'], ['$bar = &$foo[]'], ['$foo[]["bar"] = "baz"'], ]; return $data; } }