X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=vendor%2Fpsy%2Fpsysh%2Ftest%2FPsy%2FTest%2FCodeCleaner%2FImplicitReturnPassTest.php;fp=vendor%2Fpsy%2Fpsysh%2Ftest%2FPsy%2FTest%2FCodeCleaner%2FImplicitReturnPassTest.php;h=e6a1bdfe67ac810e88e33c5ccdea0fa0ca102f6d;hp=0000000000000000000000000000000000000000;hb=eba34333e3c89f208d2f72fa91351ad019a71583;hpb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae diff --git a/vendor/psy/psysh/test/Psy/Test/CodeCleaner/ImplicitReturnPassTest.php b/vendor/psy/psysh/test/Psy/Test/CodeCleaner/ImplicitReturnPassTest.php new file mode 100644 index 000000000..e6a1bdfe6 --- /dev/null +++ b/vendor/psy/psysh/test/Psy/Test/CodeCleaner/ImplicitReturnPassTest.php @@ -0,0 +1,96 @@ +setPass(new ImplicitReturnPass()); + } + + /** + * @dataProvider implicitReturns + */ + public function testProcess($from, $to) + { + $this->assertProcessesAs($from, $to); + } + + public function implicitReturns() + { + $values = array( + array('4', 'return 4;'), + array('foo()', 'return foo();'), + array('return 1', 'return 1;'), + ); + + $from = 'if (true) { 1; } elseif (true) { 2; } else { 3; }'; + $to = <<<'EOS' +if (true) { + return 1; +} elseif (true) { + return 2; +} else { + return 3; +} +return new \Psy\CodeCleaner\NoReturnValue(); +EOS; + $values[] = array($from, $to); + + $from = 'class A {}'; + $to = <<<'EOS' +class A +{ +} +return new \Psy\CodeCleaner\NoReturnValue(); +EOS; + $values[] = array($from, $to); + + $from = <<<'EOS' +switch (false) { + case 0: + 0; + case 1: + 1; + break; + case 2: + 2; + return; +} +EOS; + $to = <<<'EOS' +switch (false) { + case 0: + 0; + case 1: + return 1; + break; + case 2: + 2; + return; +} +return new \Psy\CodeCleaner\NoReturnValue(); +EOS; + $values[] = array($from, $to); + + if (version_compare(PHP_VERSION, '5.4', '<')) { + $values[] = array('exit()', 'die;'); + } else { + $values[] = array('exit()', 'exit;'); + } + + return $values; + } +}