diff --git a/rules-tests/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector/Fixture/override_and_sensitive_parameters.php.inc b/rules-tests/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector/Fixture/override_and_sensitive_parameters.php.inc new file mode 100644 index 00000000..9636c1b7 --- /dev/null +++ b/rules-tests/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector/Fixture/override_and_sensitive_parameters.php.inc @@ -0,0 +1,45 @@ +isTrue($param)) { + return 5; + } + + return '10'; + } + + private function isTrue($value) { + return $value === true; + } +} + +?> +----- +isTrue($param)) { + return 5; + } + + return '10'; + } + + private function isTrue($value) { + return $value === true; + } +} + +?> \ No newline at end of file diff --git a/rules-tests/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector/Fixture/skip_already_newlined_override_and_sensitive_parameters.php.inc b/rules-tests/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector/Fixture/skip_already_newlined_override_and_sensitive_parameters.php.inc new file mode 100644 index 00000000..f54849e4 --- /dev/null +++ b/rules-tests/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector/Fixture/skip_already_newlined_override_and_sensitive_parameters.php.inc @@ -0,0 +1,22 @@ +isTrue($param)) { + return 5; + } + + return '10'; + } + + private function isTrue($value) { + return $value === true; + } +} diff --git a/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php b/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php index c20e2f00..a6f1a527 100644 --- a/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php +++ b/rules/DowngradePhp80/Rector/Class_/DowngradeAttributeToAnnotationRector.php @@ -34,7 +34,13 @@ final class DowngradeAttributeToAnnotationRector extends AbstractRector implemen /** * @var string[] */ - private const SKIPPED_ATTRIBUTES = ['Attribute', 'ReturnTypeWillChange', 'AllowDynamicProperties']; + private const SKIPPED_ATTRIBUTES = [ + 'Attribute', + 'ReturnTypeWillChange', + 'AllowDynamicProperties', + 'Override', + 'SensitiveParameter', + ]; /** * @var DowngradeAttributeToAnnotation[] @@ -114,7 +120,15 @@ public function refactor(Node $node): ?Node (string) $oldTokens[$attrGroup->getEndTokenPos() + 1], "\n" )) { - // add new line + if ($node instanceof Param && (isset($oldTokens[$attrGroup->getStartTokenPos() - 1]) && ! str_contains( + (string) $oldTokens[$attrGroup->getStartTokenPos() - 1], + "\n" + ))) { + // add new line before + $oldTokens[$attrGroup->getStartTokenPos() - 1]->text .= "\n"; + } + + // add new line after $oldTokens[$attrGroup->getEndTokenPos() + 1]->text = "\n" . $oldTokens[$attrGroup->getEndTokenPos() + 1]->text; $this->isDowngraded = true; }