<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="5.18.0@b113f3ed0259fd6e212d87c3df80eec95a6abf19">
  <file src="src/Exception/InvalidObjectException.php">
    <PossiblyUnusedMethod>
      <code>forNonObject</code>
    </PossiblyUnusedMethod>
  </file>
  <file src="src/HalResource.php">
    <MissingClosureParamType>
      <code>$key</code>
      <code>$links</code>
      <code>$name</code>
      <code>$name</code>
      <code>$rel</code>
      <code>$resource</code>
      <code>$value</code>
    </MissingClosureParamType>
    <MissingClosureReturnType>
      <code>function ($item) {</code>
    </MissingClosureReturnType>
    <MixedArgument>
      <code>$links</code>
      <code>$links</code>
      <code>$name</code>
      <code>$name</code>
      <code>$relation</code>
      <code>$relation</code>
      <code>$relation</code>
      <code>$relation</code>
      <code>$resource</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
    </MixedArgument>
    <MixedArgumentTypeCoercion>
      <code>$name</code>
      <code>$resource</code>
    </MixedArgumentTypeCoercion>
    <MixedArrayAssignment>
      <code>$relation[Link::AS_COLLECTION]</code>
      <code>$relation[]</code>
    </MixedArrayAssignment>
    <MixedArrayOffset>
      <code>$byRelation[$rel]</code>
      <code>$byRelation[$rel]</code>
      <code>$relations[$key]</code>
      <code>$relations[$key]</code>
    </MixedArrayOffset>
    <MixedAssignment>
      <code>$relations[$key]</code>
      <code>$value</code>
    </MixedAssignment>
    <MixedMethodCall>
      <code>toArray</code>
    </MixedMethodCall>
    <MixedPropertyTypeCoercion>
      <code><![CDATA[$this->embedded]]></code>
      <code><![CDATA[$this->embedded]]></code>
      <code><![CDATA[$this->embedded]]></code>
    </MixedPropertyTypeCoercion>
    <MixedReturnTypeCoercion>
      <code>$forceCollection ? [$resource] : $resource</code>
      <code><![CDATA[$this->aggregateEmbeddedCollection($name, $resource, $context)]]></code>
      <code>HalResource|HalResource[]</code>
    </MixedReturnTypeCoercion>
  </file>
  <file src="src/HalResponseFactory.php">
    <MixedArgument>
      <code><![CDATA[$matchedType->getValue()]]></code>
    </MixedArgument>
    <UndefinedInterfaceMethod>
      <code>getValue</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/HalResponseFactoryFactory.php">
    <MixedArgument>
      <code>$jsonRenderer</code>
      <code>$xmlRenderer</code>
    </MixedArgument>
    <MixedAssignment>
      <code>$jsonRenderer</code>
      <code>$xmlRenderer</code>
    </MixedAssignment>
    <UndefinedDocblockClass>
      <code>RuntimeException</code>
    </UndefinedDocblockClass>
  </file>
  <file src="src/Link.php">
    <InvalidCast>
      <code>$uri</code>
    </InvalidCast>
    <MixedArgument>
      <code>is_object($rel) ? $rel::class : gettype($rel)</code>
    </MixedArgument>
    <MixedAssignment>
      <code>$value</code>
    </MixedAssignment>
    <MixedInferredReturnType>
      <code>string|string[]</code>
    </MixedInferredReturnType>
    <MixedReturnStatement>
      <code>is_string($relation) ? [$relation] : $relation</code>
      <code>is_string($relation) ? [$relation] : $relation</code>
    </MixedReturnStatement>
    <PossiblyInvalidPropertyAssignmentValue>
      <code><![CDATA[$this->validateRelation($relation)]]></code>
    </PossiblyInvalidPropertyAssignmentValue>
    <RedundantCondition>
      <code>gettype($rel)</code>
      <code>is_object($href)</code>
      <code>is_string($uri)</code>
    </RedundantCondition>
    <TypeDoesNotContainType>
      <code>! is_string($attribute)</code>
      <code>! is_string($attribute) || empty($attribute)</code>
      <code>! is_string($rel)</code>
      <code>! is_string($rel)</code>
      <code>! is_string($rel) || empty($rel)</code>
      <code>! is_string($rel) || empty($rel)</code>
      <code>(string) $uri</code>
      <code>gettype($href)</code>
      <code>is_object($href)</code>
      <code>is_object($rel)</code>
    </TypeDoesNotContainType>
  </file>
  <file src="src/LinkCollection.php">
    <LessSpecificImplementedReturnType>
      <code>self</code>
      <code>self</code>
    </LessSpecificImplementedReturnType>
    <MissingParamType>
      <code>$rel</code>
    </MissingParamType>
  </file>
  <file src="src/LinkGenerator/MezzioUrlGenerator.php">
    <ArgumentTypeCoercion>
      <code>$routeName</code>
    </ArgumentTypeCoercion>
  </file>
  <file src="src/LinkGenerator/MezzioUrlGeneratorFactory.php">
    <MixedArgument>
      <code><![CDATA[$container->get($this->urlHelperServiceName)]]></code>
      <code><![CDATA[$container->has(ServerUrlHelper::class)
                ? $container->get(ServerUrlHelper::class)
                : ($container->has(\Zend\Expressive\Helper\ServerUrlHelper::class)
                    ? $container->get(\Zend\Expressive\Helper\ServerUrlHelper::class)
                    : null)]]></code>
      <code><![CDATA[$data['urlHelperServiceName'] ?? UrlHelper::class]]></code>
    </MixedArgument>
  </file>
  <file src="src/LinkGeneratorFactory.php">
    <MixedArgument>
      <code><![CDATA[$container->get($this->urlGeneratorServiceName)]]></code>
      <code><![CDATA[$data['urlGeneratorServiceName'] ?? LinkGenerator\UrlGeneratorInterface::class]]></code>
    </MixedArgument>
  </file>
  <file src="src/Metadata/AbstractMetadata.php">
    <MissingConstructor>
      <code>$class</code>
    </MissingConstructor>
  </file>
  <file src="src/Metadata/Exception/InvalidConfigException.php">
    <MixedAssignment>
      <code>$className</code>
    </MixedAssignment>
    <PossiblyUnusedMethod>
      <code>dueToConflictingRouteIdentifierPlaceholder</code>
    </PossiblyUnusedMethod>
  </file>
  <file src="src/Metadata/MetadataMapFactory.php">
    <InvalidStringClass>
      <code>new $factoryClass()</code>
    </InvalidStringClass>
    <MixedArgument>
      <code>$metadataFactories</code>
      <code>$metadataFactories[$metadataClass]</code>
      <code><![CDATA[$metadata['__class__']]]></code>
    </MixedArgument>
    <MixedArrayAccess>
      <code><![CDATA[$config['mezzio-hal']]]></code>
      <code><![CDATA[$config['mezzio-hal']['metadata-factories']]]></code>
      <code>$config[MetadataMap::class]</code>
    </MixedArrayAccess>
    <MixedAssignment>
      <code>$config</code>
      <code>$metadataFactories</code>
    </MixedAssignment>
    <MixedInferredReturnType>
      <code>AbstractMetadata</code>
    </MixedInferredReturnType>
    <MixedReturnStatement>
      <code><![CDATA[$this->$method($metadata)]]></code>
    </MixedReturnStatement>
  </file>
  <file src="src/Metadata/RouteBasedCollectionMetadata.php">
    <PossiblyUnusedMethod>
      <code>setQueryStringArguments</code>
      <code>setRouteParams</code>
    </PossiblyUnusedMethod>
  </file>
  <file src="src/Metadata/RouteBasedCollectionMetadataFactory.php">
    <InvalidStringClass>
      <code><![CDATA[new $requestedName(
            $metadata['collection_class'],
            $metadata['collection_relation'],
            $metadata['route'],
            $metadata['pagination_param'] ?? 'page',
            $metadata['pagination_param_type'] ?? RouteBasedCollectionMetadata::TYPE_QUERY,
            $metadata['route_params'] ?? [],
            $metadata['query_string_arguments'] ?? []
        )]]></code>
    </InvalidStringClass>
    <LessSpecificReturnStatement>
      <code><![CDATA[new $requestedName(
            $metadata['collection_class'],
            $metadata['collection_relation'],
            $metadata['route'],
            $metadata['pagination_param'] ?? 'page',
            $metadata['pagination_param_type'] ?? RouteBasedCollectionMetadata::TYPE_QUERY,
            $metadata['route_params'] ?? [],
            $metadata['query_string_arguments'] ?? []
        )]]></code>
    </LessSpecificReturnStatement>
    <MoreSpecificReturnType>
      <code>AbstractMetadata</code>
    </MoreSpecificReturnType>
  </file>
  <file src="src/Metadata/RouteBasedResourceMetadata.php">
    <PossiblyUnusedMethod>
      <code>setRouteParams</code>
    </PossiblyUnusedMethod>
  </file>
  <file src="src/Metadata/RouteBasedResourceMetadataFactory.php">
    <InvalidStringClass>
      <code><![CDATA[new $requestedName(
            $metadata['resource_class'],
            $metadata['route'],
            $metadata['extractor'],
            $metadata['resource_identifier'] ?? 'id',
            $metadata['route_params'] ?? [],
            $metadata['identifiers_to_placeholders_mapping'] ?? ['id' => 'id'],
            $metadata['max_depth'] ?? 10
        )]]></code>
    </InvalidStringClass>
    <LessSpecificReturnStatement>
      <code><![CDATA[new $requestedName(
            $metadata['resource_class'],
            $metadata['route'],
            $metadata['extractor'],
            $metadata['resource_identifier'] ?? 'id',
            $metadata['route_params'] ?? [],
            $metadata['identifiers_to_placeholders_mapping'] ?? ['id' => 'id'],
            $metadata['max_depth'] ?? 10
        )]]></code>
    </LessSpecificReturnStatement>
    <MoreSpecificReturnType>
      <code>AbstractMetadata</code>
    </MoreSpecificReturnType>
  </file>
  <file src="src/Metadata/UrlBasedCollectionMetadataFactory.php">
    <InvalidStringClass>
      <code><![CDATA[new $requestedName(
            $metadata['collection_class'],
            $metadata['collection_relation'],
            $metadata['url'],
            $metadata['pagination_param'] ?? 'page',
            $metadata['pagination_param_type'] ?? UrlBasedCollectionMetadata::TYPE_QUERY
        )]]></code>
    </InvalidStringClass>
    <LessSpecificReturnStatement>
      <code><![CDATA[new $requestedName(
            $metadata['collection_class'],
            $metadata['collection_relation'],
            $metadata['url'],
            $metadata['pagination_param'] ?? 'page',
            $metadata['pagination_param_type'] ?? UrlBasedCollectionMetadata::TYPE_QUERY
        )]]></code>
    </LessSpecificReturnStatement>
    <MoreSpecificReturnType>
      <code>AbstractMetadata</code>
    </MoreSpecificReturnType>
  </file>
  <file src="src/Metadata/UrlBasedResourceMetadataFactory.php">
    <InvalidStringClass>
      <code><![CDATA[new $requestedName(
            $metadata['resource_class'],
            $metadata['url'],
            $metadata['extractor'],
            $metadata['max_depth'] ?? 10
        )]]></code>
    </InvalidStringClass>
    <LessSpecificReturnStatement>
      <code><![CDATA[new $requestedName(
            $metadata['resource_class'],
            $metadata['url'],
            $metadata['extractor'],
            $metadata['max_depth'] ?? 10
        )]]></code>
    </LessSpecificReturnStatement>
    <MoreSpecificReturnType>
      <code>AbstractMetadata</code>
    </MoreSpecificReturnType>
  </file>
  <file src="src/Renderer/XmlRenderer.php">
    <InvalidReturnStatement>
      <code>$elements</code>
    </InvalidReturnStatement>
    <InvalidReturnType>
      <code><![CDATA[DOMNode|false|list<DOMNode|false|list<DOMNode|array<array-key, DOMNode>>>]]></code>
    </InvalidReturnType>
    <MixedArgument>
      <code>$attribute</code>
      <code>$childDatum</code>
      <code>$linkDatum</code>
      <code><![CDATA[$resource['_links']['self']['href']]]></code>
      <code>$value</code>
      <code>$value</code>
    </MixedArgument>
    <MixedArgumentTypeCoercion>
      <code>$key</code>
      <code>$key</code>
    </MixedArgumentTypeCoercion>
    <MixedArrayAccess>
      <code><![CDATA[$resource['_links']['self']['href']]]></code>
    </MixedArrayAccess>
    <MixedAssignment>
      <code>$attribute</code>
      <code>$child</code>
      <code>$childDatum</code>
      <code>$data</code>
      <code>$linkDatum</code>
      <code><![CDATA[$resource['_embedded']]]></code>
      <code><![CDATA[$resource['_links']]]></code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
      <code>$value</code>
    </MixedAssignment>
    <PossibleRawObjectIteration>
      <code><![CDATA[$resource['_links']]]></code>
    </PossibleRawObjectIteration>
    <PossiblyFalseArgument>
      <code>$element</code>
    </PossiblyFalseArgument>
    <PossiblyInvalidArgument>
      <code>$child</code>
    </PossiblyInvalidArgument>
  </file>
  <file src="src/ResourceGenerator/ExtractCollectionTrait.php">
    <MethodSignatureMismatch>
      <code>abstract protected function generateSelfLink(
        AbstractCollectionMetadata $metadata,
        ResourceGeneratorInterface $resourceGenerator,
        ServerRequestInterface $request
    ): Link;</code>
      <code>abstract protected function generateSelfLink(
        AbstractCollectionMetadata $metadata,
        ResourceGeneratorInterface $resourceGenerator,
        ServerRequestInterface $request
    ): Link;</code>
    </MethodSignatureMismatch>
    <MixedArgument>
      <code>$item</code>
      <code>$item</code>
    </MixedArgument>
    <MixedArgumentTypeCoercion>
      <code>$links</code>
    </MixedArgumentTypeCoercion>
    <MixedAssignment>
      <code>$count</code>
      <code>$count</code>
      <code>$item</code>
      <code>$item</code>
    </MixedAssignment>
    <MixedOperand>
      <code>$count</code>
    </MixedOperand>
    <PossiblyNullOperand>
      <code>$perPage</code>
      <code>$perPage</code>
    </PossiblyNullOperand>
    <UndefinedInterfaceMethod>
      <code>count</code>
    </UndefinedInterfaceMethod>
  </file>
  <file src="src/ResourceGenerator/ExtractInstanceTrait.php">
    <MixedArgument>
      <code><![CDATA[$metadata->getExtractor()]]></code>
    </MixedArgument>
    <MixedAssignment>
      <code>$array[$key]</code>
      <code>$childData</code>
    </MixedAssignment>
    <UndefinedMethod>
      <code>getExtractor</code>
    </UndefinedMethod>
  </file>
  <file src="src/ResourceGenerator/RouteBasedCollectionStrategy.php">
    <DocblockTypeContradiction>
      <code>[]</code>
    </DocblockTypeContradiction>
    <MethodSignatureMismatch>
      <code>protected function generateSelfLink(</code>
    </MethodSignatureMismatch>
    <MixedArgument>
      <code><![CDATA[$metadata->getQueryStringArguments()]]></code>
      <code><![CDATA[$metadata->getQueryStringArguments() ?? []]]></code>
      <code><![CDATA[$metadata->getRoute()]]></code>
      <code>$route</code>
      <code>$routeParams</code>
      <code>$routeParams</code>
      <code>$routeParams</code>
    </MixedArgument>
    <MixedArgumentTypeCoercion>
      <code>$queryParams</code>
      <code>$queryStringArgs</code>
    </MixedArgumentTypeCoercion>
    <MixedAssignment>
      <code>$route</code>
      <code>$routeParams</code>
      <code>$routeParams</code>
      <code>$routeParams</code>
    </MixedAssignment>
    <RedundantConditionGivenDocblockType>
      <code><![CDATA[$request->getQueryParams()]]></code>
    </RedundantConditionGivenDocblockType>
    <UndefinedMethod>
      <code>getQueryStringArguments</code>
      <code>getQueryStringArguments</code>
      <code>getRoute</code>
      <code>getRoute</code>
      <code>getRouteParams</code>
      <code>getRouteParams</code>
    </UndefinedMethod>
  </file>
  <file src="src/ResourceGenerator/RouteBasedResourceStrategy.php">
    <MixedArgumentTypeCoercion>
      <code>$routeParams</code>
    </MixedArgumentTypeCoercion>
    <MixedArrayOffset>
      <code>$routeParams[$placeholderMap[$key]]</code>
    </MixedArrayOffset>
  </file>
  <file src="src/ResourceGenerator/UrlBasedCollectionStrategy.php">
    <MethodSignatureMismatch>
      <code>protected function generateSelfLink(</code>
    </MethodSignatureMismatch>
    <MixedArgument>
      <code>$url</code>
    </MixedArgument>
    <MixedAssignment>
      <code>$url</code>
    </MixedAssignment>
    <MixedOperand>
      <code>$url</code>
    </MixedOperand>
    <UndefinedMethod>
      <code>getUrl</code>
      <code>getUrl</code>
    </UndefinedMethod>
  </file>
  <file src="src/ResourceGeneratorFactory.php">
    <MissingDependency>
      <code>HydratorPluginManager</code>
    </MissingDependency>
    <MixedArgument>
      <code><![CDATA[$container->get($strategy)]]></code>
      <code><![CDATA[$container->get($this->linkGeneratorServiceName)]]></code>
      <code><![CDATA[$container->get(HydratorPluginManager::class)]]></code>
      <code><![CDATA[$container->get(Metadata\MetadataMap::class)]]></code>
      <code><![CDATA[$data['linkGeneratorServiceName'] ?? LinkGenerator::class]]></code>
      <code>$strategy</code>
      <code>HydratorPluginManager::class</code>
    </MixedArgument>
    <MixedArrayAccess>
      <code><![CDATA[$config['mezzio-hal']['resource-generator']]]></code>
      <code><![CDATA[$config['mezzio-hal']['resource-generator']['strategies']]]></code>
    </MixedArrayAccess>
    <MixedAssignment>
      <code>$strategy</code>
    </MixedAssignment>
  </file>
  <file src="test/Assertions.php">
    <DeprecatedClass>
      <code>ObjectProperty::class</code>
    </DeprecatedClass>
    <MixedArgument>
      <code><![CDATA[$actual->getHref()]]></code>
      <code><![CDATA[$actual->getRels()]]></code>
    </MixedArgument>
    <MixedMethodCall>
      <code>getHref</code>
      <code>getHref</code>
      <code>getRels</code>
      <code>getRels</code>
    </MixedMethodCall>
    <MoreSpecificReturnType>
      <code>Link</code>
    </MoreSpecificReturnType>
    <RedundantCondition>
      <code>assertIsArray</code>
    </RedundantCondition>
  </file>
  <file src="test/ConfigProviderTest.php">
    <RedundantCondition>
      <code>assertIsArray</code>
    </RedundantCondition>
  </file>
  <file src="test/ExceptionTest.php">
    <MixedInferredReturnType>
      <code>Generator</code>
    </MixedInferredReturnType>
    <PossiblyFalseOperand>
      <code><![CDATA[strrpos(ExceptionInterface::class, '\\')]]></code>
    </PossiblyFalseOperand>
  </file>
  <file src="test/HalResourceTest.php">
    <InvalidArgument>
      <code>$links</code>
      <code><![CDATA[['foo' => $embedded]]]></code>
      <code><![CDATA[['foo' => 'bar']]]></code>
    </InvalidArgument>
    <MixedArgument>
      <code><![CDATA[$representation['_embedded']]]></code>
      <code><![CDATA[$representation['_embedded']]]></code>
      <code><![CDATA[$representation['_embedded']]]></code>
      <code><![CDATA[$representation['_embedded']]]></code>
    </MixedArgument>
    <MixedArrayAccess>
      <code><![CDATA[$representation['_embedded']['foo']]]></code>
      <code><![CDATA[$representation['_embedded']['foo']]]></code>
      <code><![CDATA[$representation['_embedded']['foo']]]></code>
      <code><![CDATA[$representation['_embedded']['foo']]]></code>
    </MixedArrayAccess>
  </file>
  <file src="test/HalResponseFactoryFactoryTest.php">
    <DeprecatedMethod>
      <code><![CDATA[self::assertAttributeInstanceOf(Renderer\JsonRenderer::class, 'jsonRenderer', $instance)]]></code>
      <code><![CDATA[self::assertAttributeInstanceOf(Renderer\XmlRenderer::class, 'xmlRenderer', $instance)]]></code>
      <code><![CDATA[self::assertAttributeSame($jsonRenderer, 'jsonRenderer', $instance)]]></code>
      <code><![CDATA[self::assertAttributeSame($jsonRenderer, 'jsonRenderer', $instance)]]></code>
      <code><![CDATA[self::assertAttributeSame($xmlRenderer, 'xmlRenderer', $instance)]]></code>
      <code><![CDATA[self::assertAttributeSame($xmlRenderer, 'xmlRenderer', $instance)]]></code>
    </DeprecatedMethod>
    <UndefinedClass>
      <code>StreamInterface</code>
      <code>StreamInterface</code>
    </UndefinedClass>
  </file>
  <file src="test/InMemoryContainer.php">
    <PossiblyUnusedMethod>
      <code>reset</code>
    </PossiblyUnusedMethod>
  </file>
  <file src="test/LinkGenerator/MezzioUrlGeneratorFactoryTest.php">
    <DeprecatedMethod>
      <code>withConsecutive</code>
      <code>withConsecutive</code>
      <code>withConsecutive</code>
      <code>withConsecutive</code>
      <code>withConsecutive</code>
      <code>withConsecutive</code>
    </DeprecatedMethod>
    <MixedArgument>
      <code>CustomUrlHelper::class</code>
    </MixedArgument>
    <UndefinedClass>
      <code>CustomUrlHelper</code>
      <code>CustomUrlHelper</code>
      <code>CustomUrlHelper</code>
    </UndefinedClass>
  </file>
  <file src="test/LinkGenerator/MezzioUrlGeneratorTest.php">
    <DeprecatedMethod>
      <code>withConsecutive</code>
    </DeprecatedMethod>
  </file>
  <file src="test/LinkGeneratorFactoryTest.php">
    <DeprecatedMethod>
      <code>assertAttributeSame</code>
      <code><![CDATA[self::assertAttributeSame($urlGenerator, 'urlGenerator', $instance)]]></code>
      <code><![CDATA[self::assertAttributeSame($urlGenerator, 'urlGenerator', $instance)]]></code>
    </DeprecatedMethod>
    <MixedArgument>
      <code>UrlGenerator::class</code>
    </MixedArgument>
    <UndefinedClass>
      <code>UrlGenerator</code>
      <code>UrlGenerator</code>
      <code>UrlGenerator</code>
      <code>UrlGenerator</code>
    </UndefinedClass>
  </file>
  <file src="test/LinkTest.php">
    <ArgumentTypeCoercion>
      <code>$uri</code>
    </ArgumentTypeCoercion>
    <MixedArgument>
      <code>$name</code>
      <code>$name</code>
      <code>$rel</code>
      <code>$rel</code>
      <code>$uri</code>
      <code>$value</code>
      <code>$value</code>
    </MixedArgument>
    <TooFewArguments>
      <code>new Link()</code>
    </TooFewArguments>
  </file>
  <file src="test/Metadata/ExceptionTest.php">
    <MixedInferredReturnType>
      <code>Generator</code>
    </MixedInferredReturnType>
    <PossiblyFalseOperand>
      <code><![CDATA[strrpos(ExceptionInterface::class, '\\')]]></code>
    </PossiblyFalseOperand>
  </file>
  <file src="test/Metadata/MetadataMapFactoryTest.php">
    <MixedInferredReturnType>
      <code>Generator</code>
    </MixedInferredReturnType>
  </file>
  <file src="test/PHPUnitDeprecatedAssertions.php">
    <ArgumentTypeCoercion>
      <code>$expected</code>
      <code>$expected</code>
      <code>$expected</code>
      <code>$expected</code>
      <code>$expected</code>
    </ArgumentTypeCoercion>
    <DeprecatedMethod>
      <code>static::getObjectAttribute(
                $classOrObject,
                $attributeName
            )</code>
      <code>static::getStaticAttribute(
                $classOrObject,
                $attributeName
            )</code>
      <code>static::readAttribute($actualClassOrObject, $actualAttributeName)</code>
      <code>static::readAttribute($classOrObject, $attributeName)</code>
      <code>static::readAttribute($haystackClassOrObject, $haystackAttributeName)</code>
    </DeprecatedMethod>
    <DocblockTypeContradiction>
      <code>is_object($object)</code>
    </DocblockTypeContradiction>
    <InternalClass>
      <code><![CDATA[new Exception(
            sprintf(
                'Argument #%d%sof %s::%s() must be a %s',
                $argument,
                $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ',
                $stack[1]['class'] ?? '',
                $stack[1]['function'],
                $type
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Argument #%d%sof %s::%s() must be a %s',
                $argument,
                $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ',
                $stack[1]['class'] ?? '',
                $stack[1]['function'],
                $type
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Argument #%d%sof %s::%s() must be a %s',
                $argument,
                $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ',
                $stack[1]['class'] ?? '',
                $stack[1]['function'],
                $type
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Argument #%d%sof %s::%s() must be a %s',
                $argument,
                $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ',
                $stack[1]['class'] ?? '',
                $stack[1]['function'],
                $type
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Argument #%d%sof %s::%s() must be a %s',
                $argument,
                $value !== null ? ' (' . gettype($value) . '#' . $value . ')' : ' (No Value) ',
                $stack[1]['class'] ?? '',
                $stack[1]['function'],
                $type
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Attribute "%s" not found in class.',
                $attributeName
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Attribute "%s" not found in class.',
                $attributeName
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Attribute "%s" not found in class.',
                $attributeName
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Attribute "%s" not found in class.',
                $attributeName
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Attribute "%s" not found in class.',
                $attributeName
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Attribute "%s" not found in object.',
                $attributeName
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Attribute "%s" not found in object.',
                $attributeName
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Attribute "%s" not found in object.',
                $attributeName
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Attribute "%s" not found in object.',
                $attributeName
            )
        )]]></code>
      <code><![CDATA[new Exception(
            sprintf(
                'Attribute "%s" not found in object.',
                $attributeName
            )
        )]]></code>
    </InternalClass>
    <MixedOperand>
      <code>$value</code>
    </MixedOperand>
    <PossiblyUndefinedArrayOffset>
      <code>$stack[1]</code>
    </PossiblyUndefinedArrayOffset>
    <PossiblyUnusedMethod>
      <code>assertAttributeEmpty</code>
      <code>assertAttributeEmpty</code>
      <code>assertAttributeEmpty</code>
      <code>assertAttributeEmpty</code>
      <code>assertAttributeEmpty</code>
    </PossiblyUnusedMethod>
    <RedundantConditionGivenDocblockType>
      <code>is_object($classOrObject)</code>
    </RedundantConditionGivenDocblockType>
  </file>
  <file src="test/ResourceGenerator/DoctrinePaginatorTest.php">
    <DeprecatedMethod>
      <code>setMethods</code>
      <code>withConsecutive</code>
      <code>withConsecutive</code>
      <code>withConsecutive</code>
      <code>withConsecutive</code>
      <code>withConsecutive</code>
    </DeprecatedMethod>
    <MixedInferredReturnType>
      <code>iterable</code>
    </MixedInferredReturnType>
  </file>
  <file src="test/ResourceGenerator/ExceptionTest.php">
    <MixedInferredReturnType>
      <code>Generator</code>
    </MixedInferredReturnType>
    <PossiblyFalseOperand>
      <code><![CDATA[strrpos(ExceptionInterface::class, '\\')]]></code>
    </PossiblyFalseOperand>
  </file>
  <file src="test/ResourceGenerator/NestedCollectionResourceGenerationTest.php">
    <DeprecatedMethod>
      <code>assertInternalType</code>
      <code>assertInternalType</code>
    </DeprecatedMethod>
    <InvalidArgument>
      <code>$request</code>
    </InvalidArgument>
    <MixedAssignment>
      <code>$childCollection</code>
    </MixedAssignment>
  </file>
  <file src="test/ResourceGenerator/ResourceWithNestedInstancesTest.php">
    <InvalidArgument>
      <code>$request</code>
    </InvalidArgument>
  </file>
  <file src="test/ResourceGenerator/ResourceWithSelfReferringInstanceTest.php">
    <MixedArgument>
      <code><![CDATA[$hydrators->reveal()]]></code>
      <code><![CDATA[$linkGenerator->reveal()]]></code>
      <code><![CDATA[$metadataMap->reveal()]]></code>
    </MixedArgument>
    <PossiblyUndefinedMethod>
      <code>reveal</code>
      <code>reveal</code>
      <code>reveal</code>
    </PossiblyUndefinedMethod>
  </file>
  <file src="test/ResourceGenerator/RouteBasedCollectionWithRouteParamsTest.php">
    <InvalidArgument>
      <code>$linkGenerator</code>
      <code>$linkGenerator</code>
      <code>$linkGenerator</code>
      <code>$linkGenerator</code>
      <code>$linkGenerator</code>
      <code>$linkGenerator</code>
      <code>$linkGenerator</code>
      <code>$request</code>
      <code>$request</code>
      <code>$request</code>
      <code>$request</code>
      <code>$request</code>
      <code>$request</code>
      <code>$request</code>
      <code><![CDATA[Argument::that(function (array $params) use ($i) {
                        return array_key_exists('foo_id', $params)
                            && array_key_exists('bar_id', $params)
                            && $params['foo_id'] === 1234
                            && $params['bar_id'] === $i;
                    })]]></code>
      <code><![CDATA[Argument::that(function (array $params) use ($page) {
                return array_key_exists('foo_id', $params)
                    && array_key_exists('p', $params)
                    && $params['foo_id'] === 1234
                    && $params['p'] === $page;
            })]]></code>
    </InvalidArgument>
    <MixedArgumentTypeCoercion>
      <code><![CDATA[$request->reveal()]]></code>
      <code><![CDATA[$request->reveal()]]></code>
      <code><![CDATA[$this->createCollectionItems(
            $linkGenerator,
            $request
        )]]></code>
    </MixedArgumentTypeCoercion>
    <MixedMethodCall>
      <code>willReturn</code>
      <code>willReturn</code>
    </MixedMethodCall>
  </file>
  <file src="test/ResourceGenerator/UrlBasedCollectionWithRouteParamsTest.php">
    <InvalidArgument>
      <code>$linkGenerator</code>
      <code>$request</code>
      <code><![CDATA[Argument::that(function (array $params) use ($i) {
                        return array_key_exists('foo_id', $params)
                            && array_key_exists('bar_id', $params)
                            && $params['foo_id'] === 1234
                            && $params['bar_id'] === $i;
                    })]]></code>
    </InvalidArgument>
    <MixedArgumentTypeCoercion>
      <code><![CDATA[$request->reveal()]]></code>
      <code><![CDATA[$this->createCollectionItems($linkGenerator, $request)]]></code>
    </MixedArgumentTypeCoercion>
    <MixedMethodCall>
      <code>willReturn</code>
    </MixedMethodCall>
  </file>
  <file src="test/ResourceGeneratorFactoryTest.php">
    <DeprecatedMethod>
      <code>assertAttributeSame</code>
      <code>assertAttributeSame</code>
    </DeprecatedMethod>
    <MissingDependency>
      <code>HydratorPluginManager</code>
      <code>HydratorPluginManager</code>
    </MissingDependency>
    <MixedArgument>
      <code><![CDATA[$this->container->reveal()]]></code>
      <code><![CDATA[$this->container->reveal()]]></code>
      <code><![CDATA[$this->container->reveal()]]></code>
      <code><![CDATA[$this->container->reveal()]]></code>
      <code>CustomLinkGenerator::class</code>
    </MixedArgument>
    <MixedMethodCall>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
    </MixedMethodCall>
    <PossiblyInvalidMethodCall>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
    </PossiblyInvalidMethodCall>
    <PossiblyUndefinedMethod>
      <code>reveal</code>
      <code>reveal</code>
      <code>reveal</code>
      <code>reveal</code>
    </PossiblyUndefinedMethod>
    <UndefinedClass>
      <code>CustomLinkGenerator</code>
      <code>CustomLinkGenerator</code>
      <code>CustomLinkGenerator</code>
      <code>CustomLinkGenerator</code>
    </UndefinedClass>
  </file>
  <file src="test/ResourceGeneratorTest.php">
    <DeprecatedMethod>
      <code>assertInternalType</code>
    </DeprecatedMethod>
    <InvalidArgument>
      <code><![CDATA[Argument::that(function (array $params) use ($i) {
                        return array_key_exists('foo_bar_id', $params)
                            && array_key_exists('test', $params)
                            && $params['foo_bar_id'] === $i
                            && $params['test'] === 'param';
                    })]]></code>
      <code><![CDATA[Argument::that(function (array $params) use ($i) {
                        return array_key_exists('foo_bar_id', $params)
                            && array_key_exists('test', $params)
                            && $params['foo_bar_id'] === $i
                            && $params['test'] === 'param';
                    })]]></code>
      <code><![CDATA[Argument::that(function (array $params) {
                    return array_key_exists('foo_bar_id', $params)
                        && array_key_exists('test', $params)
                        && $params['foo_bar_id'] === 'XXXX-YYYY-ZZZZ'
                        && $params['test'] === 'param';
                })]]></code>
      <code><![CDATA[Argument::type('array')]]></code>
      <code><![CDATA[Argument::type('array')]]></code>
      <code><![CDATA[Argument::type('array')]]></code>
      <code><![CDATA[Argument::type('array')]]></code>
      <code><![CDATA[Argument::type('array')]]></code>
      <code><![CDATA[Argument::type('array')]]></code>
      <code><![CDATA[Argument::type('array')]]></code>
      <code><![CDATA[Argument::type('array')]]></code>
      <code><![CDATA[Argument::type('array')]]></code>
      <code><![CDATA[Argument::type('array')]]></code>
    </InvalidArgument>
    <MixedArgument>
      <code>$embedded</code>
      <code>$item</code>
    </MixedArgument>
    <MixedAssignment>
      <code>$embedded</code>
      <code>$ids[]</code>
      <code>$item</code>
    </MixedAssignment>
    <MixedInferredReturnType>
      <code>Generator</code>
    </MixedInferredReturnType>
    <PossiblyUndefinedMethod>
      <code>shouldNotBeCalled</code>
      <code>shouldNotBeCalled</code>
      <code>shouldNotBeCalled</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>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
      <code>willReturn</code>
    </PossiblyUndefinedMethod>
    <PossiblyUnusedParam>
      <code>$strategy</code>
    </PossiblyUnusedParam>
    <TooFewArguments>
      <code>fromRoute</code>
      <code>fromRoute</code>
      <code>fromRoute</code>
      <code>fromRoute</code>
      <code>fromRoute</code>
      <code>fromRoute</code>
      <code>fromRoute</code>
      <code>fromRoute</code>
      <code>fromRoute</code>
      <code>fromRoute</code>
      <code>fromRoute</code>
      <code>fromRoute</code>
    </TooFewArguments>
    <UnsafeInstantiation>
      <code><![CDATA[new $metadata(
            TestAsset\FooBar::class,
            'foo-bar',
            '/api/foo'
        )]]></code>
    </UnsafeInstantiation>
  </file>
  <file src="test/TestAsset/Child.php">
    <MissingPropertyType>
      <code>$id</code>
      <code>$message</code>
    </MissingPropertyType>
  </file>
  <file src="test/TestAsset/FooBar.php">
    <PossiblyUnusedProperty>
      <code>$bar</code>
      <code>$children</code>
      <code>$foo</code>
      <code>$id</code>
    </PossiblyUnusedProperty>
  </file>
  <file src="test/TestAsset/TestMetadataMapFactory.php">
    <PossiblyUnusedMethod>
      <code>createTestMetadata</code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedParam>
      <code>$metadata</code>
    </PossiblyUnusedParam>
  </file>
</files>
