includes:
    - ../vendor/phpstan/phpstan-phpunit/extension.neon
    - ./baseline.neon

parameters:
    level: 4
    excludes_analyse:
       - '../tests/Composer/Test/Fixtures/*'
       - '../tests/Composer/Test/Autoload/Fixtures/*'
       - '../tests/Composer/Test/Plugin/Fixtures/*'
       - '../tests/Composer/Test/PolyfillTestCase.php'
    ignoreErrors:
        # unused parameters
        - '~^Constructor of class Composer\\Repository\\VcsRepository has an unused parameter \$dispatcher\.$~'
        - '~^Constructor of class Composer\\Util\\Http\\CurlDownloader has an unused parameter \$disableTls\.$~'
        - '~^Constructor of class Composer\\Util\\Http\\CurlDownloader has an unused parameter \$options\.$~'

        # ion cube is not installed
        - '~^Function ioncube_loader_\w+ not found\.$~'

        # variables from global scope
        - '~^Undefined variable: \$vendorDir$~'
        - '~^Undefined variable: \$baseDir$~'

        # variable defined in eval
        - '~^Undefined variable: \$res$~'

        # we don't have different constructors for parent/child
        - '~^Unsafe usage of new static\(\)\.$~'

        # BC with older PHPUnit
        - '~^Call to an undefined static method Composer\\Test\\PolyfillTestCase::setExpectedException\(\)\.$~'
        - '~^Call to an undefined method Composer\\Test\\[a-zA-Z0-9\\]+::(assertFileDoesNotExist|assertMatchesRegularExpression)\(\)\.$~'

        # Mock errors
        - '~^Call to an undefined method (PHPUnit\\Framework\\MockObject\\MockObject|Prophecy\\Prophecy\\ObjectProphecy)::.*$~'

    bootstrapFiles:
        - ../tests/bootstrap.php

    paths:
        - ../src
        - ../tests

rules:
    - Composer\PHPStanRules\AnonymousFunctionWithThisRule