includes:
    - phpstan-baseline.neon
    - phpstan-params.neon

parameters:
    reportUnmatchedIgnoredErrors: false # Some errors in the baseline only apply to DBAL 4
    ignoreErrors:
        # Symfony cache supports passing a key prefix to the clear method.
        - '/^Method Psr\\Cache\\CacheItemPoolInterface\:\:clear\(\) invoked with 1 parameter, 0 required\.$/'

        # We can be certain that those values are not matched.
        -
            message: '~^Match expression does not handle remaining values:~'
            path: src/Persisters/Entity/BasicEntityPersister.php

        # DBAL 4 compatibility
        -
            message: '~^Method Doctrine\\ORM\\Query\\AST\\Functions\\TrimFunction::getTrimMode\(\) never returns .* so it can be removed from the return type\.$~'
            path: src/Query/AST/Functions/TrimFunction.php

        -
            message: '~.*getTrimExpression.*expects int.*~'
            path: src/Query/AST/Functions/TrimFunction.php

        -
            message: '~^Call to static method unquoted\(\) on an unknown class Doctrine\\DBAL\\Schema\\Name\\Identifier\.$~'
            path: src/Tools/SchemaTool.php

        -
            message: '~^Instantiated class Doctrine\\DBAL\\Schema\\Name\\UnqualifiedName not found\.$~'
            path: src/Tools/SchemaTool.php

        -
            message: '~^Call to an undefined method Doctrine\\DBAL\\Schema\\Table::addPrimaryKeyConstraint\(\)\.$~'
            path: src/Tools/SchemaTool.php

        - '~^Class Doctrine\\DBAL\\Platforms\\SQLitePlatform not found\.$~'

        # To be removed in 4.0
        -
            message: '#Negated boolean expression is always false\.#'
            paths:
                - src/Mapping/Driver/AttributeDriver.php

        -
            message: '~^Call to deprecated method getEventManager\(\) of class Doctrine\\DBAL\\Connection\.$~'
            path: src/EntityManager.php
        -
            message: '~deprecated class Doctrine\\DBAL\\Tools\\Console\\Command\\ReservedWordsCommand\:~'
            path: src/Tools/Console/ConsoleRunner.php

        # Compatibility with Persistence 3
        -
            message: '#Expression on left side of \?\? is not nullable.#'
            path: src/Mapping/Driver/AttributeDriver.php

        -
            message: '~^Method Doctrine\\ORM\\Persisters\\Entity\\BasicEntityPersister\:\:getArrayBindingType\(\) never returns .* so it can be removed from the return type\.$~'
            path: src/Persisters/Entity/BasicEntityPersister.php

        -
            message: '~getTypes.*should return~'
            path: src/Persisters/Entity/BasicEntityPersister.php

        -
            message: '~.*appendLockHint.*expects.*LockMode given~'
            paths:
                - src/Persisters/Entity/BasicEntityPersister.php
                - src/Persisters/Entity/JoinedSubclassPersister.php

        -
            message: '~.*executeStatement.*expects~'
            path: src/Query/Exec/MultiTableUpdateExecutor.php

        -
            message: '~method_exists.*getEventManager~'
            path: src/EntityManager.php

        -
            message: '~method_exists.*getIdentitySequence~'
            path: src/Mapping/ClassMetadataFactory.php

        -
            message: '~expand(Criteria)?Parameters.*should return array~'
            path: src/Persisters/Entity/BasicEntityPersister.php

        -
            message: '~inferType.*never returns~'
            path: src/Query/ParameterTypeInferer.php
