@@ -27,13 +27,20 @@ public function process(File $phpcsFile, $stackPtr) {
27
27
$ startPos = $ phpcsFile ->findNext ([ T_DECLARE ], $ stackPtr + 1 );
28
28
29
29
if ($ startPos === false ) {
30
- $ phpcsFile ->addError ('declare statement not found in file ' , $ stackPtr , 'NoDeclare ' );
30
+ $ phpcsFile ->addFixableError ('declare statement not found in file ' , $ stackPtr , 'NoDeclare ' );
31
+ $ phpcsFile ->fixer ->addContent ($ stackPtr , 'declare(strict_types=1); ' );
31
32
} else {
32
33
$ endPos = $ tokens [$ startPos ]['parenthesis_closer ' ];
33
34
$ text = $ phpcsFile ->getTokensAsString ($ startPos , ($ endPos - $ startPos + 1 ));
34
35
35
- if ($ text !== 'declare(strict_types=1) ' ) {
36
- $ phpcsFile ->addError ('declare strict_types statement not found in file ' , $ stackPtr , 'NoDeclareStrictTypes ' );
36
+ if ($ text === 'declare(strict_types=0) ' ) {
37
+ $ phpcsFile ->addFixableError ('declare strict_types is set to false ' , $ stackPtr , 'NoDeclareStrictTypes ' );
38
+
39
+ $ numberPos = $ phpcsFile ->findNext ([T_LNUMBER ], $ startPos );
40
+ $ phpcsFile ->fixer ->replaceToken ($ numberPos , '1 ' );
41
+ } else if ($ text !== 'declare(strict_types=1) ' ) {
42
+ $ phpcsFile ->addFixableError ('declare strict_types statement not found in file ' , $ stackPtr , 'NoDeclareStrictTypes ' );
43
+ $ phpcsFile ->fixer ->addContentBefore ($ startPos , 'declare(strict_types=1); ' );
37
44
}
38
45
}
39
46
0 commit comments