/**
* @param Tokens $tokens
* @param TokensAnalyzer $tokensAnalyzer
* @param int $classStart
* @param int $classEnd
*/
private function fixClass(Tokens $tokens, TokensAnalyzer $tokensAnalyzer, $classStart, $classEnd)
{
for ($index = $classEnd; $index > $classStart; --$index) {
if (!$tokens[$index]->isGivenKind(T_FUNCTION) || $tokensAnalyzer->isLambda($index)) {
continue;
}
$attributes = $tokensAnalyzer->getMethodAttributes($index);
if (true === $attributes['abstract']) {
$methodEnd = $tokens->getNextTokenOfKind($index, array(';'));
} else {
$methodStart = $tokens->getNextTokenOfKind($index, array('{'));
$methodEnd = $tokens->findBlockEnd(Tokens::BLOCK_TYPE_CURLY_BRACE, $methodStart, true);
}
$this->fixSpaceBelowMethod($tokens, $classEnd, $methodEnd);
$this->fixSpaceAboveMethod($tokens, $classStart, $index);
}
}