<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="4.10.0@916b098b008f6de4543892b1e0651c1c3b92cbfa">
  <file src="src/Command/DeprecatedStorageFactoryConfigurationCheckCommand.php">
    <MixedArgument occurrences="2">
      <code>$cacheConfiguration</code>
      <code>$configuration</code>
    </MixedArgument>
    <MixedAssignment occurrences="5">
      <code>$cache</code>
      <code>$cacheConfiguration</code>
      <code>$caches</code>
      <code>$caches</code>
      <code>$configuration</code>
    </MixedAssignment>
    <MixedPropertyTypeCoercion occurrences="1">
      <code>$projectConfiguration</code>
    </MixedPropertyTypeCoercion>
  </file>
  <file src="src/Pattern/AbstractPattern.php">
    <InvalidNullableReturnType occurrences="1">
      <code>PatternOptions</code>
    </InvalidNullableReturnType>
    <NullableReturnStatement occurrences="1">
      <code>$this-&gt;options</code>
    </NullableReturnStatement>
  </file>
  <file src="src/Pattern/CallbackCache.php">
    <InvalidArgument occurrences="1">
      <code>$function</code>
    </InvalidArgument>
    <MixedArgument occurrences="2">
      <code>$result</code>
      <code>$result[1] ?? ''</code>
    </MixedArgument>
    <MixedArrayAccess occurrences="2">
      <code>$result[0]</code>
      <code>$result[1]</code>
    </MixedArrayAccess>
    <MixedAssignment occurrences="3">
      <code>$object</code>
      <code>$result</code>
      <code>$ret</code>
    </MixedAssignment>
  </file>
  <file src="src/Pattern/CaptureCache.php">
    <DocblockTypeContradiction occurrences="2">
      <code>$perm === false</code>
      <code>$perm === false</code>
    </DocblockTypeContradiction>
    <MissingClosureParamType occurrences="1">
      <code>$content</code>
    </MissingClosureParamType>
    <MissingReturnType occurrences="2">
      <code>clearByGlob</code>
      <code>set</code>
    </MissingReturnType>
    <MixedArgument occurrences="4">
      <code>$content</code>
      <code>$perm</code>
      <code>$perm</code>
      <code>$perm</code>
    </MixedArgument>
    <MixedInferredReturnType occurrences="1">
      <code>string</code>
    </MixedInferredReturnType>
    <MixedReturnStatement occurrences="1">
      <code>$_SERVER['REQUEST_URI']</code>
    </MixedReturnStatement>
    <PossiblyInvalidMethodCall occurrences="1">
      <code>isFile</code>
    </PossiblyInvalidMethodCall>
    <PossiblyNullOperand occurrences="1">
      <code>$publicDir</code>
    </PossiblyNullOperand>
    <RedundantCondition occurrences="2">
      <code>$perm === false</code>
      <code>0775</code>
    </RedundantCondition>
    <RedundantConditionGivenDocblockType occurrences="3">
      <code>$perm</code>
      <code>$perm !== false</code>
      <code>decoct($perm)</code>
    </RedundantConditionGivenDocblockType>
    <TypeDoesNotContainType occurrences="3">
      <code>$perm !== false</code>
      <code>$perm !== false</code>
      <code>decoct($perm)</code>
    </TypeDoesNotContainType>
  </file>
  <file src="src/Pattern/ObjectCache.php">
    <ImplementedParamTypeMismatch occurrences="2">
      <code>$method</code>
      <code>$method</code>
    </ImplementedParamTypeMismatch>
    <InvalidArrayAccess occurrences="1">
      <code>$callback[1]</code>
    </InvalidArrayAccess>
    <InvalidReturnStatement occurrences="2">
      <code>$this-&gt;call('__set', [$name, $value])</code>
      <code>$this-&gt;call('__unset', [$name])</code>
    </InvalidReturnStatement>
    <MixedArgument occurrences="5">
      <code>$callback[1]</code>
      <code>$property</code>
      <code>$property</code>
      <code>$property</code>
      <code>$property</code>
    </MixedArgument>
    <MixedAssignment occurrences="5">
      <code>$property</code>
      <code>$property</code>
      <code>$property</code>
      <code>$property</code>
      <code>$value</code>
    </MixedAssignment>
    <MixedInferredReturnType occurrences="3">
      <code>bool</code>
      <code>void</code>
      <code>void</code>
    </MixedInferredReturnType>
    <MixedMethodCall occurrences="1">
      <code>$method</code>
    </MixedMethodCall>
    <MixedReturnStatement occurrences="2">
      <code>$this-&gt;call('__isset', [$name])</code>
      <code>$this-&gt;call('__toString')</code>
    </MixedReturnStatement>
    <ParamNameMismatch occurrences="2">
      <code>$method</code>
      <code>$method</code>
    </ParamNameMismatch>
    <PossiblyNullArgument occurrences="8">
      <code>$object</code>
      <code>$object</code>
      <code>$object</code>
      <code>$object</code>
      <code>$object</code>
      <code>$object</code>
      <code>$object</code>
      <code>$object</code>
    </PossiblyNullArgument>
  </file>
  <file src="src/Pattern/OutputCache.php">
    <MixedArgument occurrences="2">
      <code>$data</code>
      <code>$key</code>
    </MixedArgument>
    <MixedAssignment occurrences="2">
      <code>$data</code>
      <code>$key</code>
    </MixedAssignment>
    <RedundantCastGivenDocblockType occurrences="1">
      <code>(string) $key</code>
    </RedundantCastGivenDocblockType>
  </file>
  <file src="src/Pattern/PatternOptions.php">
    <MixedArgument occurrences="1">
      <code>$array</code>
    </MixedArgument>
    <PossiblyInvalidPropertyAssignmentValue occurrences="3">
      <code>$dirPermission</code>
      <code>$filePermission</code>
      <code>$umask</code>
    </PossiblyInvalidPropertyAssignmentValue>
    <PossiblyNullArgument occurrences="1">
      <code>$this-&gt;getObject()</code>
    </PossiblyNullArgument>
    <RedundantCastGivenDocblockType occurrences="6">
      <code>(bool) $cacheOutput</code>
      <code>(bool) $fileLocking</code>
      <code>(bool) $objectCacheMagicProperties</code>
      <code>(string) $indexFilename</code>
      <code>(string) $objectKey</code>
      <code>(string) $publicDir</code>
    </RedundantCastGivenDocblockType>
  </file>
  <file src="src/Psr/CacheItemPool/CacheItem.php">
    <DocblockTypeContradiction occurrences="2">
      <code>$expiration === null || $expiration instanceof DateTimeInterface</code>
      <code>$expiration instanceof DateTimeInterface</code>
    </DocblockTypeContradiction>
    <RedundantConditionGivenDocblockType occurrences="1">
      <code>$time === null</code>
    </RedundantConditionGivenDocblockType>
  </file>
  <file src="src/Psr/CacheItemPool/CacheItemPoolDecorator.php">
    <DocblockTypeContradiction occurrences="1">
      <code>is_array($result)</code>
    </DocblockTypeContradiction>
    <InvalidScalarArgument occurrences="5">
      <code>$e-&gt;getCode()</code>
      <code>$e-&gt;getCode()</code>
      <code>$e-&gt;getCode()</code>
      <code>$e-&gt;getCode()</code>
      <code>$e-&gt;getCode()</code>
    </InvalidScalarArgument>
    <MissingReturnType occurrences="3">
      <code>validateKey</code>
      <code>validateKeys</code>
      <code>validateStorage</code>
    </MissingReturnType>
    <MixedAssignment occurrences="4">
      <code>$cleared</code>
      <code>$key</code>
      <code>$value</code>
      <code>$value</code>
    </MixedAssignment>
    <UndefinedInterfaceMethod occurrences="1">
      <code>flush</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/Psr/SimpleCache/SimpleCacheDecorator.php">
    <DocblockTypeContradiction occurrences="2">
      <code>is_object($ttl)</code>
      <code>null === $ttl</code>
    </DocblockTypeContradiction>
    <MixedArgument occurrences="3">
      <code>$key</code>
      <code>$key</code>
      <code>$key</code>
      <code>$ttl</code>
    </MixedArgument>
    <MixedAssignment occurrences="6">
      <code>$key</code>
      <code>$key</code>
      <code>$key</code>
      <code>$result</code>
      <code>$result</code>
      <code>$results[$key]</code>
      <code>$value</code>
    </MixedAssignment>
    <PossiblyNullArgument occurrences="2">
      <code>$ttl</code>
      <code>$ttl</code>
    </PossiblyNullArgument>
    <RedundantConditionGivenDocblockType occurrences="2">
      <code>null !== $this-&gt;storage-&gt;removeItem($key)</code>
      <code>var_export($ttl, true)</code>
    </RedundantConditionGivenDocblockType>
  </file>
  <file src="src/Service/StorageAdapterFactoryFactory.php">
    <MixedArgument occurrences="2">
      <code>$container-&gt;get(AdapterPluginManager::class)</code>
      <code>$container-&gt;get(StoragePluginFactoryInterface::class)</code>
    </MixedArgument>
  </file>
  <file src="src/Service/StoragePluginFactoryFactory.php">
    <MixedArgument occurrences="1">
      <code>$container-&gt;get(PluginManager::class)</code>
    </MixedArgument>
  </file>
  <file src="src/Storage/Adapter/AbstractAdapter.php">
    <ArgumentTypeCoercion occurrences="1">
      <code>$plugin</code>
    </ArgumentTypeCoercion>
    <DocblockTypeContradiction occurrences="1">
      <code>$this-&gt;pluginRegistry instanceof SplObjectStorage</code>
    </DocblockTypeContradiction>
    <InvalidNullableReturnType occurrences="1">
      <code>bool</code>
    </InvalidNullableReturnType>
    <InvalidScalarArgument occurrences="4">
      <code>$args['key']</code>
      <code>$args['key']</code>
      <code>$args['value']</code>
      <code>$args['value']</code>
    </InvalidScalarArgument>
    <MixedArgument occurrences="20">
      <code>$args['key']</code>
      <code>$args['key']</code>
      <code>$args['key']</code>
      <code>$args['key']</code>
      <code>$args['key']</code>
      <code>$args['key']</code>
      <code>$args['key']</code>
      <code>$args['success']</code>
      <code>$args['success']</code>
      <code>$handle</code>
      <code>$keyValuePairs</code>
      <code>$keyValuePairs</code>
      <code>$keyValuePairs</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
      <code>$value</code>
      <code>$value</code>
    </MixedArgument>
    <MixedArgumentTypeCoercion occurrences="6">
      <code>$key</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
    </MixedArgumentTypeCoercion>
    <MixedAssignment occurrences="43">
      <code>$args['casToken']</code>
      <code>$handle</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
      <code>$normalizedKey</code>
      <code>$normalizedKeyValuePairs[$key]</code>
      <code>$oldValue</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result[$normalizedKey]</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
    </MixedAssignment>
    <MixedInferredReturnType occurrences="24">
      <code>AdapterOptions</code>
      <code>Capabilities</code>
      <code>array</code>
      <code>array</code>
      <code>array</code>
      <code>array</code>
      <code>array</code>
      <code>array</code>
      <code>array</code>
      <code>array</code>
      <code>array</code>
      <code>array</code>
      <code>array|bool</code>
      <code>bool</code>
      <code>bool</code>
      <code>bool</code>
      <code>bool</code>
      <code>bool</code>
      <code>bool</code>
      <code>bool</code>
      <code>int|bool</code>
      <code>int|bool</code>
      <code>int|bool</code>
      <code>int|bool</code>
    </MixedInferredReturnType>
    <MixedMethodCall occurrences="1">
      <code>setAdapter</code>
    </MixedMethodCall>
    <MixedReturnStatement occurrences="45">
      <code>$newValue</code>
      <code>$newValue</code>
      <code>$this-&gt;options</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $keys, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $keys, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerException(__FUNCTION__, $args, $result, $e)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
      <code>$this-&gt;triggerPost(__FUNCTION__, $args, $result)</code>
    </MixedReturnStatement>
    <NullableReturnStatement occurrences="1">
      <code>$success</code>
    </NullableReturnStatement>
    <PossiblyNullArgument occurrences="3">
      <code>$args['key']</code>
      <code>$args['key']</code>
      <code>$args['key']</code>
    </PossiblyNullArgument>
    <PropertyNotSetInConstructor occurrences="1">
      <code>$pluginRegistry</code>
    </PropertyNotSetInConstructor>
    <RedundantCastGivenDocblockType occurrences="4">
      <code>(bool) $flag</code>
      <code>(int) $value</code>
      <code>(int) $value</code>
      <code>(string) $key</code>
    </RedundantCastGivenDocblockType>
  </file>
  <file src="src/Storage/Adapter/AdapterOptions.php">
    <DocblockTypeContradiction occurrences="1">
      <code>is_array($options)</code>
    </DocblockTypeContradiction>
    <MissingClosureParamType occurrences="1">
      <code>$letters</code>
    </MissingClosureParamType>
    <MissingClosureReturnType occurrences="1">
      <code>function ($letters) {</code>
    </MissingClosureReturnType>
    <MixedArgument occurrences="3">
      <code>$key</code>
      <code>$letter</code>
      <code>$letters</code>
    </MixedArgument>
    <MixedAssignment occurrences="4">
      <code>$array[$normalizedKey]</code>
      <code>$key</code>
      <code>$letter</code>
      <code>$value</code>
    </MixedAssignment>
    <PossiblyInvalidArgument occurrences="1">
      <code>$options</code>
    </PossiblyInvalidArgument>
    <RawObjectIteration occurrences="1">
      <code>$this</code>
    </RawObjectIteration>
    <RedundantCastGivenDocblockType occurrences="5">
      <code>(bool) $readable</code>
      <code>(bool) $writable</code>
      <code>(float) $ttl</code>
      <code>(string) $keyPattern</code>
      <code>(string) $namespace</code>
    </RedundantCastGivenDocblockType>
  </file>
  <file src="src/Storage/Adapter/KeyListIterator.php">
    <MixedPropertyTypeCoercion occurrences="1">
      <code>$keys</code>
    </MixedPropertyTypeCoercion>
    <RedundantCastGivenDocblockType occurrences="1">
      <code>(int) $mode</code>
    </RedundantCastGivenDocblockType>
  </file>
  <file src="src/Storage/AdapterPluginManager.php">
    <NonInvariantDocblockPropertyType occurrences="1">
      <code>$instanceOf</code>
    </NonInvariantDocblockPropertyType>
  </file>
  <file src="src/Storage/Capabilities.php">
    <DocblockTypeContradiction occurrences="1">
      <code>is_string($name)</code>
    </DocblockTypeContradiction>
    <MixedArgumentTypeCoercion occurrences="1">
      <code>$name</code>
    </MixedArgumentTypeCoercion>
    <MixedAssignment occurrences="2">
      <code>$toType</code>
      <code>$value</code>
    </MixedAssignment>
    <MixedInferredReturnType occurrences="11">
      <code>array</code>
      <code>array</code>
      <code>bool</code>
      <code>bool</code>
      <code>bool</code>
      <code>float</code>
      <code>int</code>
      <code>int</code>
      <code>int</code>
      <code>int</code>
      <code>string</code>
    </MixedInferredReturnType>
    <MixedReturnStatement occurrences="11">
      <code>$this-&gt;getCapability('lockOnExpire', 0)</code>
      <code>$this-&gt;getCapability('maxKeyLength', self::UNKNOWN_KEY_LENGTH)</code>
      <code>$this-&gt;getCapability('maxTtl', 0)</code>
      <code>$this-&gt;getCapability('minTtl', 0)</code>
      <code>$this-&gt;getCapability('namespaceIsPrefix', true)</code>
      <code>$this-&gt;getCapability('namespaceSeparator', '')</code>
      <code>$this-&gt;getCapability('staticTtl', false)</code>
      <code>$this-&gt;getCapability('supportedMetadata', [])</code>
      <code>$this-&gt;getCapability('ttlPrecision', 1)</code>
      <code>$this-&gt;getCapability('useRequestTime', false)</code>
    </MixedReturnStatement>
    <RedundantCastGivenDocblockType occurrences="9">
      <code>(bool) $flag</code>
      <code>(bool) $flag</code>
      <code>(bool) $flag</code>
      <code>(float) $ttlPrecision</code>
      <code>(int) $maxKeyLength</code>
      <code>(int) $maxTtl</code>
      <code>(int) $minTtl</code>
      <code>(int) $timeout</code>
      <code>(string) $separator</code>
    </RedundantCastGivenDocblockType>
  </file>
  <file src="src/Storage/Event.php">
    <ImplementedReturnTypeMismatch occurrences="1">
      <code>Event</code>
    </ImplementedReturnTypeMismatch>
    <InvalidReturnStatement occurrences="1">
      <code>$this-&gt;getTarget()</code>
    </InvalidReturnStatement>
    <InvalidReturnType occurrences="1">
      <code>StorageInterface</code>
    </InvalidReturnType>
    <MoreSpecificImplementedParamType occurrences="1">
      <code>$target</code>
    </MoreSpecificImplementedParamType>
    <PropertyNotSetInConstructor occurrences="2">
      <code>Event</code>
      <code>Event</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="src/Storage/ExceptionEvent.php">
    <PropertyNotSetInConstructor occurrences="2">
      <code>ExceptionEvent</code>
      <code>ExceptionEvent</code>
    </PropertyNotSetInConstructor>
    <RedundantCastGivenDocblockType occurrences="1">
      <code>(bool) $flag</code>
    </RedundantCastGivenDocblockType>
  </file>
  <file src="src/Storage/Plugin/AbstractPlugin.php">
    <DocblockTypeContradiction occurrences="1">
      <code>null === $this-&gt;options</code>
    </DocblockTypeContradiction>
    <MissingConstructor occurrences="5">
      <code>$options</code>
      <code>$options</code>
      <code>$options</code>
      <code>$options</code>
      <code>$options</code>
    </MissingConstructor>
  </file>
  <file src="src/Storage/Plugin/PluginOptions.php">
    <DocblockTypeContradiction occurrences="1">
      <code>! is_string($serializer) &amp;&amp; ! $serializer instanceof SerializerAdapter</code>
    </DocblockTypeContradiction>
    <InvalidReturnStatement occurrences="1">
      <code>$this-&gt;serializer</code>
    </InvalidReturnStatement>
    <InvalidReturnType occurrences="1">
      <code>SerializerAdapter</code>
    </InvalidReturnType>
    <MixedAssignment occurrences="1">
      <code>$this-&gt;serializerOptions</code>
    </MixedAssignment>
    <PropertyNotSetInConstructor occurrences="1">
      <code>$serializer</code>
    </PropertyNotSetInConstructor>
    <RedundantCastGivenDocblockType occurrences="3">
      <code>(bool) $exitOnAbort</code>
      <code>(bool) $throwExceptions</code>
      <code>(int) $factor</code>
    </RedundantCastGivenDocblockType>
  </file>
  <file src="src/Storage/Plugin/Serializer.php">
    <MixedArgument occurrences="11">
      <code>$baseCapabilities</code>
      <code>$baseCapabilities</code>
      <code>$baseCapabilities-&gt;getAdapter()</code>
      <code>$params['key']</code>
      <code>$params['key']</code>
      <code>$params['key']</code>
      <code>$params['key']</code>
      <code>$params['keyValuePairs']</code>
      <code>$params['keyValuePairs']</code>
      <code>$result</code>
      <code>$value</code>
    </MixedArgument>
    <MixedArrayAccess occurrences="2">
      <code>$keyValuePairs[$failedKey]</code>
      <code>$keyValuePairs[$failedKey]</code>
    </MixedArrayAccess>
    <MixedArrayAssignment occurrences="4">
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
    </MixedArrayAssignment>
    <MixedArrayOffset occurrences="8">
      <code>$keyValuePairs[$failedKey]</code>
      <code>$keyValuePairs[$failedKey]</code>
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
    </MixedArrayOffset>
    <MixedAssignment occurrences="25">
      <code>$baseCapabilities</code>
      <code>$failedKey</code>
      <code>$failedKey</code>
      <code>$failedKeys</code>
      <code>$failedKeys</code>
      <code>$key</code>
      <code>$key</code>
      <code>$keyValuePairs</code>
      <code>$keyValuePairs</code>
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
      <code>$newValue</code>
      <code>$newValue</code>
      <code>$oldValue</code>
      <code>$oldValue</code>
      <code>$result</code>
      <code>$result</code>
      <code>$result</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
    </MixedAssignment>
    <MixedMethodCall occurrences="5">
      <code>getAdapter</code>
      <code>getItems</code>
      <code>getItems</code>
      <code>setItems</code>
      <code>setItems</code>
    </MixedMethodCall>
    <MixedOperand occurrences="5">
      <code>$keyValuePairs[$key]</code>
      <code>$keyValuePairs[$key]</code>
      <code>$oldValue</code>
      <code>$oldValue</code>
      <code>$params['value']</code>
    </MixedOperand>
    <PossiblyInvalidArrayAccess occurrences="8">
      <code>$params['key']</code>
      <code>$params['key']</code>
      <code>$params['keyValuePairs']</code>
      <code>$params['keyValuePairs']</code>
      <code>$params['keyValuePairs']</code>
      <code>$params['value']</code>
      <code>$params['value']</code>
      <code>$params['value']</code>
    </PossiblyInvalidArrayAccess>
    <PossiblyInvalidArrayAssignment occurrences="1">
      <code>$params['value']</code>
    </PossiblyInvalidArrayAssignment>
    <PossiblyInvalidMethodCall occurrences="4">
      <code>getItems</code>
      <code>getItems</code>
      <code>setItems</code>
      <code>setItems</code>
    </PossiblyInvalidMethodCall>
    <PossiblyNullOperand occurrences="2">
      <code>$oldValue</code>
      <code>$oldValue</code>
    </PossiblyNullOperand>
  </file>
  <file src="src/Storage/PluginManager.php">
    <NonInvariantDocblockPropertyType occurrences="3">
      <code>$aliases</code>
      <code>$factories</code>
      <code>$instanceOf</code>
    </NonInvariantDocblockPropertyType>
  </file>
  <file src="src/Storage/PostEvent.php">
    <PropertyNotSetInConstructor occurrences="2">
      <code>PostEvent</code>
      <code>PostEvent</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="test/Command/DeprecatedStorageFactoryConfigurationCheckCommandTest.php">
    <InternalClass occurrences="7"/>
  </file>
  <file src="test/Pattern/AbstractCommonStoragePatternTest.php">
    <NonInvariantDocblockPropertyType occurrences="1">
      <code>$pattern</code>
    </NonInvariantDocblockPropertyType>
  </file>
  <file src="test/Pattern/CallbackCacheTest.php">
    <MissingClosureParamType occurrences="1">
      <code>$event</code>
    </MissingClosureParamType>
    <MixedArgument occurrences="1">
      <code>$key</code>
    </MixedArgument>
    <MixedArrayAccess occurrences="1">
      <code>$params['key']</code>
    </MixedArrayAccess>
    <MixedAssignment occurrences="6">
      <code>$generatedKey</code>
      <code>$key</code>
      <code>$params</code>
      <code>$return</code>
      <code>$return</code>
      <code>$usedKey</code>
    </MixedAssignment>
    <MixedMethodCall occurrences="2">
      <code>attach</code>
      <code>getParams</code>
    </MixedMethodCall>
    <UndefinedInterfaceMethod occurrences="9">
      <code>call</code>
      <code>call</code>
      <code>call</code>
      <code>call</code>
      <code>call</code>
      <code>call</code>
      <code>generateKey</code>
      <code>generateKey</code>
      <code>getEventManager</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="test/Pattern/CaptureCacheTest.php">
    <MixedMethodCall occurrences="1">
      <code>setIndexFilename</code>
    </MixedMethodCall>
    <MixedPropertyTypeCoercion occurrences="1">
      <code>$_SERVER</code>
    </MixedPropertyTypeCoercion>
    <PossiblyNullArrayAccess occurrences="3">
      <code>$err['message']</code>
      <code>$err['message']</code>
      <code>$err['message']</code>
    </PossiblyNullArrayAccess>
    <UndefinedInterfaceMethod occurrences="2">
      <code>set</code>
      <code>set</code>
    </UndefinedInterfaceMethod>
    <UndefinedThisPropertyAssignment occurrences="1">
      <code>$this-&gt;options</code>
    </UndefinedThisPropertyAssignment>
    <UndefinedThisPropertyFetch occurrences="1">
      <code>$this-&gt;options</code>
    </UndefinedThisPropertyFetch>
  </file>
  <file src="test/Pattern/ObjectCacheTest.php">
    <MissingClosureParamType occurrences="1">
      <code>$event</code>
    </MissingClosureParamType>
    <MixedArrayAccess occurrences="1">
      <code>$params['key']</code>
    </MixedArrayAccess>
    <MixedAssignment occurrences="5">
      <code>$generatedKey</code>
      <code>$params</code>
      <code>$return</code>
      <code>$return</code>
      <code>$usedKey</code>
    </MixedAssignment>
    <MixedMethodCall occurrences="2">
      <code>attach</code>
      <code>getParams</code>
    </MixedMethodCall>
    <NoInterfaceProperties occurrences="6">
      <code>$this-&gt;pattern-&gt;property</code>
      <code>$this-&gt;pattern-&gt;property</code>
      <code>$this-&gt;pattern-&gt;property</code>
      <code>$this-&gt;pattern-&gt;property</code>
      <code>$this-&gt;pattern-&gt;property</code>
      <code>$this-&gt;pattern-&gt;unknownProperty</code>
    </NoInterfaceProperties>
    <PossiblyNullArgument occurrences="1">
      <code>$this-&gt;options-&gt;getObject()</code>
    </PossiblyNullArgument>
    <PossiblyNullPropertyFetch occurrences="2">
      <code>$this-&gt;options-&gt;getObject()-&gt;property</code>
      <code>$this-&gt;options-&gt;getObject()-&gt;property</code>
    </PossiblyNullPropertyFetch>
    <UndefinedInterfaceMethod occurrences="3">
      <code>call</code>
      <code>generateKey</code>
      <code>getEventManager</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="test/Pattern/OutputCacheTest.php">
    <PossiblyNullReference occurrences="2">
      <code>getItem</code>
      <code>setItem</code>
    </PossiblyNullReference>
    <UndefinedInterfaceMethod occurrences="4">
      <code>end</code>
      <code>start</code>
      <code>start</code>
      <code>start</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="test/Pattern/TestAsset/TestCallbackCache.php">
    <MissingReturnType occurrences="1">
      <code>emptyMethod</code>
    </MissingReturnType>
  </file>
  <file src="test/Psr/CacheItemPool/CacheItemPoolDecoratorTest.php">
    <InvalidArgument occurrences="2">
      <code>$keys</code>
      <code>$keys</code>
    </InvalidArgument>
    <InvalidScalarArgument occurrences="1">
      <code>time() - 1</code>
    </InvalidScalarArgument>
    <MissingReturnType occurrences="3">
      <code>testDeleteItemInvalidKeyThrowsException</code>
      <code>testGetItemInvalidKeyThrowsException</code>
      <code>testHasItemInvalidKeyThrowsException</code>
    </MissingReturnType>
    <MixedArgument occurrences="4">
      <code>$item</code>
      <code>$key</code>
      <code>$key</code>
      <code>$key</code>
    </MixedArgument>
    <MixedAssignment occurrences="3">
      <code>$item</code>
      <code>$item</code>
      <code>$item</code>
    </MixedAssignment>
    <MixedMethodCall occurrences="14">
      <code>get</code>
      <code>get</code>
      <code>get</code>
      <code>get</code>
      <code>get</code>
      <code>getKey</code>
      <code>isHit</code>
      <code>isHit</code>
      <code>isHit</code>
      <code>isHit</code>
      <code>isHit</code>
      <code>isHit</code>
      <code>isHit</code>
      <code>set</code>
    </MixedMethodCall>
    <PossiblyFalseArgument occurrences="1">
      <code>DateTimeImmutable::createFromFormat('U', time() - 1)</code>
    </PossiblyFalseArgument>
    <PossiblyInvalidArgument occurrences="1">
      <code>$items</code>
    </PossiblyInvalidArgument>
    <UndefinedInterfaceMethod occurrences="10">
      <code>$items</code>
      <code>$items</code>
      <code>$items</code>
      <code>$items</code>
      <code>$items</code>
      <code>$items</code>
      <code>$saved</code>
      <code>$saved</code>
      <code>$saved</code>
      <code>$saved</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="test/Psr/CacheItemPool/CacheItemTest.php">
    <InvalidArgument occurrences="2">
      <code>'foo'</code>
      <code>[]</code>
    </InvalidArgument>
  </file>
  <file src="test/Psr/SimpleCache/SimpleCacheDecoratorTest.php">
    <MissingReturnType occurrences="10">
      <code>testHasProxiesToStorage</code>
      <code>testSetMultipleRaisesExceptionWhenTtlValueIsInvalid</code>
      <code>testSetMultipleShouldRaisePsrInvalidArgumentExceptionForInvalidKeys</code>
      <code>testSetMultipleShouldRemoveItemsFromCacheIfTtlIsBelow1</code>
      <code>testSetMultipleShouldRemoveItemsFromCacheIfTtlIsBelow1AndStorageDoesNotSupportPerItemTtl</code>
      <code>testSetRaisesExceptionWhenTtlValueIsInvalid</code>
      <code>testSetShouldAcknowledgeStorageAdapterMaxKeyLengthWithPsrDecorator</code>
      <code>testSetShouldRaisePsrInvalidArgumentExceptionForInvalidKeys</code>
      <code>testSetShouldRemoveItemFromCacheIfTtlIsBelow1</code>
      <code>testSetShouldRemoveItemFromCacheIfTtlIsBelow1AndStorageDoesNotSupportPerItemTtl</code>
    </MissingReturnType>
    <MixedArgument occurrences="2">
      <code>$ttl</code>
      <code>$ttl</code>
    </MixedArgument>
    <MixedInferredReturnType occurrences="3">
      <code>array</code>
      <code>array</code>
      <code>array</code>
    </MixedInferredReturnType>
  </file>
  <file src="test/Psr/SimpleCache/TestAsset/TtlStorage.php">
    <MissingReturnType occurrences="1">
      <code>setCapabilities</code>
    </MissingReturnType>
    <PropertyNotSetInConstructor occurrences="1">
      <code>TtlStorage</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="test/Service/DeprecatedSchemaDetectorTest.php">
    <InternalClass occurrences="1">
      <code>new DeprecatedSchemaDetector()</code>
    </InternalClass>
    <InternalMethod occurrences="2">
      <code>isDeprecatedStorageFactorySchema</code>
      <code>isDeprecatedStorageFactorySchema</code>
    </InternalMethod>
    <MixedInferredReturnType occurrences="2">
      <code>Generator</code>
      <code>Generator</code>
    </MixedInferredReturnType>
  </file>
  <file src="test/Storage/Adapter/AbstractAdapterTest.php">
    <InvalidScalarArgument occurrences="1">
      <code>'123'</code>
    </InvalidScalarArgument>
    <MissingClosureParamType occurrences="1">
      <code>$event</code>
      <code>$event</code>
      <code>$event</code>
      <code>$event</code>
      <code>$event</code>
    </MissingClosureParamType>
    <MissingClosureReturnType occurrences="1">
      <code>function ($event) use ($retVal) {</code>
    </MissingClosureReturnType>
    <MixedArgument occurrences="1">
      <code>$success</code>
    </MixedArgument>
    <MixedArrayAssignment occurrences="3">
      <code>$eventList[]</code>
      <code>$eventList[]</code>
      <code>$eventList[]</code>
    </MixedArrayAssignment>
    <MixedAssignment occurrences="4">
      <code>$result</code>
      <code>$result</code>
      <code>$rs</code>
      <code>$v</code>
      <code>$v</code>
    </MixedAssignment>
    <MixedInferredReturnType occurrences="1">
      <code>array</code>
    </MixedInferredReturnType>
    <MixedMethodCall occurrences="2">
      <code>getResult</code>
      <code>stopPropagation</code>
    </MixedMethodCall>
    <NullArgument occurrences="1">
      <code>null</code>
    </NullArgument>
    <PossiblyNullReference occurrences="10">
      <code>getNamespace</code>
      <code>setKeyPattern</code>
      <code>setKeyPattern</code>
      <code>setKeyPattern</code>
      <code>setNamespace</code>
      <code>setNamespace</code>
      <code>setReadable</code>
      <code>setTtl</code>
      <code>setTtl</code>
      <code>setWritable</code>
    </PossiblyNullReference>
    <PossiblyUndefinedVariable occurrences="1">
      <code>$success</code>
    </PossiblyUndefinedVariable>
  </file>
  <file src="test/Storage/Adapter/AdapterOptionsTest.php">
    <MixedArgument occurrences="1">
      <code>$calledArgs</code>
    </MixedArgument>
    <MixedArrayAccess occurrences="1">
      <code>$calledArgs[0]</code>
    </MixedArrayAccess>
    <MixedMethodCall occurrences="1">
      <code>getArrayCopy</code>
    </MixedMethodCall>
    <PossiblyInvalidMethodCall occurrences="1">
      <code>getArrayCopy</code>
    </PossiblyInvalidMethodCall>
    <PossiblyNullReference occurrences="11">
      <code>getKeyPattern</code>
      <code>getTtl</code>
      <code>setAdapter</code>
      <code>setFromArray</code>
      <code>setKeyPattern</code>
      <code>setKeyPattern</code>
      <code>setNamespace</code>
      <code>setReadable</code>
      <code>setTtl</code>
      <code>setTtl</code>
      <code>setWritable</code>
    </PossiblyNullReference>
  </file>
  <file src="test/Storage/Adapter/TestAsset/AdapterWithStorageAndEventsCapableInterface.php">
    <MissingReturnType occurrences="1">
      <code>addPlugin</code>
    </MissingReturnType>
  </file>
  <file src="test/Storage/AdapterPluginManagerTest.php">
    <InternalMethod occurrences="1">
      <code>addToAssertionCount</code>
    </InternalMethod>
    <MissingReturnType occurrences="2">
      <code>testPluginAliasesResolve</code>
      <code>testShareByDefaultAndSharedByDefault</code>
    </MissingReturnType>
  </file>
  <file src="test/Storage/CapabilitiesTest.php">
    <ArgumentTypeCoercion occurrences="1">
      <code>'ArrayObject'</code>
    </ArgumentTypeCoercion>
    <MissingClosureParamType occurrences="1">
      <code>$eventArg</code>
    </MissingClosureParamType>
    <MixedAssignment occurrences="2">
      <code>$em</code>
      <code>$event</code>
    </MixedAssignment>
    <MixedMethodCall occurrences="1">
      <code>attach</code>
    </MixedMethodCall>
    <UndefinedInterfaceMethod occurrences="1">
      <code>getEventManager</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="test/Storage/Plugin/AbstractCommonPluginTest.php">
    <DocblockTypeContradiction occurrences="1">
      <code>$this-&gt;plugin instanceof PluginInterface</code>
    </DocblockTypeContradiction>
    <MissingReturnType occurrences="3">
      <code>getCommonPluginNamesProvider</code>
      <code>testOptionObjectAvailable</code>
      <code>testOptionsGetAndSetDefault</code>
    </MissingReturnType>
  </file>
  <file src="test/Storage/Plugin/ClearExpiredByFactorTest.php">
    <ArgumentTypeCoercion occurrences="2">
      <code>$this-&gt;adapter-&gt;getEventManager()</code>
      <code>$this-&gt;adapter-&gt;getEventManager()</code>
    </ArgumentTypeCoercion>
    <DeprecatedMethod occurrences="1">
      <code>setMethods</code>
    </DeprecatedMethod>
    <InvalidArgument occurrences="2">
      <code>$cb</code>
      <code>$cb</code>
    </InvalidArgument>
    <InvalidArrayAccess occurrences="2">
      <code>$cb[0]</code>
      <code>$cb[1]</code>
    </InvalidArrayAccess>
    <UndefinedInterfaceMethod occurrences="1">
      <code>clearExpiredByFactor</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="test/Storage/Plugin/ExceptionHandlerTest.php">
    <ArgumentTypeCoercion occurrences="2">
      <code>$this-&gt;adapter-&gt;getEventManager()</code>
      <code>$this-&gt;adapter-&gt;getEventManager()</code>
    </ArgumentTypeCoercion>
    <InvalidArgument occurrences="2">
      <code>$cb</code>
      <code>$cb</code>
    </InvalidArgument>
    <InvalidArrayAccess occurrences="2">
      <code>$cb[0]</code>
      <code>$cb[1]</code>
    </InvalidArrayAccess>
    <MissingClosureParamType occurrences="1">
      <code>$exception</code>
    </MissingClosureParamType>
    <UndefinedInterfaceMethod occurrences="2">
      <code>onException</code>
      <code>onException</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="test/Storage/Plugin/IgnoreUserAbortTest.php">
    <ArgumentTypeCoercion occurrences="2">
      <code>$this-&gt;adapter-&gt;getEventManager()</code>
      <code>$this-&gt;adapter-&gt;getEventManager()</code>
    </ArgumentTypeCoercion>
    <InvalidArgument occurrences="2">
      <code>$cb</code>
      <code>$cb</code>
    </InvalidArgument>
    <InvalidArrayAccess occurrences="2">
      <code>$cb[0]</code>
      <code>$cb[1]</code>
    </InvalidArrayAccess>
  </file>
  <file src="test/Storage/Plugin/OptimizeByFactorTest.php">
    <ArgumentTypeCoercion occurrences="2">
      <code>$this-&gt;adapter-&gt;getEventManager()</code>
      <code>$this-&gt;adapter-&gt;getEventManager()</code>
    </ArgumentTypeCoercion>
    <DeprecatedMethod occurrences="1">
      <code>setMethods</code>
    </DeprecatedMethod>
    <InvalidArgument occurrences="2">
      <code>$cb</code>
      <code>$cb</code>
    </InvalidArgument>
    <InvalidArrayAccess occurrences="2">
      <code>$cb[0]</code>
      <code>$cb[1]</code>
    </InvalidArrayAccess>
    <UndefinedInterfaceMethod occurrences="1">
      <code>optimizeByFactor</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="test/Storage/Plugin/SerializerTest.php">
    <ArgumentTypeCoercion occurrences="4">
      <code>$events</code>
      <code>$events</code>
      <code>$events</code>
      <code>$this-&gt;adapter-&gt;getEventManager()</code>
    </ArgumentTypeCoercion>
    <InvalidArgument occurrences="2">
      <code>$cb</code>
      <code>$cb</code>
    </InvalidArgument>
    <InvalidArrayAccess occurrences="2">
      <code>$cb[0]</code>
      <code>$cb[1]</code>
    </InvalidArrayAccess>
    <MissingClosureParamType occurrences="6">
      <code>$casToken</code>
      <code>$casToken</code>
      <code>$casToken</code>
      <code>$success</code>
      <code>$success</code>
      <code>$success</code>
    </MissingClosureParamType>
    <MixedArgument occurrences="1">
      <code>$values</code>
    </MixedArgument>
    <MixedArrayAccess occurrences="2">
      <code>$values['key1']</code>
      <code>$values['key2']</code>
    </MixedArrayAccess>
    <MixedAssignment occurrences="1">
      <code>$values</code>
    </MixedAssignment>
    <UndefinedInterfaceMethod occurrences="4">
      <code>onDecrementItemPre</code>
      <code>onReadItemPost</code>
      <code>onReadItemPost</code>
      <code>onReadItemsPost</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="test/Storage/PluginManagerTest.php">
    <MissingReturnType occurrences="1">
      <code>testShareByDefaultAndSharedByDefault</code>
    </MissingReturnType>
  </file>
  <file src="test/Storage/TestAsset/ClearExpiredMockAdapter.php">
    <InvalidReturnType occurrences="1">
      <code>clearExpired</code>
    </InvalidReturnType>
    <PropertyNotSetInConstructor occurrences="1">
      <code>ClearExpiredMockAdapter</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="test/Storage/TestAsset/MockAdapter.php">
    <InvalidReturnType occurrences="3">
      <code>internalGetItem</code>
      <code>internalRemoveItem</code>
      <code>internalSetItem</code>
    </InvalidReturnType>
    <PropertyNotSetInConstructor occurrences="1">
      <code>MockAdapter</code>
    </PropertyNotSetInConstructor>
  </file>
  <file src="test/Storage/TestAsset/MockPlugin.php">
    <PropertyNotSetInConstructor occurrences="1">
      <code>$options</code>
    </PropertyNotSetInConstructor>
    <RedundantCondition occurrences="1">
      <code>$options instanceof Plugin\PluginOptions</code>
    </RedundantCondition>
  </file>
  <file src="test/Storage/TestAsset/OptimizableMockAdapter.php">
    <InvalidReturnType occurrences="1">
      <code>optimize</code>
    </InvalidReturnType>
    <PropertyNotSetInConstructor occurrences="1">
      <code>OptimizableMockAdapter</code>
    </PropertyNotSetInConstructor>
  </file>
</files>
