includes:
    - dev-tools/vendor/jangregor/phpstan-prophecy/src/extension.neon
    - dev-tools/vendor/phpstan/phpstan/conf/bleedingEdge.neon
    - dev-tools/vendor/phpstan/phpstan-phpunit/extension.neon

parameters:
    level: 5
    paths:
        - src
        - tests
    excludes_analyse:
        - tests/Fixtures
    ignoreErrors:
        - '/^Return typehint of method PhpCsFixer\\Tests\\Test\\.+::createIsIdenticalStringConstraint\(\) has invalid type PHPUnit_Framework_Constraint_IsIdentical\.$/'
        - '/^Class (Symfony\\Contracts\\EventDispatcher\\Event|Symfony\\Component\\EventDispatcher\\Event) not found.$/'
        - '/^Constant T_NAME_(RELATIVE|FULLY_QUALIFIED|QUALIFIED) not found\.$/'
        - '/Instantiated class .*TraversableContains is abstract/'
        - '/assertInstanceOf\(\) expects class-string.*, string given/'
        -
            message: '/^Unsafe usage of new static\(\)\.$/'
            path: src/Config.php
        -
            message: '/^Else branch is unreachable because previous condition is always true\.$/'
            path: src/Event/Event.php
        -
            message: '/^Strict comparison using !== between ''@git-commit@'' and ''@git-commit@'' will always evaluate to false\.$/'
            path: src/Console/Application.php
        -
            message: '/^Result of && is always false\.$/'
            path: src/Config.php
        -
            message: '/^Strict comparison using === between false and true will always evaluate to false\.$/'
            path: src/Config.php
        -
            message: '/^Else branch is unreachable because ternary operator condition is always true\.$/'
            paths:
                - src/Config.php
                - src/Tokenizer/Token.php
        -
            message: '/^Parameter #1 \$fixers of method PhpCsFixer\\Config::registerCustomFixers\(\) expects iterable<PhpCsFixer\\Fixer\\FixerInterface>, string given\.$/'
            path: tests/ConfigTest.php
        -
            message: '/^Parameter #1 \$options of method PhpCsFixer\\FixerConfiguration\\FixerConfigurationResolverRootless::resolve\(\) expects array<string, mixed>, array<int, string> given\.$/'
            path: tests/FixerConfiguration/FixerConfigurationResolverRootlessTest.php
        -
            message: '/^Parameter #1 \$function of function register_shutdown_function expects callable\(\): void, array\(\$this\(PhpCsFixer\\FileRemoval\), ''clean''\) given\.$/'
            path: src/FileRemoval.php
        -
            message: '/^Parameter #1 \$finder of method PhpCsFixer\\Config::setFinder\(\) expects iterable<string>, int given\.$/'
            path: tests/ConfigTest.php
        - # https://github.com/phpstan/phpstan/issues/1215
            message: '/^Strict comparison using === between false and string will always evaluate to false\.$/'
            path: src/Fixer/StringNotation/NoTrailingWhitespaceInStringFixer.php
        -
            message: '/^Property .*::\$indicator .* does not accept null\.$/'
            path: tests/Indicator/PhpUnitTestCaseIndicatorTest.php
        -
            message: '/^Constant T_ATTRIBUTE not found\.$/'
            path: src/Tokenizer/Transformer/AttributeTransformer.php
        -
            message: '/^\$this\(PhpCsFixer\\Tokenizer\\Tokens\) does not accept PhpCsFixer\\Tokenizer\\Token\|null\.$/'
            path: src/Tokenizer/Tokens.php

    tipsOfTheDay: false
