<?xml version="1.0"?>
<psalm
    errorLevel="1"
    resolveFromConfigFile="true"
    strictBinaryOperands="true"
    phpVersion="8.1"
    allowStringToStandInForClass="true"
    rememberPropertyAssignmentsAfterCall="false"
    skipChecksOnUnresolvableIncludes="false"
    checkForThrowsDocblock="true"
    checkForThrowsInGlobalScope="true"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="https://getpsalm.org/schema/config"
    xsi:schemaLocation="https://getpsalm.org/schema/config vendor/vimeo/psalm/config.xsd"
>
    <projectFiles>
        <directory name="src" />
        <directory name="tests" />
        <ignoreFiles>
            <directory name="vendor" />
            <file name="src/bootstrap.php"/>
        </ignoreFiles>
    </projectFiles>
    <issueHandlers>
        <MissingConstructor>
            <errorLevel type="suppress">
                <directory name="tests"/>
            </errorLevel>
        </MissingConstructor>
        <UndefinedClass>
            <errorLevel type="suppress">
                <directory name="tests"/>
            </errorLevel>
        </UndefinedClass>
        <MissingDependency>
            <errorLevel type="suppress">
                <directory name="tests"/>
            </errorLevel>
        </MissingDependency>
        <MixedArgumentTypeCoercion>
            <errorLevel type="suppress">
                <directory name="src/Xml/Encoding/Internal/Encoder/Builder" />
            </errorLevel>
        </MixedArgumentTypeCoercion>
    </issueHandlers>
    <stubs>
        <file name="stubs/DOM.phpstub" />
        <file name="stubs/XMLReader.phpstub" />
        <file name="stubs/XMLWriter.phpstub" />
    </stubs>
    <plugins>
        <pluginClass class="Psl\Psalm\Plugin" />
    </plugins>
    <ignoreExceptions>
        <class name="InvalidArgumentException" />
        <class name="Psl\Regex\Exception\InvalidPatternException" />
        <class name="Psl\Exception\InvariantViolationException" />
    </ignoreExceptions>
</psalm>
