<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="4.13.1@5cf660f63b548ccd4a56f62d916ee4d6028e01a3">
  <file src="src/ArrayInput.php">
    <DeprecatedInterface occurrences="1">
      <code>ArrayInput</code>
    </DeprecatedInterface>
    <DeprecatedMethod occurrences="6">
      <code>allowEmpty</code>
      <code>allowEmpty</code>
      <code>continueIfEmpty</code>
      <code>continueIfEmpty</code>
      <code>continueIfEmpty</code>
      <code>injectNotEmptyValidator</code>
    </DeprecatedMethod>
    <DocblockTypeContradiction occurrences="1">
      <code>is_array($value)</code>
    </DocblockTypeContradiction>
    <InvalidPropertyAssignmentValue occurrences="2">
      <code>$this-&gt;prepareRequiredValidationFailureMessage()</code>
      <code>$this-&gt;prepareRequiredValidationFailureMessage()</code>
    </InvalidPropertyAssignmentValue>
    <MixedArgument occurrences="2">
      <code>$this-&gt;getFallbackValue()</code>
      <code>$this-&gt;getFallbackValue()</code>
    </MixedArgument>
    <MixedAssignment occurrences="3">
      <code>$result[$key]</code>
      <code>$value</code>
      <code>$value</code>
    </MixedAssignment>
    <MoreSpecificImplementedParamType occurrences="1">
      <code>$value</code>
    </MoreSpecificImplementedParamType>
    <NonInvariantDocblockPropertyType occurrences="1">
      <code>$value</code>
    </NonInvariantDocblockPropertyType>
  </file>
  <file src="src/BaseInputFilter.php">
    <DocblockTypeContradiction occurrences="6">
      <code>$input instanceof InputInterface &amp;&amp; (empty($name) || is_int($name))</code>
      <code>[]</code>
      <code>[]</code>
      <code>gettype($input)</code>
      <code>is_array($data)</code>
      <code>is_int($name)</code>
    </DocblockTypeContradiction>
    <InvalidReturnStatement occurrences="2">
      <code>is_array($this-&gt;invalidInputs) ? $this-&gt;invalidInputs : []</code>
      <code>is_array($this-&gt;validInputs) ? $this-&gt;validInputs : []</code>
    </InvalidReturnStatement>
    <InvalidReturnType occurrences="2">
      <code>InputInterface[]</code>
      <code>InputInterface[]</code>
    </InvalidReturnType>
    <LessSpecificImplementedReturnType occurrences="1">
      <code>array</code>
    </LessSpecificImplementedReturnType>
    <MissingConstructor occurrences="10">
      <code>$invalidInputs</code>
      <code>$invalidInputs</code>
      <code>$invalidInputs</code>
      <code>$invalidInputs</code>
      <code>$invalidInputs</code>
      <code>$validInputs</code>
      <code>$validInputs</code>
      <code>$validInputs</code>
      <code>$validInputs</code>
      <code>$validInputs</code>
    </MissingConstructor>
    <MixedArgument occurrences="1">
      <code>$input</code>
    </MixedArgument>
    <MixedArgumentTypeCoercion occurrences="4">
      <code>$inputs</code>
      <code>$inputs</code>
      <code>$key</code>
      <code>$name</code>
    </MixedArgumentTypeCoercion>
    <MixedAssignment occurrences="7">
      <code>$inputContext</code>
      <code>$inputs[]</code>
      <code>$unknownInputs[$key]</code>
      <code>$value</code>
      <code>$value</code>
      <code>$values[$name]</code>
      <code>$values[$name]</code>
    </MixedAssignment>
    <MixedPropertyTypeCoercion occurrences="1">
      <code>$inputs</code>
    </MixedPropertyTypeCoercion>
    <MoreSpecificImplementedParamType occurrences="1">
      <code>$input</code>
    </MoreSpecificImplementedParamType>
    <PossiblyInvalidArgument occurrences="1">
      <code>$input</code>
    </PossiblyInvalidArgument>
    <PossiblyNullArgument occurrences="1">
      <code>$this-&gt;data</code>
    </PossiblyNullArgument>
    <PossiblyNullArrayOffset occurrences="1">
      <code>$this-&gt;inputs</code>
    </PossiblyNullArrayOffset>
    <RedundantConditionGivenDocblockType occurrences="3">
      <code>is_array($this-&gt;invalidInputs)</code>
      <code>is_array($this-&gt;validInputs)</code>
      <code>is_object($input)</code>
    </RedundantConditionGivenDocblockType>
    <TooManyArguments occurrences="2">
      <code>isValid</code>
      <code>isValid</code>
    </TooManyArguments>
  </file>
  <file src="src/CollectionInputFilter.php">
    <DocblockTypeContradiction occurrences="4">
      <code>$this-&gt;notEmptyValidator === null</code>
      <code>gettype($inputFilter)</code>
      <code>is_object($data)</code>
      <code>null === $this-&gt;inputFilter</code>
    </DocblockTypeContradiction>
    <InvalidArgument occurrences="1">
      <code>$data</code>
    </InvalidArgument>
    <InvalidPropertyAssignmentValue occurrences="3">
      <code>$data</code>
      <code>$this-&gt;invalidInputs</code>
      <code>$this-&gt;validInputs</code>
    </InvalidPropertyAssignmentValue>
    <MissingConstructor occurrences="2">
      <code>$inputFilter</code>
      <code>$notEmptyValidator</code>
    </MissingConstructor>
    <MixedArgument occurrences="4">
      <code>$data</code>
      <code>$data</code>
      <code>$data</code>
      <code>$message</code>
    </MixedArgument>
    <MixedArrayAccess occurrences="1">
      <code>$templates[NotEmpty::IS_EMPTY]</code>
    </MixedArrayAccess>
    <MixedAssignment occurrences="6">
      <code>$data</code>
      <code>$data</code>
      <code>$item</code>
      <code>$message</code>
      <code>$templates</code>
      <code>$this-&gt;validationGroup</code>
    </MixedAssignment>
    <MixedReturnTypeCoercion occurrences="2">
      <code>array&lt;string, string&gt;</code>
    </MixedReturnTypeCoercion>
    <PossiblyNullArgument occurrences="2">
      <code>$this-&gt;data</code>
      <code>$this-&gt;data</code>
    </PossiblyNullArgument>
    <RedundantConditionGivenDocblockType occurrences="2">
      <code>gettype($data)</code>
      <code>is_object($inputFilter)</code>
    </RedundantConditionGivenDocblockType>
  </file>
  <file src="src/Factory.php">
    <DeprecatedMethod occurrences="2">
      <code>setAllowEmpty</code>
      <code>setContinueIfEmpty</code>
    </DeprecatedMethod>
    <DocblockTypeContradiction occurrences="4">
      <code>! is_array($inputFilterSpecification) &amp;&amp; ! $inputFilterSpecification instanceof Traversable</code>
      <code>! is_array($inputSpecification) &amp;&amp; ! $inputSpecification instanceof Traversable</code>
      <code>is_array($validator)</code>
      <code>null === $this-&gt;inputFilterManager</code>
    </DocblockTypeContradiction>
    <InvalidReturnStatement occurrences="1">
      <code>$inputFilter</code>
    </InvalidReturnStatement>
    <InvalidReturnType occurrences="1">
      <code>InputFilterInterface</code>
    </InvalidReturnType>
    <MixedArgument occurrences="24">
      <code>$breakChainOnFailure</code>
      <code>$class</code>
      <code>$class</code>
      <code>$class</code>
      <code>$class</code>
      <code>$class</code>
      <code>$inputFilterSpecification['count']</code>
      <code>$inputFilterSpecification['input_filter']</code>
      <code>$inputFilterSpecification['required']</code>
      <code>$inputFilterSpecification['required_message']</code>
      <code>$inputSpecification['continue_if_empty']</code>
      <code>$key</code>
      <code>$name</code>
      <code>$name</code>
      <code>$options</code>
      <code>$priority</code>
      <code>$priority</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value['type']</code>
    </MixedArgument>
    <MixedArgumentTypeCoercion occurrences="2">
      <code>$key</code>
      <code>$value</code>
    </MixedArgumentTypeCoercion>
    <MixedArrayAccess occurrences="4">
      <code>$validator['break_chain_on_failure']</code>
      <code>$validator['name']</code>
      <code>$validator['options']</code>
      <code>$validator['priority']</code>
    </MixedArrayAccess>
    <MixedAssignment occurrences="11">
      <code>$breakChainOnFailure</code>
      <code>$class</code>
      <code>$filter</code>
      <code>$key</code>
      <code>$name</code>
      <code>$name</code>
      <code>$options</code>
      <code>$options</code>
      <code>$priority</code>
      <code>$priority</code>
      <code>$value</code>
    </MixedAssignment>
    <MixedMethodCall occurrences="1">
      <code>new $class()</code>
    </MixedMethodCall>
    <PossiblyNullPropertyAssignmentValue occurrences="2">
      <code>null</code>
      <code>null</code>
    </PossiblyNullPropertyAssignmentValue>
    <PossiblyUndefinedMethod occurrences="2">
      <code>add</code>
      <code>add</code>
    </PossiblyUndefinedMethod>
    <PropertyNotSetInConstructor occurrences="1">
      <code>$inputFilterManager</code>
    </PropertyNotSetInConstructor>
    <RedundantConditionGivenDocblockType occurrences="10">
      <code>$input-&gt;getFilterChain()</code>
      <code>$input-&gt;getValidatorChain()</code>
      <code>$this-&gt;defaultFilterChain</code>
      <code>$this-&gt;defaultFilterChain</code>
      <code>$this-&gt;defaultFilterChain</code>
      <code>$this-&gt;defaultFilterChain</code>
      <code>$this-&gt;defaultValidatorChain</code>
      <code>$this-&gt;defaultValidatorChain</code>
      <code>$this-&gt;defaultValidatorChain</code>
      <code>$this-&gt;defaultValidatorChain</code>
    </RedundantConditionGivenDocblockType>
  </file>
  <file src="src/FileInput.php">
    <DeprecatedInterface occurrences="1">
      <code>FileInput</code>
    </DeprecatedInterface>
    <DeprecatedMethod occurrences="2">
      <code>allowEmpty</code>
      <code>continueIfEmpty</code>
    </DeprecatedMethod>
    <DeprecatedProperty occurrences="1">
      <code>$this-&gt;notEmptyValidator</code>
    </DeprecatedProperty>
    <DocblockTypeContradiction occurrences="1">
      <code>$this-&gt;implementation === null</code>
    </DocblockTypeContradiction>
    <InvalidPropertyAssignmentValue occurrences="1">
      <code>$this-&gt;prepareRequiredValidationFailureMessage()</code>
    </InvalidPropertyAssignmentValue>
    <LessSpecificReturnStatement occurrences="1">
      <code>parent::resetValue()</code>
    </LessSpecificReturnStatement>
    <MixedAssignment occurrences="1">
      <code>$rawValue</code>
    </MixedAssignment>
    <MixedInferredReturnType occurrences="1">
      <code>Input</code>
    </MixedInferredReturnType>
    <MoreSpecificImplementedParamType occurrences="1">
      <code>$value</code>
    </MoreSpecificImplementedParamType>
    <MoreSpecificReturnType occurrences="1">
      <code>self</code>
    </MoreSpecificReturnType>
    <PossiblyNullPropertyAssignmentValue occurrences="1">
      <code>null</code>
    </PossiblyNullPropertyAssignmentValue>
    <PropertyNotSetInConstructor occurrences="1">
      <code>$implementation</code>
    </PropertyNotSetInConstructor>
    <UndefinedDocblockClass occurrences="1">
      <code>array|UploadedFile</code>
    </UndefinedDocblockClass>
  </file>
  <file src="src/FileInput/HttpServerFileInputDecorator.php">
    <DeprecatedInterface occurrences="1">
      <code>HttpServerFileInputDecorator</code>
    </DeprecatedInterface>
    <MixedAssignment occurrences="5">
      <code>$fileData</code>
      <code>$newValue[]</code>
      <code>$rawValue</code>
      <code>$value</code>
      <code>$value</code>
    </MixedAssignment>
    <RedundantCondition occurrences="2">
      <code>is_array($rawValue)</code>
      <code>is_array($rawValue)</code>
    </RedundantCondition>
  </file>
  <file src="src/FileInput/PsrFileInputDecorator.php">
    <DeprecatedInterface occurrences="1">
      <code>PsrFileInputDecorator</code>
    </DeprecatedInterface>
    <MixedArgument occurrences="1">
      <code>$rawValue[0]</code>
    </MixedArgument>
    <MixedAssignment occurrences="5">
      <code>$fileData</code>
      <code>$newValue[]</code>
      <code>$rawValue</code>
      <code>$value</code>
      <code>$value</code>
    </MixedAssignment>
    <MixedInferredReturnType occurrences="1">
      <code>UploadedFileInterface|UploadedFileInterface[]</code>
    </MixedInferredReturnType>
    <MixedReturnStatement occurrences="2">
      <code>$filter-&gt;filter($value)</code>
      <code>$value</code>
    </MixedReturnStatement>
    <MixedReturnTypeCoercion occurrences="1">
      <code>$newValue</code>
    </MixedReturnTypeCoercion>
    <MoreSpecificImplementedParamType occurrences="1">
      <code>$rawValue</code>
    </MoreSpecificImplementedParamType>
  </file>
  <file src="src/Input.php">
    <DeprecatedInterface occurrences="1">
      <code>Input</code>
    </DeprecatedInterface>
    <DeprecatedMethod occurrences="8">
      <code>allowEmpty</code>
      <code>allowEmpty</code>
      <code>allowEmpty</code>
      <code>continueIfEmpty</code>
      <code>continueIfEmpty</code>
      <code>injectNotEmptyValidator</code>
      <code>setAllowEmpty</code>
      <code>setContinueIfEmpty</code>
    </DeprecatedMethod>
    <DeprecatedProperty occurrences="7">
      <code>$this-&gt;allowEmpty</code>
      <code>$this-&gt;allowEmpty</code>
      <code>$this-&gt;continueIfEmpty</code>
      <code>$this-&gt;continueIfEmpty</code>
      <code>$this-&gt;notEmptyValidator</code>
      <code>$this-&gt;notEmptyValidator</code>
      <code>$this-&gt;notEmptyValidator</code>
    </DeprecatedProperty>
    <DocblockTypeContradiction occurrences="1">
      <code>is_array($this-&gt;errorMessage)</code>
    </DocblockTypeContradiction>
    <ImplementedReturnTypeMismatch occurrences="1">
      <code>null|string</code>
    </ImplementedReturnTypeMismatch>
    <InvalidNullableReturnType occurrences="2">
      <code>FilterChain</code>
      <code>ValidatorChain</code>
    </InvalidNullableReturnType>
    <InvalidPropertyAssignmentValue occurrences="1">
      <code>$this-&gt;prepareRequiredValidationFailureMessage()</code>
    </InvalidPropertyAssignmentValue>
    <MissingReturnType occurrences="1">
      <code>clearFallbackValue</code>
    </MissingReturnType>
    <MixedArrayAccess occurrences="4">
      <code>$templates[NotEmpty::IS_EMPTY]</code>
      <code>$validator['instance']</code>
      <code>$validator['instance']</code>
      <code>$validator['instance']</code>
    </MixedArrayAccess>
    <MixedAssignment occurrences="8">
      <code>$message</code>
      <code>$message</code>
      <code>$notEmpty</code>
      <code>$templates</code>
      <code>$translator</code>
      <code>$validator</code>
      <code>$validator</code>
      <code>$value</code>
    </MixedAssignment>
    <MixedMethodCall occurrences="4">
      <code>getOption</code>
      <code>getTranslator</code>
      <code>getTranslatorTextDomain</code>
      <code>translate</code>
    </MixedMethodCall>
    <MixedReturnTypeCoercion occurrences="4">
      <code>$validator-&gt;getMessages()</code>
      <code>string[]</code>
      <code>string[]</code>
    </MixedReturnTypeCoercion>
    <NullableReturnStatement occurrences="2">
      <code>$this-&gt;filterChain</code>
      <code>$this-&gt;validatorChain</code>
    </NullableReturnStatement>
    <PossiblyUndefinedMethod occurrences="3">
      <code>getOption</code>
      <code>getTranslator</code>
      <code>getTranslatorTextDomain</code>
    </PossiblyUndefinedMethod>
    <RedundantCastGivenDocblockType occurrences="6">
      <code>(bool) $allowEmpty</code>
      <code>(bool) $breakOnFailure</code>
      <code>(bool) $continueIfEmpty</code>
      <code>(bool) $required</code>
      <code>(string) $errorMessage</code>
      <code>(string) $name</code>
    </RedundantCastGivenDocblockType>
  </file>
  <file src="src/InputFilter.php">
    <DocblockTypeContradiction occurrences="1">
      <code>null === $this-&gt;factory</code>
    </DocblockTypeContradiction>
    <LessSpecificReturnStatement occurrences="1">
      <code>parent::add($input, $name)</code>
    </LessSpecificReturnStatement>
    <MissingConstructor occurrences="3">
      <code>$factory</code>
      <code>$factory</code>
      <code>$factory</code>
    </MissingConstructor>
    <MoreSpecificReturnType occurrences="1">
      <code>InputFilter</code>
    </MoreSpecificReturnType>
    <PossiblyInvalidArgument occurrences="1">
      <code>$input</code>
    </PossiblyInvalidArgument>
  </file>
  <file src="src/InputFilterAbstractServiceFactory.php">
    <DeprecatedInterface occurrences="1">
      <code>InputFilterAbstractServiceFactory</code>
    </DeprecatedInterface>
    <DeprecatedMethod occurrences="2">
      <code>getServiceLocator</code>
      <code>getServiceLocator</code>
    </DeprecatedMethod>
    <MissingConstructor occurrences="1">
      <code>$factory</code>
    </MissingConstructor>
    <MixedArgument occurrences="2">
      <code>$config</code>
      <code>$container-&gt;get('InputFilterManager')</code>
    </MixedArgument>
    <MixedArrayAccess occurrences="1">
      <code>$allConfig['input_filter_specs']</code>
    </MixedArrayAccess>
    <MixedAssignment occurrences="2">
      <code>$allConfig</code>
      <code>$config</code>
    </MixedAssignment>
    <MixedInferredReturnType occurrences="2">
      <code>FilterPluginManager</code>
      <code>ValidatorPluginManager</code>
    </MixedInferredReturnType>
    <MixedReturnStatement occurrences="2">
      <code>$container-&gt;get('FilterManager')</code>
      <code>$container-&gt;get('ValidatorManager')</code>
    </MixedReturnStatement>
    <ParamNameMismatch occurrences="6">
      <code>$cName</code>
      <code>$container</code>
      <code>$container</code>
      <code>$rName</code>
      <code>$rName</code>
      <code>$services</code>
    </ParamNameMismatch>
    <PossiblyNullReference occurrences="2">
      <code>setPluginManager</code>
      <code>setPluginManager</code>
    </PossiblyNullReference>
    <RedundantConditionGivenDocblockType occurrences="3">
      <code>$container-&gt;getServiceLocator()</code>
      <code>$container-&gt;getServiceLocator()</code>
      <code>$this-&gt;factory instanceof Factory</code>
    </RedundantConditionGivenDocblockType>
  </file>
  <file src="src/InputFilterPluginManager.php">
    <InvalidScalarArgument occurrences="1">
      <code>$e-&gt;getCode()</code>
    </InvalidScalarArgument>
    <MethodSignatureMismatch occurrences="1">
      <code>InputFilterPluginManager</code>
    </MethodSignatureMismatch>
    <MissingReturnType occurrences="1">
      <code>populateFactory</code>
    </MissingReturnType>
    <MixedArgument occurrences="2">
      <code>$container-&gt;get('FilterManager')</code>
      <code>$container-&gt;get('ValidatorManager')</code>
    </MixedArgument>
    <MixedArgumentTypeCoercion occurrences="1">
      <code>$v3config</code>
    </MixedArgumentTypeCoercion>
    <MixedAssignment occurrences="1">
      <code>$container</code>
    </MixedAssignment>
    <MixedMethodCall occurrences="4">
      <code>get</code>
      <code>get</code>
      <code>has</code>
      <code>has</code>
    </MixedMethodCall>
    <NonInvariantDocblockPropertyType occurrences="1">
      <code>$factories</code>
    </NonInvariantDocblockPropertyType>
    <PossiblyNullReference occurrences="2">
      <code>setPluginManager</code>
      <code>setPluginManager</code>
    </PossiblyNullReference>
    <PropertyTypeCoercion occurrences="1">
      <code>$this-&gt;initializers</code>
    </PropertyTypeCoercion>
    <UndefinedThisPropertyFetch occurrences="1">
      <code>$this-&gt;serviceLocator</code>
    </UndefinedThisPropertyFetch>
  </file>
  <file src="src/InputFilterPluginManagerFactory.php">
    <DeprecatedInterface occurrences="1">
      <code>InputFilterPluginManagerFactory</code>
    </DeprecatedInterface>
    <MissingParamType occurrences="3">
      <code>$name</code>
      <code>$name</code>
      <code>$requestedName</code>
    </MissingParamType>
    <MixedArgument occurrences="1">
      <code>$config['input_filters']</code>
    </MixedArgument>
    <ParamNameMismatch occurrences="1">
      <code>$container</code>
    </ParamNameMismatch>
  </file>
  <file src="src/Module.php">
    <UndefinedDocblockClass occurrences="1">
      <code>ModuleManager</code>
    </UndefinedDocblockClass>
  </file>
  <file src="src/OptionalInputFilter.php">
    <ImplementedReturnTypeMismatch occurrences="1">
      <code>array|null</code>
    </ImplementedReturnTypeMismatch>
    <MixedArgument occurrences="1">
      <code>$data ?: []</code>
    </MixedArgument>
    <PossiblyInvalidArgument occurrences="1">
      <code>$data ?: []</code>
    </PossiblyInvalidArgument>
  </file>
  <file src="test/ArrayInputTest.php">
    <ImplementedReturnTypeMismatch occurrences="6">
      <code>FilterChain&amp;MockObject</code>
      <code>NotEmptyValidator&amp;MockObject</code>
      <code>ValidatorChain&amp;MockObject</code>
      <code>string[]</code>
    </ImplementedReturnTypeMismatch>
    <InvalidReturnStatement occurrences="4">
      <code>$dataSets</code>
      <code>parent::createFilterChainMock($valueMap)</code>
      <code>parent::createNonEmptyValidatorMock($isValid, $value, $context)</code>
      <code>parent::createValidatorChainMock($valueMap, $messages)</code>
    </InvalidReturnStatement>
    <InvalidReturnType occurrences="4">
      <code>FilterChain&amp;MockObject</code>
      <code>NotEmptyValidator&amp;MockObject</code>
      <code>ValidatorChain&amp;MockObject</code>
    </InvalidReturnType>
    <MissingClosureParamType occurrences="3">
      <code>$set</code>
      <code>$set</code>
      <code>$set</code>
    </MissingClosureParamType>
    <MissingClosureReturnType occurrences="2">
      <code>function ($values) {</code>
      <code>function ($values) {</code>
    </MissingClosureReturnType>
    <MissingReturnType occurrences="4">
      <code>testArrayInputMarkedRequiredWithoutAFallbackFailsValidationForEmptyArrays</code>
      <code>testArrayInputMarkedRequiredWithoutAFallbackUsesProvidedErrorMessageOnFailureDueToEmptyArray</code>
      <code>testDefaultGetValue</code>
      <code>testSetValueWithInvalidInputTypeThrowsInvalidArgumentException</code>
    </MissingReturnType>
    <MixedArgument occurrences="4">
      <code>$this-&gt;input-&gt;getValue()</code>
      <code>$values[0]</code>
      <code>$values[0]</code>
      <code>$values[1]</code>
    </MixedArgument>
    <MixedArrayAccess occurrences="11">
      <code>$set['raw']</code>
      <code>$set['raw']</code>
      <code>$set[1]</code>
      <code>$set[2]</code>
      <code>$set[4]</code>
      <code>$values[0]</code>
      <code>$values[0]</code>
      <code>$values[0]</code>
      <code>$values[0]</code>
      <code>$values[1]</code>
      <code>$values[1]</code>
    </MixedArrayAccess>
    <MixedArrayAssignment occurrences="8">
      <code>$set['raw']</code>
      <code>$set['raw']</code>
      <code>$set[1]</code>
      <code>$set[2]</code>
      <code>$set[4]</code>
      <code>$values[0]</code>
      <code>$values[0]</code>
      <code>$values[1]</code>
    </MixedArrayAssignment>
    <MixedAssignment occurrences="4">
      <code>$value</code>
      <code>$values[0]</code>
      <code>$values[0]</code>
      <code>$values[1]</code>
    </MixedAssignment>
    <MixedReturnTypeCoercion occurrences="4">
      <code>$dataSets</code>
      <code>$dataSets</code>
    </MixedReturnTypeCoercion>
    <RedundantCondition occurrences="2">
      <code>isArray</code>
      <code>isArray</code>
    </RedundantCondition>
    <UndefinedDocblockClass occurrences="3">
      <code>FilterChain&amp;MockObject</code>
      <code>NotEmptyValidator&amp;MockObject</code>
      <code>ValidatorChain&amp;MockObject</code>
    </UndefinedDocblockClass>
  </file>
  <file src="test/BaseInputFilterTest.php">
    <InvalidArgument occurrences="5">
      <code>$data</code>
      <code>$input</code>
      <code>$input</code>
      <code>new stdClass()</code>
      <code>new stdClass()</code>
    </InvalidArgument>
    <InvalidDocblock occurrences="1">
      <code>public function addMethodArgumentsProvider(): array</code>
    </InvalidDocblock>
    <LessSpecificReturnStatement occurrences="1"/>
    <MissingClosureParamType occurrences="7">
      <code>$context</code>
      <code>$context</code>
      <code>$data</code>
      <code>$data</code>
      <code>$inputTypeData</code>
      <code>$inputTypeData</code>
      <code>$set</code>
    </MissingClosureParamType>
    <MissingClosureReturnType occurrences="3">
      <code>function ($data) {</code>
      <code>function ($inputTypeData) {</code>
      <code>function ($inputTypeData) {</code>
    </MissingClosureReturnType>
    <MissingReturnType occurrences="36">
      <code>testAddHasGet</code>
      <code>testAddRemove</code>
      <code>testAddWithInvalidInputTypeThrowsInvalidArgumentException</code>
      <code>testAddingExistingInputWillMergeIntoExisting</code>
      <code>testAddingInputWithNameDoesNotInjectNameInInput</code>
      <code>testBuildValidationContextUsingInputGetRawValue</code>
      <code>testContextIsTheSameWhenARequiredInputIsGivenAndOptionalInputIsMissing</code>
      <code>testGetInputs</code>
      <code>testGetRawValueThrowExceptionIfInputDoesNotExists</code>
      <code>testGetThrowExceptionIfInputDoesNotExists</code>
      <code>testGetUnfilteredDataReturnsArray</code>
      <code>testGetUnknownThrowExceptionIfDataWasNotSetYet</code>
      <code>testGetValueThrowExceptionIfInputDoesNotExists</code>
      <code>testHasUnknownThrowExceptionIfDataWasNotSetYet</code>
      <code>testInputFilterIsEmptyByDefault</code>
      <code>testInstanceOfUnfilteredDataInterface</code>
      <code>testIsValidThrowExceptionIfDataWasNotSetYet</code>
      <code>testMerge</code>
      <code>testNestedInputFilterShouldAllowNonArrayValueForData</code>
      <code>testReplace</code>
      <code>testReplaceThrowExceptionIfInputToReplaceDoesNotExists</code>
      <code>testReplaceWithInvalidInputTypeThrowsInvalidArgumentException</code>
      <code>testResetEmptyValidationGroupRecursively</code>
      <code>testSetDataAndGetRawValueGetValue</code>
      <code>testSetDataUsingSetDataAndApplyFiltersReturningSameAsOriginalForUnfilteredData</code>
      <code>testSetDataWithInvalidDataTypeThrowsInvalidArgumentException</code>
      <code>testSetTraversableDataAndGetRawValueGetValue</code>
      <code>testSetUnfilteredDataReturnsBaseInputFilter</code>
      <code>testSetValidationGroupAllowsSpecifyingArrayOfInputsToNestedInputFilter</code>
      <code>testSetValidationGroupSkipsRecursionWhenInputIsNotAnInputFilter</code>
      <code>testSetValidationGroupThrowExceptionIfInputFilterInArgumentListNotExists</code>
      <code>testSetValidationGroupThrowExceptionIfInputFilterNotExists</code>
      <code>testSettingAndReturnDataArrayUsingSetDataForUnfilteredDataInterface</code>
      <code>testSettingAndReturningDataArrayUnfilteredDataInterface</code>
      <code>testValidationContext</code>
      <code>testValidationSkipsFieldsMarkedNotRequiredWhenNoDataPresent</code>
    </MissingReturnType>
    <MixedArgument occurrences="6">
      <code>$data</code>
      <code>$dataTypes['Traversable']($data)</code>
      <code>$input</code>
      <code>$input</code>
      <code>$set[5]</code>
      <code>$set[6]</code>
    </MixedArgument>
    <MixedArgumentTypeCoercion occurrences="6">
      <code>$inputName</code>
      <code>$inputName</code>
      <code>$inputName</code>
      <code>$msg</code>
      <code>$msg</code>
      <code>$name</code>
    </MixedArgumentTypeCoercion>
    <MixedArrayAccess occurrences="12">
      <code>$filter1-&gt;getValues()['nested']['nestedField1']</code>
      <code>$filter1-&gt;getValues()['nested']['nestedField1']</code>
      <code>$filter1-&gt;getValues()['nested']['nestedField1']</code>
      <code>$inputTypeData[1]</code>
      <code>$inputTypeData[2]</code>
      <code>$set[0]</code>
      <code>$set[0]</code>
      <code>$set[2]</code>
      <code>$set[5]</code>
      <code>$set[5]</code>
      <code>$set[6]</code>
      <code>$set[6]</code>
    </MixedArrayAccess>
    <MixedArrayAssignment occurrences="3">
      <code>$set[0]</code>
      <code>$set[5]</code>
      <code>$set[6]</code>
    </MixedArrayAssignment>
    <MixedArrayOffset occurrences="3">
      <code>$set[0][$name]</code>
      <code>$set[5][$name]</code>
      <code>$set[6][$name]</code>
    </MixedArrayOffset>
    <MixedAssignment occurrences="12">
      <code>$createMock</code>
      <code>$expectedRawValue</code>
      <code>$expectedValue</code>
      <code>$input</code>
      <code>$input</code>
      <code>$input</code>
      <code>$name</code>
      <code>$set[0][$name]</code>
      <code>$set[5][$name]</code>
      <code>$set[6][$name]</code>
      <code>$tmpTemplate[2]</code>
      <code>$tmpTemplate[3]</code>
    </MixedAssignment>
    <MixedFunctionCall occurrences="1">
      <code>$createMock($set[2])</code>
    </MixedFunctionCall>
    <MixedInferredReturnType occurrences="1"/>
    <MixedReturnTypeCoercion occurrences="2">
      <code>$dataSets</code>
    </MixedReturnTypeCoercion>
    <MoreSpecificReturnType occurrences="1">
      <code>array&lt;string, array{0: InputInterface, 1: null|string, 2: MockObject&amp;InputInterface}&gt;</code>
    </MoreSpecificReturnType>
    <NullArgument occurrences="1">
      <code>null</code>
    </NullArgument>
    <PossiblyNullArgument occurrences="2">
      <code>$expectedInputName</code>
      <code>$expectedInputName</code>
    </PossiblyNullArgument>
    <PossiblyUndefinedMethod occurrences="3">
      <code>getName</code>
      <code>getName</code>
      <code>isRequired</code>
    </PossiblyUndefinedMethod>
  </file>
  <file src="test/CollectionInputFilterTest.php">
    <ArgumentTypeCoercion occurrences="2">
      <code>$expectedType</code>
      <code>$inputFilter</code>
    </ArgumentTypeCoercion>
    <InvalidArgument occurrences="2">
      <code>new stdClass()</code>
      <code>testDataVsValid</code>
    </InvalidArgument>
    <InvalidReturnStatement occurrences="2"/>
    <InvalidReturnType occurrences="2">
      <code>array&lt;string, array{0: null|int, 1: bool}&gt;</code>
    </InvalidReturnType>
    <MissingClosureParamType occurrences="1">
      <code>$set</code>
    </MissingClosureParamType>
    <MissingClosureReturnType occurrences="3">
      <code>function () use ($dataRaw, $dataFiltered) {</code>
      <code>function () use ($dataRaw, $dataFiltered) {</code>
      <code>function () use ($dataRaw, $dataFiltered, $errorMessage) {</code>
    </MissingClosureReturnType>
    <MissingReturnType occurrences="22">
      <code>testAllowsComposingANotEmptyValidator</code>
      <code>testCollectionValidationDoesNotReuseMessagesBetweenInputs</code>
      <code>testCollectionValidationUsesCustomInputErrorMessages</code>
      <code>testDataVsValid</code>
      <code>testDuplicatedErrorMessages</code>
      <code>testGetCountReturnsRightCountOnConsecutiveCallsWithDifferentData</code>
      <code>testGetDefaultInputFilter</code>
      <code>testGetUnknownFieldIsUnknown</code>
      <code>testGetUnknownWhenAllFieldsAreKnownReturnsAnEmptyArray</code>
      <code>testGetUnknownWhenDataAreNotProvidedThrowsRuntimeException</code>
      <code>testLazyLoadsANotEmptyValidatorWhenNoneProvided</code>
      <code>testNestingCollectionCountCached</code>
      <code>testSetCount</code>
      <code>testSetDataUsingSetDataAndRunningIsValidReturningSameAsOriginalForUnfilteredData</code>
      <code>testSetInputFilter</code>
      <code>testSetInputFilterWithInvalidTypeThrowsInvalidArgumentException</code>
      <code>testSetRequired</code>
      <code>testSetValidationGroupUsingFormStyle</code>
      <code>testSettingDataAsArrayWithInvalidCollectionsRaisesException</code>
      <code>testSettingDataAsTraversableWithInvalidCollectionsRaisesException</code>
      <code>testSettingDataWithNonArrayNonTraversableRaisesException</code>
      <code>testUsesMessageFromComposedNotEmptyValidatorWhenRequiredButCollectionIsEmpty</code>
    </MissingReturnType>
    <MixedArgument occurrences="15">
      <code>$data</code>
      <code>$messages[0]</code>
      <code>$messages[0]</code>
      <code>$messages[0]['phone']</code>
      <code>$messages[0]['phone']</code>
      <code>$messages[0]['phone']</code>
      <code>$messages[0]['phone']</code>
      <code>$messages[0]['phone']</code>
      <code>$messages[1]</code>
      <code>$messages[1]</code>
      <code>$messages[1]['phone']</code>
      <code>$messages[1]['phone']</code>
      <code>$messages[1]['phone']</code>
      <code>$messages[1]['phone']</code>
      <code>$messages[1]['phone']</code>
    </MixedArgument>
    <MixedArrayAccess occurrences="11">
      <code>$messages[0]['phone']</code>
      <code>$messages[0]['phone']</code>
      <code>$messages[0]['phone']</code>
      <code>$messages[0]['phone']</code>
      <code>$messages[0]['phone']</code>
      <code>$messages[1]['phone']</code>
      <code>$messages[1]['phone']</code>
      <code>$messages[1]['phone']</code>
      <code>$messages[1]['phone']</code>
      <code>$messages[1]['phone']</code>
      <code>$set[3]</code>
    </MixedArrayAccess>
    <MixedArrayAssignment occurrences="1">
      <code>$set[3]</code>
    </MixedArrayAssignment>
    <MixedAssignment occurrences="2">
      <code>$inputFilter</code>
      <code>$set[3]</code>
    </MixedAssignment>
    <MixedFunctionCall occurrences="1">
      <code>$set[3]()</code>
    </MixedFunctionCall>
    <MixedMethodCall occurrences="11">
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>with</code>
      <code>with</code>
    </MixedMethodCall>
    <MixedReturnTypeCoercion occurrences="2">
      <code>$dataSets</code>
    </MixedReturnTypeCoercion>
    <PossiblyInvalidArgument occurrences="2">
      <code>$baseInputFilter</code>
      <code>$baseInputFilter</code>
    </PossiblyInvalidArgument>
    <PossiblyUndefinedMethod occurrences="7">
      <code>expects</code>
      <code>expects</code>
      <code>expects</code>
      <code>expects</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
    </PossiblyUndefinedMethod>
  </file>
  <file src="test/ConfigProviderTest.php">
    <MissingReturnType occurrences="3">
      <code>testInvocationProvidesDependencyConfiguration</code>
      <code>testProvidesExpectedConfiguration</code>
      <code>testProvidesExpectedInputFilterConfiguration</code>
    </MissingReturnType>
  </file>
  <file src="test/FactoryTest.php">
    <DeprecatedMethod occurrences="7">
      <code>allowEmpty</code>
      <code>allowEmpty</code>
      <code>allowEmpty</code>
      <code>allowEmpty</code>
      <code>continueIfEmpty</code>
      <code>setMethods</code>
      <code>setMethods</code>
    </DeprecatedMethod>
    <InvalidArgument occurrences="2">
      <code>'invalid_value'</code>
      <code>'invalid_value'</code>
    </InvalidArgument>
    <MissingReturnType occurrences="56">
      <code>testCanCreateInputFilterFromProvider</code>
      <code>testCanCreateInputFilterWithNullInputs</code>
      <code>testCanCreateInputFromProvider</code>
      <code>testCanSetInputErrorMessage</code>
      <code>testClearDefaultFilterChain</code>
      <code>testClearDefaultValidatorChain</code>
      <code>testConflictNameWithInputFilterType</code>
      <code>testCreateInputFilterConfiguredNameWhenSpecIsIntegerIndexed</code>
      <code>testCreateInputFilterUsesAssociatedNameMappingOverConfiguredName</code>
      <code>testCreateInputFilterUsesConfiguredNameForNestedInputFilters</code>
      <code>testCreateInputFilterWithInvalidDataTypeThrowsInvalidArgumentException</code>
      <code>testCreateInputWithFiltersAsAnCollectionOfInvalidTypesThrowException</code>
      <code>testCreateInputWithFiltersAsAnInvalidTypeThrowException</code>
      <code>testCreateInputWithFiltersAsAnSpecificationWithMissingNameThrowException</code>
      <code>testCreateInputWithInvalidDataTypeThrowsInvalidArgumentException</code>
      <code>testCreateInputWithSpecificInputTypeSettingsThrowException</code>
      <code>testCreateInputWithTypeAsAnInvalidClassInstanceThrowException</code>
      <code>testCreateInputWithTypeAsAnInvalidPluginInstanceThrowException</code>
      <code>testCreateInputWithTypeAsAnUnknownPluginAndNotExistsAsClassNameThrowException</code>
      <code>testCreateInputWithValidatorsAsAnCollectionOfInvalidTypesThrowException</code>
      <code>testCreateInputWithValidatorsAsAnInvalidTypeThrowException</code>
      <code>testCreateInputWithValidatorsAsAnSpecificationWithMissingNameThrowException</code>
      <code>testCustomFactoryInCollection</code>
      <code>testFactoryAcceptsCollectionInputFilter</code>
      <code>testFactoryAcceptsInputFilterInterface</code>
      <code>testFactoryAcceptsInputInterface</code>
      <code>testFactoryAllowsInjectingFilterChain</code>
      <code>testFactoryAllowsInjectingValidatorChain</code>
      <code>testFactoryAllowsPassingFilterChainsInInputSpec</code>
      <code>testFactoryAllowsPassingValidatorChainsInInputSpec</code>
      <code>testFactoryCanCreateCollectionInputFilterWithRequiredMessage</code>
      <code>testFactoryComposesFilterChainByDefault</code>
      <code>testFactoryComposesValidatorChainByDefault</code>
      <code>testFactoryInjectsComposedFilterAndValidatorChainsIntoInputObjectsWhenCreatingNewInputFilterObjects</code>
      <code>testFactoryUsesComposedFilterChainWhenCreatingNewInputObjects</code>
      <code>testFactoryUsesComposedValidatorChainWhenCreatingNewInputObjects</code>
      <code>testFactoryValidatorsPriority</code>
      <code>testFactoryWillCreateInputFilterAndAllInputObjectsFromGivenConfiguration</code>
      <code>testFactoryWillCreateInputFilterMatchingInputNameWhenNotSpecified</code>
      <code>testFactoryWillCreateInputWithContinueIfEmptyFlag</code>
      <code>testFactoryWillCreateInputWithErrorMessage</code>
      <code>testFactoryWillCreateInputWithSuggestedAllowEmptyFlagAndImpliesRequiredFlag</code>
      <code>testFactoryWillCreateInputWithSuggestedFilters</code>
      <code>testFactoryWillCreateInputWithSuggestedName</code>
      <code>testFactoryWillCreateInputWithSuggestedRequiredFlagAndAlternativeAllowEmptyFlag</code>
      <code>testFactoryWillCreateInputWithSuggestedValidators</code>
      <code>testFactoryWillNotGetPrioritySetting</code>
      <code>testGetInputFilterManagerSettedByItsSetter</code>
      <code>testGetInputFilterManagerWhenYouConstructFactoryWithIt</code>
      <code>testInputFromPluginManagerMayBeFurtherConfiguredWithSpec</code>
      <code>testSetInputFilterManagerOnConstruct</code>
      <code>testSetInputFilterManagerWithServiceManager</code>
      <code>testSetInputFilterManagerWithoutServiceManager</code>
      <code>testSetsBreakChainOnFailure</code>
      <code>testSuggestedTypeMayBePluginNameInInputFilterPluginManager</code>
      <code>testWhenCreateInputPullsInputFromThePluginManagerItMustNotOverwriteFilterAndValidatorChains</code>
    </MissingReturnType>
    <MixedArrayAccess occurrences="1">
      <code>$validator['instance']</code>
    </MixedArrayAccess>
    <MixedAssignment occurrences="3">
      <code>$defaultFilterChain</code>
      <code>$defaultValidatorChain</code>
      <code>$validator</code>
    </MixedAssignment>
    <MixedMethodCall occurrences="18">
      <code>count</code>
      <code>count</code>
      <code>getFilters</code>
      <code>getPluginManager</code>
      <code>getPluginManager</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>will</code>
      <code>will</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>with</code>
      <code>with</code>
      <code>with</code>
    </MixedMethodCall>
    <PossiblyInvalidArgument occurrences="5">
      <code>$pluginManager</code>
      <code>$pluginManager</code>
      <code>$pluginManager</code>
      <code>$provider</code>
      <code>$provider</code>
    </PossiblyInvalidArgument>
    <PossiblyNullReference occurrences="2">
      <code>getPluginManager</code>
      <code>getPluginManager</code>
    </PossiblyNullReference>
    <PossiblyUndefinedMethod occurrences="16">
      <code>breakOnFailure</code>
      <code>breakOnFailure</code>
      <code>expects</code>
      <code>expects</code>
      <code>expects</code>
      <code>expects</code>
      <code>expects</code>
      <code>getErrorMessage</code>
      <code>getErrorMessage</code>
      <code>getFilterChain</code>
      <code>getFilterChain</code>
      <code>getName</code>
      <code>getName</code>
      <code>getValidatorChain</code>
      <code>isRequired</code>
      <code>setValue</code>
    </PossiblyUndefinedMethod>
    <RawObjectIteration occurrences="1">
      <code>$chain</code>
    </RawObjectIteration>
    <UndefinedInterfaceMethod occurrences="1">
      <code>continueIfEmpty</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="test/FileInput/HttpServerFileInputDecoratorTest.php">
    <DeprecatedMethod occurrences="1">
      <code>setMethods</code>
    </DeprecatedMethod>
    <ImplementedReturnTypeMismatch occurrences="1">
      <code>array&lt;string, string&gt;</code>
    </ImplementedReturnTypeMismatch>
    <InvalidArgument occurrences="2">
      <code>''</code>
      <code>''</code>
    </InvalidArgument>
    <InvalidReturnStatement occurrences="1">
      <code>$dataSets</code>
    </InvalidReturnStatement>
    <InvalidReturnType occurrences="1">
      <code>iterable</code>
    </InvalidReturnType>
    <LessSpecificReturnStatement occurrences="1"/>
    <MissingReturnType occurrences="23">
      <code>testAutoPrependUploadValidatorIsOnByDefault</code>
      <code>testCanFilterArrayOfMultiFileData</code>
      <code>testCanRetrieveRawValue</code>
      <code>testDefaultInjectedUploadValidatorRespectsRelease2Convention</code>
      <code>testFallbackValueVsIsValidRules</code>
      <code>testFallbackValueVsIsValidRulesWhenValueNotSet</code>
      <code>testFileInputMerge</code>
      <code>testIsEmptyFileMultiFileOk</code>
      <code>testIsEmptyFileNotArray</code>
      <code>testIsEmptyFileOk</code>
      <code>testIsEmptyFileUploadNoFile</code>
      <code>testIsEmptyMultiFileUploadNoFile</code>
      <code>testNotEmptyValidatorAddedWhenIsValidIsCalled</code>
      <code>testRequiredNotEmptyValidatorNotAddedWhenOneExists</code>
      <code>testRequiredUploadValidatorValidatorNotAddedWhenOneExists</code>
      <code>testRetrievingValueFiltersTheValue</code>
      <code>testRetrievingValueFiltersTheValueOnlyAfterValidating</code>
      <code>testUploadValidatorIsAddedWhenIsValidIsCalled</code>
      <code>testUploadValidatorIsNotAddedWhenIsValidIsCalled</code>
      <code>testValidationOperatesBeforeFiltering</code>
      <code>testValidationOperatesOnFilteredValue</code>
      <code>testValidationsRunWithoutFileArrayDueToAjaxPost</code>
      <code>testValidationsRunWithoutFileArrayIsSend</code>
    </MissingReturnType>
    <MixedArrayAccess occurrences="2">
      <code>$validators[0]['instance']</code>
      <code>$validators[0]['instance']</code>
    </MixedArrayAccess>
    <MoreSpecificReturnType occurrences="1">
      <code>array</code>
    </MoreSpecificReturnType>
    <NonInvariantDocblockPropertyType occurrences="1">
      <code>$input</code>
    </NonInvariantDocblockPropertyType>
    <PossiblyInvalidArgument occurrences="7">
      <code>$this-&gt;createFilterChainMock([[$badValue, $filteredValue]])</code>
      <code>$this-&gt;createFilterChainMock([[$value, $newValue]])</code>
      <code>$this-&gt;createFilterChainMock([[$value, $newValue]])</code>
      <code>$this-&gt;createValidatorChainMock([[$badValue, null, false]])</code>
      <code>$this-&gt;createValidatorChainMock([[$expectedNormalizedValue, null, false]])</code>
      <code>$this-&gt;createValidatorChainMock([[$expectedNormalizedValue, null, false]])</code>
    </PossiblyInvalidArgument>
    <PropertyTypeCoercion occurrences="1">
      <code>new FileInput('foo')</code>
    </PropertyTypeCoercion>
  </file>
  <file src="test/FileInput/PsrFileInputDecoratorTest.php">
    <ImplementedReturnTypeMismatch occurrences="4">
      <code>UploadedFileInterface</code>
    </ImplementedReturnTypeMismatch>
    <InvalidArgument occurrences="6">
      <code>$badValue-&gt;reveal()</code>
      <code>$upload-&gt;reveal()</code>
      <code>$upload-&gt;reveal()</code>
      <code>$uploadedFile-&gt;reveal()</code>
      <code>$uploadedFile-&gt;reveal()</code>
      <code>$value-&gt;reveal()</code>
    </InvalidArgument>
    <InvalidReturnType occurrences="1"/>
    <MissingReturnType occurrences="19">
      <code>testAutoPrependUploadValidatorIsOnByDefault</code>
      <code>testCanFilterArrayOfMultiFileData</code>
      <code>testCanRetrieveRawValue</code>
      <code>testFallbackValueVsIsValidRules</code>
      <code>testFallbackValueVsIsValidRulesWhenValueNotSet</code>
      <code>testIsEmptyFileMultiFileOk</code>
      <code>testIsEmptyFileOk</code>
      <code>testIsEmptyFileUploadNoFile</code>
      <code>testIsEmptyMultiFileUploadNoFile</code>
      <code>testNotEmptyValidatorAddedWhenIsValidIsCalled</code>
      <code>testPsrFileInputMerge</code>
      <code>testRequiredNotEmptyValidatorNotAddedWhenOneExists</code>
      <code>testRequiredUploadValidatorValidatorNotAddedWhenOneExists</code>
      <code>testRetrievingValueFiltersTheValue</code>
      <code>testRetrievingValueFiltersTheValueOnlyAfterValidating</code>
      <code>testUploadValidatorIsAddedDuringIsValidWhenAutoPrependUploadValidatorIsEnabled</code>
      <code>testUploadValidatorIsNotAddedByDefaultDuringIsValidWhenAutoPrependUploadValidatorIsDisabled</code>
      <code>testValidationOperatesBeforeFiltering</code>
      <code>testValidationOperatesOnFilteredValue</code>
    </MissingReturnType>
    <MixedArgumentTypeCoercion occurrences="1">
      <code>[$upload, 'reveal']</code>
    </MixedArgumentTypeCoercion>
    <MixedArrayAccess occurrences="2">
      <code>$validators[0]['instance']</code>
      <code>$validators[0]['instance']</code>
    </MixedArrayAccess>
    <NonInvariantDocblockPropertyType occurrences="1">
      <code>$input</code>
    </NonInvariantDocblockPropertyType>
    <PossiblyInvalidArgument occurrences="5">
      <code>$this-&gt;createFilterChainMock([[$badValue-&gt;reveal(), $filteredValue]])</code>
      <code>$this-&gt;createFilterChainMock([[$value-&gt;reveal(), $filteredValue]])</code>
      <code>$this-&gt;createValidatorChainMock([[$badValue-&gt;reveal(), null, false]])</code>
    </PossiblyInvalidArgument>
    <PropertyTypeCoercion occurrences="1">
      <code>new FileInput('foo')</code>
    </PropertyTypeCoercion>
    <TypeDoesNotContainType occurrences="1">
      <code>$generator instanceof Generator</code>
    </TypeDoesNotContainType>
  </file>
  <file src="test/InputFilterAbstractServiceFactoryTest.php">
    <MissingClosureReturnType occurrences="2">
      <code>function () {</code>
      <code>function () {</code>
    </MissingClosureReturnType>
    <MissingReturnType occurrences="10">
      <code>testAllowsPassingNonPluginManagerContainerToFactoryWithServiceManagerV2</code>
      <code>testCanCreateServiceIfConfigInputFiltersContainsMatchingServiceName</code>
      <code>testCannotCreateServiceIfConfigInputFiltersDoesNotContainMatchingServiceName</code>
      <code>testCannotCreateServiceIfConfigServiceDoesNotHaveInputFiltersConfiguration</code>
      <code>testCannotCreateServiceIfNoConfigServicePresent</code>
      <code>testCreatesInputFilterInstance</code>
      <code>testInjectsInputFilterManagerFromServiceManager</code>
      <code>testRetrieveInputFilterFromInputFilterPluginManager</code>
      <code>testUsesConfiguredValidationAndFilterManagerServicesWhenCreatingInputFilter</code>
      <code>testWillUseCustomFiltersWhenProvided</code>
    </MissingReturnType>
    <MixedArgument occurrences="4">
      <code>$filterChain</code>
      <code>$filterChain</code>
      <code>$validatorChain</code>
      <code>$validatorChain</code>
    </MixedArgument>
    <MixedAssignment occurrences="4">
      <code>$filterChain</code>
      <code>$input</code>
      <code>$inputFilter</code>
      <code>$validatorChain</code>
    </MixedAssignment>
    <MixedMethodCall occurrences="13">
      <code>addAbstractFactory</code>
      <code>addAbstractFactory</code>
      <code>get</code>
      <code>get</code>
      <code>get</code>
      <code>getFilterChain</code>
      <code>getInputFilterManager</code>
      <code>getPluginManager</code>
      <code>getPluginManager</code>
      <code>getValidatorChain</code>
      <code>has</code>
      <code>plugin</code>
      <code>plugin</code>
    </MixedMethodCall>
    <UndefinedInterfaceMethod occurrences="1">
      <code>getFactory</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="test/InputFilterAwareTraitTest.php">
    <InvalidScalarArgument occurrences="2">
      <code>InputFilterAwareTrait::class</code>
      <code>InputFilterAwareTrait::class</code>
    </InvalidScalarArgument>
    <MissingReturnType occurrences="2">
      <code>testGetInputFilter</code>
      <code>testSetInputFilter</code>
    </MissingReturnType>
    <MixedMethodCall occurrences="4">
      <code>getInputFilter</code>
      <code>getInputFilter</code>
      <code>setInputFilter</code>
      <code>setInputFilter</code>
    </MixedMethodCall>
  </file>
  <file src="test/InputFilterPluginManagerCompatibilityTest.php">
    <InvalidReturnType occurrences="1">
      <code>getInstanceOf</code>
    </InvalidReturnType>
  </file>
  <file src="test/InputFilterPluginManagerFactoryTest.php">
    <LessSpecificReturnStatement occurrences="1"/>
    <MissingClosureReturnType occurrences="1">
      <code>function () use ($inputFilter) {</code>
    </MissingClosureReturnType>
    <MissingReturnType occurrences="7">
      <code>testConfiguresInputFilterServicesWhenFound</code>
      <code>testDoesNotConfigureInputFilterServicesWhenConfigServiceDoesNotContainInputFiltersConfig</code>
      <code>testDoesNotConfigureInputFilterServicesWhenConfigServiceNotPresent</code>
      <code>testDoesNotConfigureInputFilterServicesWhenServiceListenerPresent</code>
      <code>testFactoryConfiguresPluginManagerUnderContainerInterop</code>
      <code>testFactoryConfiguresPluginManagerUnderServiceManagerV2</code>
      <code>testFactoryReturnsPluginManager</code>
    </MissingReturnType>
    <MoreSpecificReturnType occurrences="1">
      <code>array&lt;string, array{0: class-string&lt;InputInterface&gt;}&gt;</code>
    </MoreSpecificReturnType>
  </file>
  <file src="test/InputFilterPluginManagerTest.php">
    <ArgumentTypeCoercion occurrences="2">
      <code>$this-&gt;getServiceNotFoundException()</code>
      <code>$this-&gt;getServiceNotFoundException()</code>
    </ArgumentTypeCoercion>
    <LessSpecificReturnStatement occurrences="1"/>
    <MissingReturnType occurrences="10">
      <code>testDefaultInvokableClasses</code>
      <code>testGet</code>
      <code>testInputFilterInvokableClassSMDependenciesArePopulatedWithServiceLocator</code>
      <code>testInputFilterInvokableClassSMDependenciesArePopulatedWithoutServiceLocator</code>
      <code>testIsASubclassOfAbstractPluginManager</code>
      <code>testIsNotSharedByDefault</code>
      <code>testLoadingInvalidElementRaisesException</code>
      <code>testPopulateFactoryCanAcceptInputFilterAsFirstArgumentAndWillUseFactoryWhenItDoes</code>
      <code>testRegisteringInvalidElementRaisesException</code>
      <code>testServicesAreInitiatedIfImplementsInitializableInterface</code>
    </MissingReturnType>
    <MoreSpecificReturnType occurrences="1"/>
    <PossiblyNullReference occurrences="2">
      <code>getPluginManager</code>
      <code>getPluginManager</code>
    </PossiblyNullReference>
    <RedundantConditionGivenDocblockType occurrences="1">
      <code>method_exists($this-&gt;manager, 'configure')</code>
    </RedundantConditionGivenDocblockType>
  </file>
  <file src="test/InputFilterTest.php">
    <ImplementedReturnTypeMismatch occurrences="1"/>
    <LessSpecificReturnStatement occurrences="1">
      <code>$dataSets</code>
    </LessSpecificReturnStatement>
    <MissingReturnType occurrences="3">
      <code>testCanComposeAFactory</code>
      <code>testLazilyComposesAFactoryByDefault</code>
      <code>testNestedInputFilterShouldAllowNullValueForData</code>
    </MissingReturnType>
    <MixedArrayAccess occurrences="2">
      <code>$filter1-&gt;getValues()['nested']['nestedField1']</code>
      <code>$filter1-&gt;getValues()['nested']['nestedField1']</code>
    </MixedArrayAccess>
    <MoreSpecificReturnType occurrences="1"/>
    <NonInvariantDocblockPropertyType occurrences="1">
      <code>$inputFilter</code>
    </NonInvariantDocblockPropertyType>
    <PossiblyInvalidArgument occurrences="1">
      <code>$factory</code>
    </PossiblyInvalidArgument>
  </file>
  <file src="test/InputTest.php">
    <DeprecatedMethod occurrences="25">
      <code>allowEmpty</code>
      <code>allowEmpty</code>
      <code>continueIfEmpty</code>
      <code>continueIfEmpty</code>
      <code>continueIfEmpty</code>
      <code>continueIfEmpty</code>
      <code>continueIfEmpty</code>
      <code>setAllowEmpty</code>
      <code>setAllowEmpty</code>
      <code>setAllowEmpty</code>
      <code>setAllowEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setContinueIfEmpty</code>
      <code>setMethods</code>
      <code>setMethods</code>
    </DeprecatedMethod>
    <InvalidReturnStatement occurrences="2">
      <code>$dataSets</code>
    </InvalidReturnStatement>
    <InvalidReturnType occurrences="2"/>
    <LessSpecificReturnStatement occurrences="1">
      <code>array_merge($emptyValues, $mixedValues)</code>
    </LessSpecificReturnStatement>
    <MissingClosureParamType occurrences="6">
      <code>$context</code>
      <code>$context</code>
      <code>$context</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
    </MissingClosureParamType>
    <MissingClosureReturnType occurrences="3">
      <code>function ($value, $context = null) use ($validatorMsg) {</code>
      <code>function ($value, $context = null) {</code>
      <code>function ($value, $context = null) {</code>
    </MissingClosureReturnType>
    <MissingReturnType occurrences="40">
      <code>testAllowEmptyFlagIsMutable</code>
      <code>testBreakOnFailureFlagIsMutable</code>
      <code>testBreakOnFailureFlagIsOffByDefault</code>
      <code>testCanInjectFilterChain</code>
      <code>testCanInjectValidatorChain</code>
      <code>testCanRetrieveRawValue</code>
      <code>testClearFallbackValue</code>
      <code>testConstructorRequiresAName</code>
      <code>testContinueIfEmptyFlagIsFalseByDefault</code>
      <code>testContinueIfEmptyFlagIsMutable</code>
      <code>testDefaultGetValue</code>
      <code>testDoNotInjectNotEmptyValidatorIfAnywhereInChain</code>
      <code>testFallbackValueVsIsValidRules</code>
      <code>testFallbackValueVsIsValidRulesWhenValueNotSet</code>
      <code>testInputDoesNotAllowEmptyValuesByDefault</code>
      <code>testInputHasEmptyFilterChainByDefault</code>
      <code>testInputHasEmptyValidatorChainByDefault</code>
      <code>testInputIsMarkedAsRequiredByDefault</code>
      <code>testInputMergeWithSourceValue</code>
      <code>testInputMergeWithTargetValue</code>
      <code>testInputMergeWithoutValues</code>
      <code>testIsRequiredVsAllowEmptyVsContinueIfEmptyVsIsValid</code>
      <code>testMerge</code>
      <code>testNotEmptyMessageIsTranslated</code>
      <code>testNotEmptyValidatorAddedWhenIsValidIsCalled</code>
      <code>testNotEmptyValidatorNotInjectedIfContinueIfEmptyIsTrue</code>
      <code>testNotRequiredWithoutFallbackAndValueNotSetThenIsValid</code>
      <code>testRequiredFlagIsMutable</code>
      <code>testRequiredNotEmptyValidatorNotAddedWhenOneExists</code>
      <code>testRequiredWithoutFallbackAndValueNotSetProvidesAttachedNotEmptyValidatorIsEmptyErrorMessage</code>
      <code>testRequiredWithoutFallbackAndValueNotSetProvidesCustomErrorMessageWhenSet</code>
      <code>testRequiredWithoutFallbackAndValueNotSetProvidesNotEmptyValidatorIsEmptyErrorMessage</code>
      <code>testRequiredWithoutFallbackAndValueNotSetThenFail</code>
      <code>testRequiredWithoutFallbackAndValueNotSetThenFailReturnsCustomErrorMessageWhenSet</code>
      <code>testResetValueReturnsInputValueToDefaultValue</code>
      <code>testRetrievingValueFiltersTheValue</code>
      <code>testSetFallbackValue</code>
      <code>testSetValuePutInputInTheDesiredState</code>
      <code>testValidationOperatesOnFilteredValue</code>
      <code>testValueMayBeInjected</code>
    </MissingReturnType>
    <MixedArrayAccess occurrences="5">
      <code>$messageTemplates[NotEmptyValidator::IS_EMPTY]</code>
      <code>$validators[0]['instance']</code>
      <code>$validators[1]['instance']</code>
      <code>$value['filtered']</code>
      <code>$value['raw']</code>
    </MixedArrayAccess>
    <MixedAssignment occurrences="5">
      <code>$isValidMethod</code>
      <code>$isValidMethod</code>
      <code>$messageTemplates</code>
      <code>$tmpTemplate[4]</code>
      <code>$value</code>
    </MixedAssignment>
    <MixedMethodCall occurrences="27">
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturnMap</code>
      <code>willReturnMap</code>
      <code>with</code>
      <code>with</code>
      <code>with</code>
      <code>with</code>
      <code>with</code>
    </MixedMethodCall>
    <MoreSpecificReturnType occurrences="1"/>
    <PossiblyInvalidArgument occurrences="17">
      <code>$chain</code>
      <code>$chain</code>
      <code>$filterChain</code>
      <code>$filterChain</code>
      <code>$filterChain</code>
      <code>$filterChain</code>
      <code>$notEmptyMock</code>
      <code>$notEmptyMock</code>
      <code>$source</code>
      <code>$targetFilterChain</code>
      <code>$targetValidatorChain</code>
      <code>$this-&gt;createValidatorChainMock()</code>
      <code>$this-&gt;createValidatorChainMock([[$originalValue, null, $isValid]])</code>
      <code>$this-&gt;createValidatorMock(null, null)</code>
      <code>$this-&gt;createValidatorMock(true)</code>
      <code>$translator</code>
      <code>$validatorChain</code>
    </PossiblyInvalidArgument>
    <PossiblyUndefinedMethod occurrences="20">
      <code>expects</code>
      <code>expects</code>
      <code>expects</code>
      <code>expects</code>
      <code>expects</code>
      <code>expects</code>
      <code>expects</code>
      <code>expects</code>
      <code>getFilterChain</code>
      <code>getValidatorChain</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
      <code>method</code>
    </PossiblyUndefinedMethod>
    <RedundantCondition occurrences="1">
      <code>isArray</code>
    </RedundantCondition>
    <RedundantConditionGivenDocblockType occurrences="1">
      <code>assertIsArray</code>
    </RedundantConditionGivenDocblockType>
  </file>
  <file src="test/ModuleTest.php">
    <InvalidArgument occurrences="1">
      <code>$moduleManager-&gt;reveal()</code>
    </InvalidArgument>
    <MissingReturnType occurrences="5">
      <code>testGetConfigMethodShouldReturnExpectedKeys</code>
      <code>testInitMethodShouldRegisterPluginManagerSpecificationWithServiceListener</code>
      <code>testInputFilterConfigShouldContainAbstractServiceFactory</code>
      <code>testServiceManagerConfigShouldContainAliasForInputFilterManager</code>
      <code>testServiceManagerConfigShouldContainInputFilterManager</code>
    </MissingReturnType>
    <MixedArgument occurrences="3">
      <code>$config['input_filters']['abstract_factories']</code>
      <code>$config['service_manager']['aliases']</code>
      <code>$config['service_manager']['factories']</code>
    </MixedArgument>
    <MixedArrayAccess occurrences="3">
      <code>$config['input_filters']['abstract_factories']</code>
      <code>$config['service_manager']['aliases']</code>
      <code>$config['service_manager']['factories']</code>
    </MixedArrayAccess>
  </file>
  <file src="test/OptionalInputFilterTest.php">
    <MissingReturnType occurrences="8">
      <code>assertGetValuesThrows</code>
      <code>testIteratorBehavesTheSameAsArray</code>
      <code>testStateIsClearedBetweenValidationAttempts</code>
      <code>testValidatesSuccessfullyWhenEmptyDataSetProvided</code>
      <code>testValidatesSuccessfullyWhenNoDataProvided</code>
      <code>testValidatesSuccessfullyWhenSetDataIsNeverCalled</code>
      <code>testValidatesSuccessfullyWhenValidNonEmptyDataSetProvided</code>
      <code>testValidationFailureWhenInvalidDataSetIsProvided</code>
    </MissingReturnType>
  </file>
  <file src="test/TestAsset/CustomFactory.php">
    <PropertyNotSetInConstructor occurrences="1">
      <code>CustomFactory</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="test/TestAsset/CustomInput.php">
    <DeprecatedInterface occurrences="1">
      <code>CustomInput</code>
    </DeprecatedInterface>
  </file>
  <file src="test/TestAsset/FooAbstractFactory.php">
    <DeprecatedInterface occurrences="1">
      <code>FooAbstractFactory</code>
    </DeprecatedInterface>
    <InvalidNullableReturnType occurrences="1">
      <code>canCreate</code>
    </InvalidNullableReturnType>
    <ParamNameMismatch occurrences="3">
      <code>$container</code>
      <code>$container</code>
      <code>$name</code>
    </ParamNameMismatch>
  </file>
  <file src="test/TestAsset/ModuleManagerInterface.php">
    <MissingReturnType occurrences="1">
      <code>getEvent</code>
    </MissingReturnType>
  </file>
  <file src="test/TestAsset/ServiceListenerInterface.php">
    <MissingReturnType occurrences="1">
      <code>addServiceManager</code>
    </MissingReturnType>
  </file>
</files>
