# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). PRs and issues are linked, so you can find more about it. Thanks to [ChangelogLinker](https://github.com/Symplify/ChangelogLinker). ## [v0.5.8] - 2019-07-21 ### Added - [#1691] [Architecture] Add `ConstructorInjectionToActionInjectionRector` - [#1689] [CodeQuality] Add `is_a` with string true - [#1754] [CodeQuality] Add `RemoveAlwaysTrueConditionSetInConstructorRector` - [#1690] [CodeQuality] Add `StrlenZeroToIdenticalEmptyStringRector` - [#1722] [CodingStyle] Add `EncapsedStringsToSprintfRector` - [#1717] [DeadCode] Add static, self and FQN type to `RemoveUnusedPrivateMethodRector` - [#1671] [Doctrine] Add registry to EM - [#1693] [Doctrine] Add `RemoveRepositoryFromEntityAnnotationRector` - [#1709] [FuncCall] Don't add `$result` to `parse_str` if second parameter is already set, Thanks to [@ravanscafi] - [#1720] [Generic] Add `ServiceGetterToConstructorInjectionRector` - [#1676] [PHP] Add scope limitation to `ArgumentAdderRector` for 3party non-existing params - [#1695] [PHPStan] Add `RemoveNonExistingVarAnnotationRector` - [#1696] [PHPUnit][Symfony] Add `AddMessageToEqualsResponseCodeRector` - [#1744] add reference support to `ParamTypeDeclarationRector` - [#1694] Add `rector.yaml` to `.dockerignore`, Thanks to [@aboks] - [#1731] Add failing test to demonstrate difference in import order, Thanks to [@holtkamp] - [#1674] Add Polyfil function support - [#1681] Add `parent::__construct()` to command dependencies ### Changed - [#1748] [CodingStyle] Improve `NewlineBeforeNewAssignSetRector` - [#1697] [DeadCode] Allow static constant call on `RemoveUnusedPrivateConstantRector`, Thanks to [@ravanscafi] - [#1719] Resolve anonymous class return type to object ### Fixed - [#1752] [CodeQuality] Fix `CompleteDynamicPropertiesRector` for dynamic property fetch - [#1718] [DeadCode] Fix too deep nesting in dead private property - [#1710] [MethodCall] Fix multilevel array subsets, Thanks to [@ravanscafi] - [#1715] [SOLID] Fix `PrivatizeLocalClassConstantRector` for in-class use - [#1698] Fix `NameTypeResolver` resolveFullyQualifiedName return type, Thanks to [@ravanscafi] - [#1684] fix new phpstan reports - [#1702] Fixed some issues for `RemoveZeroAndOneBinaryRector`, Thanks to [@jeroensmit] - [#1703] Fixed unintended removal of properties when used inside a trait, Thanks to [@jeroensmit] - [#1704] Fixed failing unit test when `sys_get_temp_dir()` != '/tmp', Thanks to [@jeroensmit] - [#1738] Fix InjectAnnotationClassRector with aliases - [#1705] Fixed wrong naming of docs script in composer.json, Thanks to [@jeroensmit] - [#1712] Fix tests according to review and a few typos, Thanks to [@ravanscafi] - [#1673] Fix `InjectAnnotationClassRector` for `@var` case - [#1677] [Bugfix] `IsCountableRector` & `IsIterableRector` should first check method availability, Thanks to [@stloyd] - [#1686] [Bugfix] PHPDoc type-hint `resource` should not be used as PHP type-hint, Thanks to [@stloyd] - [#1739] [CodeStyle] Newline before assign - [#1716] [DeadCode] Keep array method call in `RemoveUnusedPrivateMethodRector` - [#1753] [DeadCode] Rector `RemoveDeadConstructorRector` should skip `private` method, Thanks to [@stloyd] - [#1687] [Symfony] Set few default common service names for Symfony App Analyzer, Thanks to [@stloyd] - [#1675] [Symfony] Make set symfony42 refactor get(...) in former container aware commands - [#1666] Skip session in `MultipleServiceGetToSetUpMethodRector` - [#1757] make SymfonyContainer factory configurable with "kernel_environment" parameter in rector.yaml - [#1707] Don't mess with lines between docblock comment and var type., Thanks to [@ravanscafi] - [#1699] Update composer scripts, Thanks to [@ravanscafi] - [#1755] make interface description PHPStorm compatible, so it will not break abstract method complete - [#1711] Do not mark injected properties as private when moved to constructor, Thanks to [@holtkamp] - [#1714] Cleanup - [#1721] skip `Illuminate\Support\Collection` magic for `CompleteDynamicPropertiesRector` - [#1725] Empty compacts are forbidden, keep signature by replacing with empty array, Thanks to [@ravanscafi] - [#1728] `is_real()` is deprecated instead of `is_float()`, Thanks to [@holtkamp] - [#1735] Consider reference symbol in docblock for param type declaration rector, Thanks to [@tigitz] - [#1736] Colorify neon files, Thanks to [@szepeviktor] - [#1737] Typo in Travis config, Thanks to [@szepeviktor] ### Removed - [#1679] [MakeCommandLazyRector] Remove duplicated check, Thanks to [@stloyd] - [#1701] Make sure parameter is not removed when a child class does use the parameter, Thanks to [@jeroensmit] - [#1723] Do not remove args when replacing to static calls, Thanks to [@ravanscafi] - [#1713] Remove `--with-style` in favour of mentioning ECS, Thanks to [@stloyd] ## [v0.5.7] - 2019-06-28 ### Fixed - [#1661] Minor phpdoc fixes ## [v0.5.6] - 2019-06-28 ### Removed - [#1659] remove deprecated singly implemented autowire compiler pass ## [v0.5.6] - 2019-06-28 ### Added - [#1584] [DeadCode] Add `RemoveDeadZeroAndOneOperationRector` - [#1586] [DeadCode] Add `RemoveDelegatingParentCallRector` - [#1603] [DeadCode] Add `RemoveDuplicatedInstanceOfRector` - [#1656] [SymfonyPHPUnit] Add `MultipleServiceGetToSetUpMethodRector` - [#1589] Add assign ref support to `AddDefaultValueForUndefinedVariableRector` - [#1609] Add `ElasticSearchDSL` package, Thanks to [@shyim] - [#1611] Add rector for ShopRegistration, Thanks to [@shyim] - [#1615] add exclude to typical reported typos - [#1610] Add shopware version const rector, Thanks to [@shyim] - [#1640] Add `--rule` option to process only single rule from set - [#1641] Add test case for [#1630] ### Changed - [#1582] Rename "level" directory to "set" - [#1612] travis: allow PHP 7.4 ### Fixed - [#1619] [CodeQuality] Fix `__set`/`__get` case for `CompleteDynamicPropertiesRector` - [#1643] [CodingStyle] Fix extra slash in array simple types - [#1616] [DeadCode] Fix removed comment after return at `RemoveCodeAfterReturnRector` - [#1602] [Laravel] Fix missing method name in 5.7 - [#1645] [PHP] Fix `mktime` rename with args [closes [#1622]] - [#1647] [PHP] Fix `JsonThrowOnErrorRector` inter-args - [#1644] [PHP] Fix missed variadic on `ReflectionMethod::invoke()` [closes [#1625]] - [#1618] [PHP] Fix class signature over interface priority in `RemoveExtraParametersRector` - [#1642] [PHP] Fix `StringifyStrNeedlesRector` duplicated change - [#1617] [Symfony] Fix GetRequestRector overlap to non-controllers - [#1605] Fix Open Collective link for `FUNDING.yml`, Thanks to [@pxgamer] - [#1583] Fix CountOnNullRector for nullable and invalid property - [#1599] Fix `StringClassNameToClassConstantRector` for empty name [closes [#1596]] - [#1590] Fix nullable item in `ListSwapArrayOrderRector` - [#1631] Fix typo : rename `jsm-decouple.yaml` to `jms-decouple.yaml`, Thanks to [@gnutix] - [#1588] Fix foreach scope for `AddDefaultValueForUndefinedVariableRector` - [#1601] Fix trait skip in `RemoveParentCallWithoutParentRector` ### Changed - [#1587] [PHP] Skip list in `AddDefaultValueForUndefinedVariableRector` - [#1651] Update link to `UPGRADE.md 3.0`, Thanks to [@vasilvestre] - [#1581] use `STOP_TRAVERSAL` over exception - [#1525] [#1469] prototype github issue template, Thanks to [@funivan] ## [v0.5.5] - 2019-06-08 - [#1577] skip analysis of new anonymous classes in method call [closes [#1574]] ## [v0.5.4] - 2019-06-06 ### Added - [#1570] [DeadCode] Add `RemoveConcatAutocastRector` - [#1519] [Symfony] Add `MakeCommandLazyRector` - [#1568] [Symfony 4.3] Add `parent::__construct` to `EventDispatcher` - [#1562] add `CallableNodeTraverserTrait` ### Changed - [#1523] make RectorsFinder return consistent order by shorter names - [#1572] [Symfony 4.3] Improve event name and class flip - [#1548] Widen `PHPStan` version constraint to `~0.11.6`., Thanks to [@Aerendir] ### Fixed - [#1550] Fix `symfony/finder` 3.4 compact in `LevelOptionResolver` - [#1544] Fix phpdoc-parser BC break for generic multiline nodes - [#1569] Fix reporting of changed nodes - [#1559] Fix classname change for `FilterControllerEvent`, Thanks to [@keulinho] - [#1557] Fix scope overflow in `AddDefaultValueForUndefinedVariableRector` - [#1556] fix static method in reflection for `StaticCallOnNonStaticToInstanceCallRector` - [#1571] Fix anonymous class method return type resolving - [#1567] Fix `solid.yaml`, Thanks to [@Great-Antique] - [#1549] fix unescaped regular - [#1538] Don't remove aliases of classes with same name but different namespaces., Thanks to [@Aerendir] - [#1553] [CodeQuality] Skip collections `ForeachToInArrayRector` [closes [#1533]] - [#1524] Cover multiline in description-aware nodes [closes [#1522]] - [#1565] make `StringClassNameToClassConstantRector` case sensitive [closes [#1539]] - [#1545] Ensure Doctrine's `Collection`-like arrays are ignored., Thanks to [@Aerendir] - [#1554] optimize - [#1558] Do not call parent constructor of `AutowiredEventDispatcher` unless it exists, Thanks to [@cgkkevinr] - [#1561] make `RemoveUnusedAliasRector` take into account aliases that keep 2 classes with same short name explicit - [#1555] skip nullable array for `ArrayPropertyDefaultValueRector` [closes [#1542]] ## [v0.5.3] - 2019-06-01 ### Added - [#1520] [PHP] Add `is_countable` to `CountOnNull` ### Changed - [#1521] make `LevelOptionResolver` smarter + add `--set` alias to `--level` ## [v0.5.2] - 2019-05-31 ### Fixed - [#1510] [CodeQuality] Add trait and parent class support for `CompleteDynamicPropertiesRector` - [#1508] [CodeQuality] Fix unneeded return in `CallableThisArrayToAnonymousFunctionRector` - [#1509] [PHP] Fix `AddDefaultValueForUndefinedVariableRector` for static variable - [#1507] [PHP] Fix `BinaryOpBetweenNumberAndStringRector` for concat - [#1517] fix `RenameClassRector` to change only direct class names, not children - [#1511] fix `PHPStormVarAnnotationRector` for too nested var [closes [#1407]] - [#1513] Make Symfony 4.3 + phpdoc-parser 0.3.4 compatible - [#1506] Ensure `static` variables are considered as declared, Thanks to [@Aerendir] - [#1502] Test concatenation dot is ignored, Thanks to [@Aerendir] ## [v0.5.1] - 2019-05-30 ### Added - [#1496] [Symfony 4.3] Add class renames, method renames and added arguments ### Fixed - [#1493] Fix documentation minor mistake, Thanks to [@alterphp] ## [v0.5.0] - 2019-05-28 ### Added - [#1487] [Legacy] Remove singleton - [#1468] [MultipleClassFileToPsr4ClassesRector] Original file is deleted even if class matches filename, Thanks to [@JanMikes] - [#1424] [SplitStringClassConstantToClassConstFetchRector] Remove duplicated namespace separator, Thanks to [@mxr576] - [#1470] [PHP][CodingStyle] string class to ::class - [#1367] [DeadCode] Anonymous class implementing an interface doesn't respect interface signature, Thanks to [@pierredup] - [#1404] [TypeDeclaration] Create new set - [#1414] [PSR-4 Split] Split interfaces and traits as well, Thanks to [@JanMikes] - [#1416] [PHP 7.4] Spread array - [#1419] [CodeQuality] Add For to foreach - [#1443] [CodeQuality] Add CompactToVariablesRector - [#1488] 🎉[CodeQuality] Add CompleteDynamicPropertiesRector - [#1390] [CodeQuality] Add AndAssignsToSeparateLinesRector - [#1485] [CodingStyle] Add VarConstantCommentRector - [#1484] [CodingStyle] Add SplitDoubleAssignRector - [#1483] [CodingStyle] Add ArrayPropertyDefaultValueRector - [#1482] [CodingStyle] Add CatchExceptionNameMatchingTypeRector - [#1481] [CodingStyle] Add FollowRequireByDirRector - [#1480] [CodingStyle] Add ConsistentPregDelimiterRector - [#1447] [CodingStyle] add partial support already imported support to ImportFullyQualifiedNamesRector - [#1389] [DeadCode] Add RemoveAndTrueRector - [#1392] [DeadCode] Add RemoveDefaultArgumentValueRector - [#1451] [PHP] Add RemoveMissingCompactVariableRector - [#1418] [PHP-DI] Add php-di [@Inject] annotation import - [#1460] [Psr4] Add supprot for namespace less MultipleClassFileToPsr4ClassesRector - [#1486] [SOLID] Add AbstractChildlessUnusedClassesRector - [#1406] [TypeDeclaration] Add AddFunctionReturnTypeRector - [#1403] [Symfony 4.3] Add swapped dispatch() arguments for EventDispatcher - [#1429] Add missing end bracket at HowItWorks.md's sample, Thanks to [@sasezaki] - [#1430] Add working directory option, Thanks to [@ktomk] - [#1417] Add trait analysis without class dependency - [#1491] add JsonOutputFormatter - [#1492] Symplify 6 bump + add relative paths to JsonOutputFormatter - [#1410] [PHP 7.4] Add ClosureToArrowFunctionRector - [#1449] [PHP 7.1] Add BinaryOpBetweenNumberAndStringRector - [#1450] [PHP 7.1] Add float to BinaryOpBetweenNumberAndStringRector - [#1452] Add non-namespaced support to ImportFullyQualifiedNamesRector - [#1461] [supporŧ] add funding Github - news from Github Satellite - [#1478] composer: add authors - [#1382] Add support to rename classes and it's namespace, Thanks to [@JanMikes] - [#1377] Add function support to ImportFullyQualifiedNamesRector - [#1489] [backers] add Jan Votruba ### Changed - [#1412] [ImportFullyQualifiedNamesRector] Allow to opt-out from doc block modification, Thanks to [@mxr576] - [#1439] [PSR4] Improve MultipleClassFileToPsr4ClassesRector output - [#1477] introduce OutputFormatterCollector to allow extension of output formatters - [#1446] Narrow ArraySpreadInsteadOfArrayMergeRector to numeric-arrays only - [#1479] update to php-parser 4.2.2 ### Fixed - [#1395] Preserve file permissions when updating a file, Thanks to [@LeSuisse] - [#1397] [DeadCode] Various set fixes - [#1398] Fix travis for Laravel self-run - [#1391] fix ImportFullyQualifiedNamesRector on multiple files - [#1444] fix ReservedObjectRector for lowercased object - [#1471] fix deleting file that matches class name - [#1425] speedup RenameClassRector on doc comments - [#1464] do not override printing files with previous stmts if possible ### Removed - [#1415] Removed duplicated code, Thanks to [@DaveLiddament] ## [v0.4.12] - 2019-05-02 ### Added - [#1326] [CodingStyle] Add SplitStringClassConstantToClassConstFetchRector - [#1327] [CodingStyle] Add ImportFullyQualifiedNamesRector - [#1363] [PHP] Add AddDefaultValueForUndefinedVariableRector - [#1347] [RemovingStatic] Add new level - [#1333] Add PrivatizeLocalClassConstantRector to SOLID, Thanks to [@mxr576] - [#1362] [PHP 7.4] Add ReservedFnFunctionRector - [#1346] Add test case for [#1286] ### Changed - [#1323] allow Nette 3.0, Thanks to [@mimmi20] - [#1325] [DeadCode] Skip magic methods in RemoveUnusedParameterRector - [#1351] [DeadCode] Keep different case in RemoveDoubleAssignRector - [#1353] [DeadCode] Skip traits in RemoveUnusedPrivateMethodRector - [#1370] make ImportFullyQualifiedNamesRector take into account existing imports on combination of PHP and doc block - [#1354] Speedup tests by 90 % from 41 secs to 4 - [#1357] Tests improvements - [#1359] Notice file rectors on run ### Fixed - [#1369] [CodingStyle] ImportsInClassCollection fixes - [#1368] [CodingStyle] Fix ImportFullyQualifiedNamesRector for self imports - [#1365] [CodingStyle] Fix interface short name identical with class name in ImportFullyQualifiedNamesRector - [#1348] [DeadCode] Remove overriden fix - [#1352] [DeadCode] Fix RemoveUnusedPrivateMethodRector for self call - [#1350] [Laravel] Fix MinutesToSecondsInCacheRector DateTimeInterface argument - [#1361] [Symfony] Fix GetRequestRector for get non method calls - [#1375] Fix file removal in MultipleClassFileToPsr4ClassesRector - [#1320] [CakePHP]FIx rule for cakephp37, Thanks to [@o0h] - [#1331] Use `dev` as Symfony default env to fix issue [#1319], Thanks to [@BernhardWebstudio] ### Removed - [#1349] [DeadCode] Remove double ## [v0.4.11] - 2019-04-14 ### Added - [#1317] Add Changelog - [#1302] [Symfony 4.3] Add SimplifyWebTestCaseAssertionsRector - [#1302] [Symfony 4.3] Add `SimplifyWebTestCaseAssertionsRector` - [#1311] [CodingStyle] Add `SplitGroupedConstantsAndPropertiesRector` - [#1301] [PHPUnit] Add `RemoveExpectAnyFromMockRector` - [#1304] [SOLID] Add `PrivatizeLocalClassConstantRector` - [#1303] [SOLID] Add `FinalizeClassesWithoutChildrenRector` - [#1302] [Symfony 4.3] Add `SimplifyWebTestCaseAssertionsRector` ### Changed - [#1316] Merge collected nodes to ParsedNodesByType - [#1314] rename `Attribute` to `AttributeKey` to prevent duplicated names with other projects - [#1318] Update reference to drupal8-rector/drupal8-rector, Thanks to [@mxr576] - [#1316] Merge collected nodes to ParsedNodesByType ### Fixed - [#1305] [Symfony 3.0] Fix wrong indentation in symfony30.yaml, Thanks to [@Dodenis] [#1302]: https://github.com/rectorphp/rector/pull/1302 [#1314]: https://github.com/rectorphp/rector/pull/1314 [#1311]: https://github.com/rectorphp/rector/pull/1311 [#1305]: https://github.com/rectorphp/rector/pull/1305 [#1304]: https://github.com/rectorphp/rector/pull/1304 [#1303]: https://github.com/rectorphp/rector/pull/1303 [#1301]: https://github.com/rectorphp/rector/pull/1301 [@Dodenis]: https://github.com/Dodenis [#1318]: https://github.com/rectorphp/rector/pull/1318 [#1317]: https://github.com/rectorphp/rector/pull/1317 [#1316]: https://github.com/rectorphp/rector/pull/1316 [@mxr576]: https://github.com/mxr576 [#1375]: https://github.com/rectorphp/rector/pull/1375 [#1370]: https://github.com/rectorphp/rector/pull/1370 [#1369]: https://github.com/rectorphp/rector/pull/1369 [#1368]: https://github.com/rectorphp/rector/pull/1368 [#1365]: https://github.com/rectorphp/rector/pull/1365 [#1363]: https://github.com/rectorphp/rector/pull/1363 [#1362]: https://github.com/rectorphp/rector/pull/1362 [#1361]: https://github.com/rectorphp/rector/pull/1361 [#1359]: https://github.com/rectorphp/rector/pull/1359 [#1357]: https://github.com/rectorphp/rector/pull/1357 [#1354]: https://github.com/rectorphp/rector/pull/1354 [#1353]: https://github.com/rectorphp/rector/pull/1353 [#1352]: https://github.com/rectorphp/rector/pull/1352 [#1351]: https://github.com/rectorphp/rector/pull/1351 [#1350]: https://github.com/rectorphp/rector/pull/1350 [#1349]: https://github.com/rectorphp/rector/pull/1349 [#1348]: https://github.com/rectorphp/rector/pull/1348 [#1347]: https://github.com/rectorphp/rector/pull/1347 [#1346]: https://github.com/rectorphp/rector/pull/1346 [#1333]: https://github.com/rectorphp/rector/pull/1333 [#1331]: https://github.com/rectorphp/rector/pull/1331 [#1327]: https://github.com/rectorphp/rector/pull/1327 [#1326]: https://github.com/rectorphp/rector/pull/1326 [#1325]: https://github.com/rectorphp/rector/pull/1325 [#1323]: https://github.com/rectorphp/rector/pull/1323 [#1320]: https://github.com/rectorphp/rector/pull/1320 [#1319]: https://github.com/rectorphp/rector/pull/1319 [#1286]: https://github.com/rectorphp/rector/pull/1286 [@o0h]: https://github.com/o0h [@mimmi20]: https://github.com/mimmi20 [@BernhardWebstudio]: https://github.com/BernhardWebstudio [v0.4.11]: https://github.com/rectorphp/rector/compare/v0.4.11...v0.4.11 [#1492]: https://github.com/rectorphp/rector/pull/1492 [#1491]: https://github.com/rectorphp/rector/pull/1491 [#1489]: https://github.com/rectorphp/rector/pull/1489 [#1488]: https://github.com/rectorphp/rector/pull/1488 [#1487]: https://github.com/rectorphp/rector/pull/1487 [#1486]: https://github.com/rectorphp/rector/pull/1486 [#1485]: https://github.com/rectorphp/rector/pull/1485 [#1484]: https://github.com/rectorphp/rector/pull/1484 [#1483]: https://github.com/rectorphp/rector/pull/1483 [#1482]: https://github.com/rectorphp/rector/pull/1482 [#1481]: https://github.com/rectorphp/rector/pull/1481 [#1480]: https://github.com/rectorphp/rector/pull/1480 [#1479]: https://github.com/rectorphp/rector/pull/1479 [#1478]: https://github.com/rectorphp/rector/pull/1478 [#1477]: https://github.com/rectorphp/rector/pull/1477 [#1471]: https://github.com/rectorphp/rector/pull/1471 [#1470]: https://github.com/rectorphp/rector/pull/1470 [#1468]: https://github.com/rectorphp/rector/pull/1468 [#1464]: https://github.com/rectorphp/rector/pull/1464 [#1461]: https://github.com/rectorphp/rector/pull/1461 [#1460]: https://github.com/rectorphp/rector/pull/1460 [#1452]: https://github.com/rectorphp/rector/pull/1452 [#1451]: https://github.com/rectorphp/rector/pull/1451 [#1450]: https://github.com/rectorphp/rector/pull/1450 [#1449]: https://github.com/rectorphp/rector/pull/1449 [#1447]: https://github.com/rectorphp/rector/pull/1447 [#1446]: https://github.com/rectorphp/rector/pull/1446 [#1444]: https://github.com/rectorphp/rector/pull/1444 [#1443]: https://github.com/rectorphp/rector/pull/1443 [#1439]: https://github.com/rectorphp/rector/pull/1439 [#1430]: https://github.com/rectorphp/rector/pull/1430 [#1429]: https://github.com/rectorphp/rector/pull/1429 [#1425]: https://github.com/rectorphp/rector/pull/1425 [#1424]: https://github.com/rectorphp/rector/pull/1424 [#1419]: https://github.com/rectorphp/rector/pull/1419 [#1418]: https://github.com/rectorphp/rector/pull/1418 [#1417]: https://github.com/rectorphp/rector/pull/1417 [#1416]: https://github.com/rectorphp/rector/pull/1416 [#1415]: https://github.com/rectorphp/rector/pull/1415 [#1414]: https://github.com/rectorphp/rector/pull/1414 [#1412]: https://github.com/rectorphp/rector/pull/1412 [#1410]: https://github.com/rectorphp/rector/pull/1410 [#1406]: https://github.com/rectorphp/rector/pull/1406 [#1404]: https://github.com/rectorphp/rector/pull/1404 [#1403]: https://github.com/rectorphp/rector/pull/1403 [#1398]: https://github.com/rectorphp/rector/pull/1398 [#1397]: https://github.com/rectorphp/rector/pull/1397 [#1395]: https://github.com/rectorphp/rector/pull/1395 [#1392]: https://github.com/rectorphp/rector/pull/1392 [#1391]: https://github.com/rectorphp/rector/pull/1391 [#1390]: https://github.com/rectorphp/rector/pull/1390 [#1389]: https://github.com/rectorphp/rector/pull/1389 [#1382]: https://github.com/rectorphp/rector/pull/1382 [#1377]: https://github.com/rectorphp/rector/pull/1377 [#1367]: https://github.com/rectorphp/rector/pull/1367 [@sasezaki]: https://github.com/sasezaki [@pierredup]: https://github.com/pierredup [@ktomk]: https://github.com/ktomk [@LeSuisse]: https://github.com/LeSuisse [@JanMikes]: https://github.com/JanMikes [@Inject]: https://github.com/Inject [@DaveLiddament]: https://github.com/DaveLiddament [v0.4.12]: https://github.com/rectorphp/rector/compare/v0.4.11...v0.4.12 [v0.5.0]: https://github.com/rectorphp/rector/compare/v0.4.12...v0.5.0 [#1521]: https://github.com/rectorphp/rector/pull/1521 [#1520]: https://github.com/rectorphp/rector/pull/1520 [#1517]: https://github.com/rectorphp/rector/pull/1517 [#1513]: https://github.com/rectorphp/rector/pull/1513 [#1511]: https://github.com/rectorphp/rector/pull/1511 [#1510]: https://github.com/rectorphp/rector/pull/1510 [#1509]: https://github.com/rectorphp/rector/pull/1509 [#1508]: https://github.com/rectorphp/rector/pull/1508 [#1507]: https://github.com/rectorphp/rector/pull/1507 [#1506]: https://github.com/rectorphp/rector/pull/1506 [#1502]: https://github.com/rectorphp/rector/pull/1502 [#1496]: https://github.com/rectorphp/rector/pull/1496 [#1493]: https://github.com/rectorphp/rector/pull/1493 [#1407]: https://github.com/rectorphp/rector/pull/1407 [v0.5.2]: https://github.com/rectorphp/rector/compare/v0.5.1...v0.5.2 [@alterphp]: https://github.com/alterphp [@Aerendir]: https://github.com/Aerendir [v0.5.1]: https://github.com/rectorphp/rector/compare/v0.5.0...v0.5.1 [#1572]: https://github.com/rectorphp/rector/pull/1572 [#1571]: https://github.com/rectorphp/rector/pull/1571 [#1570]: https://github.com/rectorphp/rector/pull/1570 [#1569]: https://github.com/rectorphp/rector/pull/1569 [#1568]: https://github.com/rectorphp/rector/pull/1568 [#1567]: https://github.com/rectorphp/rector/pull/1567 [#1565]: https://github.com/rectorphp/rector/pull/1565 [#1562]: https://github.com/rectorphp/rector/pull/1562 [#1561]: https://github.com/rectorphp/rector/pull/1561 [#1559]: https://github.com/rectorphp/rector/pull/1559 [#1558]: https://github.com/rectorphp/rector/pull/1558 [#1557]: https://github.com/rectorphp/rector/pull/1557 [#1556]: https://github.com/rectorphp/rector/pull/1556 [#1555]: https://github.com/rectorphp/rector/pull/1555 [#1554]: https://github.com/rectorphp/rector/pull/1554 [#1553]: https://github.com/rectorphp/rector/pull/1553 [#1550]: https://github.com/rectorphp/rector/pull/1550 [#1549]: https://github.com/rectorphp/rector/pull/1549 [#1548]: https://github.com/rectorphp/rector/pull/1548 [#1545]: https://github.com/rectorphp/rector/pull/1545 [#1544]: https://github.com/rectorphp/rector/pull/1544 [#1542]: https://github.com/rectorphp/rector/pull/1542 [#1539]: https://github.com/rectorphp/rector/pull/1539 [#1538]: https://github.com/rectorphp/rector/pull/1538 [#1533]: https://github.com/rectorphp/rector/pull/1533 [#1524]: https://github.com/rectorphp/rector/pull/1524 [#1523]: https://github.com/rectorphp/rector/pull/1523 [#1522]: https://github.com/rectorphp/rector/pull/1522 [#1519]: https://github.com/rectorphp/rector/pull/1519 [@keulinho]: https://github.com/keulinho [@cgkkevinr]: https://github.com/cgkkevinr [@Great-Antique]: https://github.com/Great-Antique [v0.5.3]: https://github.com/rectorphp/rector/compare/v0.5.2...v0.5.3 [#1659]: https://github.com/rectorphp/rector/pull/1659 [#1656]: https://github.com/rectorphp/rector/pull/1656 [#1651]: https://github.com/rectorphp/rector/pull/1651 [#1647]: https://github.com/rectorphp/rector/pull/1647 [#1645]: https://github.com/rectorphp/rector/pull/1645 [#1644]: https://github.com/rectorphp/rector/pull/1644 [#1643]: https://github.com/rectorphp/rector/pull/1643 [#1642]: https://github.com/rectorphp/rector/pull/1642 [#1641]: https://github.com/rectorphp/rector/pull/1641 [#1640]: https://github.com/rectorphp/rector/pull/1640 [#1631]: https://github.com/rectorphp/rector/pull/1631 [#1630]: https://github.com/rectorphp/rector/pull/1630 [#1625]: https://github.com/rectorphp/rector/pull/1625 [#1622]: https://github.com/rectorphp/rector/pull/1622 [#1619]: https://github.com/rectorphp/rector/pull/1619 [#1618]: https://github.com/rectorphp/rector/pull/1618 [#1617]: https://github.com/rectorphp/rector/pull/1617 [#1616]: https://github.com/rectorphp/rector/pull/1616 [#1615]: https://github.com/rectorphp/rector/pull/1615 [#1612]: https://github.com/rectorphp/rector/pull/1612 [#1611]: https://github.com/rectorphp/rector/pull/1611 [#1610]: https://github.com/rectorphp/rector/pull/1610 [#1609]: https://github.com/rectorphp/rector/pull/1609 [#1605]: https://github.com/rectorphp/rector/pull/1605 [#1603]: https://github.com/rectorphp/rector/pull/1603 [#1602]: https://github.com/rectorphp/rector/pull/1602 [#1601]: https://github.com/rectorphp/rector/pull/1601 [#1599]: https://github.com/rectorphp/rector/pull/1599 [#1596]: https://github.com/rectorphp/rector/pull/1596 [#1590]: https://github.com/rectorphp/rector/pull/1590 [#1589]: https://github.com/rectorphp/rector/pull/1589 [#1588]: https://github.com/rectorphp/rector/pull/1588 [#1587]: https://github.com/rectorphp/rector/pull/1587 [#1586]: https://github.com/rectorphp/rector/pull/1586 [#1584]: https://github.com/rectorphp/rector/pull/1584 [#1583]: https://github.com/rectorphp/rector/pull/1583 [#1582]: https://github.com/rectorphp/rector/pull/1582 [#1581]: https://github.com/rectorphp/rector/pull/1581 [#1577]: https://github.com/rectorphp/rector/pull/1577 [#1574]: https://github.com/rectorphp/rector/pull/1574 [#1525]: https://github.com/rectorphp/rector/pull/1525 [#1469]: https://github.com/rectorphp/rector/pull/1469 [@vasilvestre]: https://github.com/vasilvestre [@shyim]: https://github.com/shyim [@pxgamer]: https://github.com/pxgamer [@gnutix]: https://github.com/gnutix [@funivan]: https://github.com/funivan [v0.5.5]: https://github.com/rectorphp/rector/compare/v0.5.4...v0.5.5 [v0.5.4]: https://github.com/rectorphp/rector/compare/v0.5.3...v0.5.4 [#1757]: https://github.com/rectorphp/rector/pull/1757 [#1755]: https://github.com/rectorphp/rector/pull/1755 [#1754]: https://github.com/rectorphp/rector/pull/1754 [#1753]: https://github.com/rectorphp/rector/pull/1753 [#1752]: https://github.com/rectorphp/rector/pull/1752 [#1748]: https://github.com/rectorphp/rector/pull/1748 [#1744]: https://github.com/rectorphp/rector/pull/1744 [#1739]: https://github.com/rectorphp/rector/pull/1739 [#1738]: https://github.com/rectorphp/rector/pull/1738 [#1737]: https://github.com/rectorphp/rector/pull/1737 [#1736]: https://github.com/rectorphp/rector/pull/1736 [#1735]: https://github.com/rectorphp/rector/pull/1735 [#1731]: https://github.com/rectorphp/rector/pull/1731 [#1728]: https://github.com/rectorphp/rector/pull/1728 [#1725]: https://github.com/rectorphp/rector/pull/1725 [#1723]: https://github.com/rectorphp/rector/pull/1723 [#1722]: https://github.com/rectorphp/rector/pull/1722 [#1721]: https://github.com/rectorphp/rector/pull/1721 [#1720]: https://github.com/rectorphp/rector/pull/1720 [#1719]: https://github.com/rectorphp/rector/pull/1719 [#1718]: https://github.com/rectorphp/rector/pull/1718 [#1717]: https://github.com/rectorphp/rector/pull/1717 [#1716]: https://github.com/rectorphp/rector/pull/1716 [#1715]: https://github.com/rectorphp/rector/pull/1715 [#1714]: https://github.com/rectorphp/rector/pull/1714 [#1713]: https://github.com/rectorphp/rector/pull/1713 [#1712]: https://github.com/rectorphp/rector/pull/1712 [#1711]: https://github.com/rectorphp/rector/pull/1711 [#1710]: https://github.com/rectorphp/rector/pull/1710 [#1709]: https://github.com/rectorphp/rector/pull/1709 [#1707]: https://github.com/rectorphp/rector/pull/1707 [#1705]: https://github.com/rectorphp/rector/pull/1705 [#1704]: https://github.com/rectorphp/rector/pull/1704 [#1703]: https://github.com/rectorphp/rector/pull/1703 [#1702]: https://github.com/rectorphp/rector/pull/1702 [#1701]: https://github.com/rectorphp/rector/pull/1701 [#1699]: https://github.com/rectorphp/rector/pull/1699 [#1698]: https://github.com/rectorphp/rector/pull/1698 [#1697]: https://github.com/rectorphp/rector/pull/1697 [#1696]: https://github.com/rectorphp/rector/pull/1696 [#1695]: https://github.com/rectorphp/rector/pull/1695 [#1694]: https://github.com/rectorphp/rector/pull/1694 [#1693]: https://github.com/rectorphp/rector/pull/1693 [#1691]: https://github.com/rectorphp/rector/pull/1691 [#1690]: https://github.com/rectorphp/rector/pull/1690 [#1689]: https://github.com/rectorphp/rector/pull/1689 [#1687]: https://github.com/rectorphp/rector/pull/1687 [#1686]: https://github.com/rectorphp/rector/pull/1686 [#1684]: https://github.com/rectorphp/rector/pull/1684 [#1681]: https://github.com/rectorphp/rector/pull/1681 [#1679]: https://github.com/rectorphp/rector/pull/1679 [#1677]: https://github.com/rectorphp/rector/pull/1677 [#1676]: https://github.com/rectorphp/rector/pull/1676 [#1675]: https://github.com/rectorphp/rector/pull/1675 [#1674]: https://github.com/rectorphp/rector/pull/1674 [#1673]: https://github.com/rectorphp/rector/pull/1673 [#1671]: https://github.com/rectorphp/rector/pull/1671 [#1666]: https://github.com/rectorphp/rector/pull/1666 [#1661]: https://github.com/rectorphp/rector/pull/1661 [v0.5.8]: https://github.com/rectorphp/rector/compare/v0.5.7...v0.5.8 [v0.5.7]: https://github.com/rectorphp/rector/compare/v0.5.6...v0.5.7 [@tigitz]: https://github.com/tigitz [@szepeviktor]: https://github.com/szepeviktor [@stloyd]: https://github.com/stloyd [@ravanscafi]: https://github.com/ravanscafi [@jeroensmit]: https://github.com/jeroensmit [@holtkamp]: https://github.com/holtkamp [@aboks]: https://github.com/aboks [v0.5.6]: https://github.com/rectorphp/rector/compare/v0.5.5...v0.5.6