From c1843e1affa906190026ff577bfc992d8db8922b Mon Sep 17 00:00:00 2001 From: Vincent Langlet Date: Thu, 14 Nov 2019 15:26:10 +0100 Subject: [PATCH] :bug: Fix return in try catch --- .../Formatting/ConditionalReturnOrThrowSniff.php | 6 +++++- .../ConditionalReturnOrThrowUnitTest.inc | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/SymfonyCustom/Sniffs/Formatting/ConditionalReturnOrThrowSniff.php b/SymfonyCustom/Sniffs/Formatting/ConditionalReturnOrThrowSniff.php index 3f3c0e7..f8fbbf0 100644 --- a/SymfonyCustom/Sniffs/Formatting/ConditionalReturnOrThrowSniff.php +++ b/SymfonyCustom/Sniffs/Formatting/ConditionalReturnOrThrowSniff.php @@ -59,11 +59,15 @@ public function process(File $phpcsFile, $stackPtr) && isset($tokens[$opener]['scope_closer']) && $stackPtr <= $tokens[$opener]['scope_closer']) { $isClosure = $phpcsFile->findPrevious(T_CLOSURE, $stackPtr, $opener); - if (false !== $isClosure) { return; } + $isTryCatch = $phpcsFile->findPrevious([T_TRY, T_CATCH], $stackPtr, $opener); + if (false !== $isTryCatch) { + return; + } + $condition = $phpcsFile->findNext($this->conditions, $stackPtr + 1); if (false !== $condition) { diff --git a/SymfonyCustom/Tests/Formatting/ConditionalReturnOrThrowUnitTest.inc b/SymfonyCustom/Tests/Formatting/ConditionalReturnOrThrowUnitTest.inc index 978cd95..2cd8615 100644 --- a/SymfonyCustom/Tests/Formatting/ConditionalReturnOrThrowUnitTest.inc +++ b/SymfonyCustom/Tests/Formatting/ConditionalReturnOrThrowUnitTest.inc @@ -79,5 +79,20 @@ class Test $b = 2; } } + + public function ok() + { + if (false) { + try { + $a = 1; + } catch (NumberParseException $e) { + $a = 1; + + return; + } + } else { + $a = 1; + } + } }