Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
MissingElseBetweenBracketsSniff
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 2
12
0.00% covered (danger)
0.00%
0 / 1
 register
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
2
 process
0.00% covered (danger)
0.00%
0 / 8
0.00% covered (danger)
0.00%
0 / 1
6
1<?php
2
3namespace MediaWiki\Sniffs\ControlStructures;
4
5use PHP_CodeSniffer\Files\File;
6use PHP_CodeSniffer\Sniffs\Sniff;
7
8/**
9 * Sniff for missing control structures between closing and opening brackets.
10 *
11 * Fail: if ( $a ) { functionCall(); } { somethingElse(); }
12 * Pass: if ( $a ) { functionCall(); } else { somethingElse(); }
13 * Pass: "{{a}} {{b}}"
14 *
15 * @author Taavi "Majavah" Väänänen
16 */
17class MissingElseBetweenBracketsSniff implements Sniff {
18    /**
19     * @inheritDoc
20     */
21    public function register(): array {
22        return [
23            T_CLOSE_CURLY_BRACKET,
24        ];
25    }
26
27    /**
28     * @inheritDoc
29     */
30    public function process( File $phpcsFile, $stackPtr ) {
31        $tokens = $phpcsFile->getTokens();
32        $next = $phpcsFile->findNext( T_WHITESPACE, $stackPtr + 1, null, true );
33
34        if ( $tokens[$next]['code'] === T_OPEN_CURLY_BRACKET ) {
35            $phpcsFile->addError(
36                'Missing `else` between closing an opening and closing bracket',
37                $next,
38                'Missing'
39            );
40        }
41    }
42}