Chris@13: setPass(new CallTimePassByReferencePass()); Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider invalidStatements Chris@13: * @expectedException \Psy\Exception\FatalErrorException Chris@13: */ Chris@13: public function testProcessStatementFails($code) Chris@13: { Chris@13: $this->parseAndTraverse($code); Chris@13: } Chris@13: Chris@13: public function invalidStatements() Chris@13: { Chris@13: return [ Chris@13: ['f(&$arg)'], Chris@13: ['$object->method($first, &$arg)'], Chris@13: ['$closure($first, &$arg, $last)'], Chris@13: ['A::b(&$arg)'], Chris@13: ]; Chris@13: } Chris@13: Chris@13: /** Chris@13: * @dataProvider validStatements Chris@13: */ Chris@13: public function testProcessStatementPasses($code) Chris@13: { Chris@13: $this->parseAndTraverse($code); Chris@13: $this->assertTrue(true); Chris@13: } Chris@13: Chris@13: public function validStatements() Chris@13: { Chris@13: return [ Chris@13: ['array(&$var)'], Chris@13: ['$a = &$b'], Chris@13: ['f(array(&$b))'], Chris@13: ]; Chris@13: } Chris@13: }