private function removeUnwantedTokens(array $subTokens): array
    {
        return array_filter($subTokens, function (array $subToken): bool {
            switch ($subToken['code']) {
                case T_VARIABLE:
                    $return = (new PropertyHelper($this->file))->isProperty($subToken['pointer']);
                    break;

                case T_USE:
                    $return = UseStatementHelper::isTraitUse($this->file, $subToken['pointer']);
                    break;

                default:
                    $return = true;
            }

            return $return;
        });
    }