<?xml version="1.0" encoding="UTF-8"?>
<files psalm-version="6.13.1@1e3b7f0a8ab32b23197b91107adc0a7ed8a05b51">
  <file src="src/Acl.php">
    <MixedArgument>
      <code><![CDATA[$child]]></code>
      <code><![CDATA[$childId]]></code>
      <code><![CDATA[$dfs['stack']]]></code>
      <code><![CDATA[$dfs['stack']]]></code>
      <code><![CDATA[$privilege]]></code>
      <code><![CDATA[$privilege]]></code>
      <code><![CDATA[$resource]]></code>
      <code><![CDATA[$resource]]></code>
      <code><![CDATA[$resource]]></code>
      <code><![CDATA[$resource]]></code>
      <code><![CDATA[$resource]]></code>
      <code><![CDATA[$role]]></code>
      <code><![CDATA[$role]]></code>
      <code><![CDATA[$role]]></code>
      <code><![CDATA[$visitor]]></code>
    </MixedArgument>
    <MixedArrayAccess>
      <code><![CDATA[$rule['assert']]]></code>
      <code><![CDATA[$rule['assert']]]></code>
      <code><![CDATA[$rule['type']]]></code>
      <code><![CDATA[$rule['type']]]></code>
      <code><![CDATA[$rules['allPrivileges']['type']]]></code>
      <code><![CDATA[$rules['byPrivilegeId'][$privilege]['type']]]></code>
      <code><![CDATA[$this->resources[$id]['children']]]></code>
      <code><![CDATA[$this->resources[$parentId]['parent']]]></code>
      <code><![CDATA[$this->resources[$resource->getResourceId()]['parent']]]></code>
      <code><![CDATA[$this->resources[$resource->getResourceId()]['parent']]]></code>
      <code><![CDATA[$this->resources[$resourceId]['children']]]></code>
      <code><![CDATA[$this->resources[$resourceId]['instance']]]></code>
      <code><![CDATA[$this->resources[$resourceId]['parent']]]></code>
      <code><![CDATA[$this->resources[$resourceId]['parent']]]></code>
      <code><![CDATA[$this->resources[$resourceParent->getResourceId()]['children']]]></code>
      <code><![CDATA[$this->rules['allResources']['byRoleId']]]></code>
      <code><![CDATA[$this->rules['allResources']['byRoleId']]]></code>
      <code><![CDATA[$this->rules['allResources']['byRoleId']]]></code>
      <code><![CDATA[$this->rules['allResources']['byRoleId']]]></code>
      <code><![CDATA[$this->rules['allResources']['byRoleId'][$roleIdCurrent]]]></code>
      <code><![CDATA[$this->rules['allResources']['byRoleId'][$roleIdCurrent]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceIdCurrent]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceIdCurrent]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceIdCurrent]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceIdCurrent]['byRoleId']]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceIdCurrent]['byRoleId']]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceIdCurrent]['byRoleId'][$roleIdCurrent]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceIdCurrent]['byRoleId'][$roleIdCurrent]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceId]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceId]]]></code>
      <code><![CDATA[$visitor['allRoles']]]></code>
      <code><![CDATA[$visitor['byRoleId']]]></code>
      <code><![CDATA[$visitor['byRoleId'][$roleId]]]></code>
    </MixedArrayAccess>
    <MixedArrayAssignment>
      <code><![CDATA[$dfs['stack'][]]]></code>
      <code><![CDATA[$dfs['stack'][]]]></code>
      <code><![CDATA[$dfs['visited'][$role->getRoleId()]]]></code>
      <code><![CDATA[$dfs['visited'][$role->getRoleId()]]]></code>
      <code><![CDATA[$this->resources[$resourceParentId]['children']]]></code>
      <code><![CDATA[$this->resources[$resourceParentId]['children'][$resourceId]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceId]]]></code>
      <code><![CDATA[$visitor['allRoles']]]></code>
      <code><![CDATA[$visitor['byRoleId']]]></code>
      <code><![CDATA[$visitor['byRoleId'][$roleId]]]></code>
    </MixedArrayAssignment>
    <MixedArrayOffset>
      <code><![CDATA[$dfs['visited'][$role->getRoleId()]]]></code>
      <code><![CDATA[$dfs['visited'][$role->getRoleId()]]]></code>
      <code><![CDATA[$rules['byPrivilegeId'][$privilege]]]></code>
      <code><![CDATA[$rules['byPrivilegeId'][$privilege]]]></code>
      <code><![CDATA[$rules['byPrivilegeId'][$privilege]]]></code>
      <code><![CDATA[$this->resources[$parentId]]]></code>
      <code><![CDATA[$this->resources[$parentId]]]></code>
      <code><![CDATA[$this->resources[$resourceParent->getResourceId()]]]></code>
      <code><![CDATA[$this->rules['allResources']['byRoleId'][$roleIdCurrent]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceIdCurrent]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceIdCurrent]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceIdCurrent]]]></code>
      <code><![CDATA[$this->rules['byResourceId'][$resourceIdCurrent]['byRoleId'][$roleIdCurrent]]]></code>
    </MixedArrayOffset>
    <MixedAssignment>
      <code><![CDATA[$child]]></code>
      <code><![CDATA[$child]]></code>
      <code><![CDATA[$childId]]></code>
      <code><![CDATA[$children]]></code>
      <code><![CDATA[$dfs['stack'][]]]></code>
      <code><![CDATA[$dfs['stack'][]]]></code>
      <code><![CDATA[$parentId]]></code>
      <code><![CDATA[$parentId]]></code>
      <code><![CDATA[$privilege]]></code>
      <code><![CDATA[$privilege]]></code>
      <code><![CDATA[$privilege]]></code>
      <code><![CDATA[$privilege]]></code>
      <code><![CDATA[$resource]]></code>
      <code><![CDATA[$resource]]></code>
      <code><![CDATA[$resource]]></code>
      <code><![CDATA[$resource]]></code>
      <code><![CDATA[$resourceIdCurrent]]></code>
      <code><![CDATA[$resourceIdCurrent]]></code>
      <code><![CDATA[$resourceIdCurrent]]></code>
      <code><![CDATA[$resourceIdRemoved]]></code>
      <code><![CDATA[$resourceParent]]></code>
      <code><![CDATA[$resourcesRemoved[]]]></code>
      <code><![CDATA[$role]]></code>
      <code><![CDATA[$role]]></code>
      <code><![CDATA[$role]]></code>
      <code><![CDATA[$roleIdCurrent]]></code>
      <code><![CDATA[$roleIdCurrent]]></code>
      <code><![CDATA[$roleIdCurrent]]></code>
      <code><![CDATA[$roleIdCurrent]]></code>
      <code><![CDATA[$roleParent]]></code>
      <code><![CDATA[$roleParent]]></code>
      <code><![CDATA[$rule]]></code>
      <code><![CDATA[$rule]]></code>
      <code><![CDATA[$rule]]></code>
      <code><![CDATA[$rule]]></code>
      <code><![CDATA[$rules]]></code>
      <code><![CDATA[$rules]]></code>
      <code><![CDATA[$rules]]></code>
      <code><![CDATA[$rules]]></code>
      <code><![CDATA[$rules]]></code>
      <code><![CDATA[$visitor]]></code>
      <code><![CDATA[$visitor]]></code>
    </MixedAssignment>
    <MixedMethodCall>
      <code><![CDATA[getResourceId]]></code>
      <code><![CDATA[getResourceId]]></code>
      <code><![CDATA[getResourceId]]></code>
      <code><![CDATA[getRoleId]]></code>
      <code><![CDATA[getRoleId]]></code>
    </MixedMethodCall>
    <MixedReturnStatement>
      <code><![CDATA[$rule['type']]]></code>
      <code><![CDATA[$this->resources[$resourceId]['instance']]]></code>
      <code><![CDATA[$visitor['allRoles']]]></code>
      <code><![CDATA[$visitor['allRoles']]]></code>
      <code><![CDATA[$visitor['byRoleId'][$roleId]]]></code>
      <code><![CDATA[$visitor['byRoleId'][$roleId]]]></code>
    </MixedReturnStatement>
    <PossiblyInvalidPropertyAssignmentValue>
      <code><![CDATA[$resource]]></code>
      <code><![CDATA[$role]]></code>
    </PossiblyInvalidPropertyAssignmentValue>
    <PossiblyNullArgument>
      <code><![CDATA[$dfs['stack']]]></code>
      <code><![CDATA[$dfs['stack']]]></code>
    </PossiblyNullArgument>
    <PossiblyNullArrayAccess>
      <code><![CDATA[$dfs['stack']]]></code>
      <code><![CDATA[$dfs['stack']]]></code>
    </PossiblyNullArrayAccess>
    <PossiblyNullArrayAssignment>
      <code><![CDATA[$rules['allPrivileges']]]></code>
      <code><![CDATA[$rules['byPrivilegeId']]]></code>
    </PossiblyNullArrayAssignment>
    <PossiblyNullReference>
      <code><![CDATA[getResourceId]]></code>
      <code><![CDATA[getResourceId]]></code>
    </PossiblyNullReference>
    <PossiblyUndefinedVariable>
      <code><![CDATA[$resourceParentId]]></code>
    </PossiblyUndefinedVariable>
    <PossiblyUnusedMethod>
      <code><![CDATA[getChildResources]]></code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedReturnValue>
      <code><![CDATA[Acl]]></code>
      <code><![CDATA[Acl]]></code>
    </PossiblyUnusedReturnValue>
    <RedundantCastGivenDocblockType>
      <code><![CDATA[(string) $resource]]></code>
      <code><![CDATA[(string) $resource]]></code>
    </RedundantCastGivenDocblockType>
    <UnsupportedPropertyReferenceUsage>
      <code><![CDATA[$visitor =& $this->rules['allResources']]]></code>
      <code><![CDATA[$visitor =& $this->rules['byResourceId'][$resourceId]]]></code>
    </UnsupportedPropertyReferenceUsage>
    <UnsupportedReferenceUsage>
      <code><![CDATA[$rules =& $this->getRules($resource, $role)]]></code>
      <code><![CDATA[$rules =& $this->getRules($resource, $role, true)]]></code>
    </UnsupportedReferenceUsage>
    <UnusedForeachValue>
      <code><![CDATA[$child]]></code>
      <code><![CDATA[$resource]]></code>
      <code><![CDATA[$rule]]></code>
      <code><![CDATA[$rule]]></code>
      <code><![CDATA[$rules]]></code>
      <code><![CDATA[$rules]]></code>
      <code><![CDATA[$rules]]></code>
      <code><![CDATA[$rules]]></code>
      <code><![CDATA[$rules]]></code>
    </UnusedForeachValue>
    <UnusedVariable>
      <code><![CDATA[$rules]]></code>
    </UnusedVariable>
  </file>
  <file src="src/Assertion/AssertionAggregate.php">
    <MixedAssignment>
      <code><![CDATA[$assertion]]></code>
    </MixedAssignment>
    <MixedMethodCall>
      <code><![CDATA[assert]]></code>
      <code><![CDATA[new $assertion()]]></code>
    </MixedMethodCall>
    <MixedOperand>
      <code><![CDATA[$assertion]]></code>
    </MixedOperand>
  </file>
  <file src="src/Assertion/AssertionManager.php">
    <MissingReturnType>
      <code><![CDATA[validatePlugin]]></code>
    </MissingReturnType>
    <NonInvariantDocblockPropertyType>
      <code><![CDATA[$instanceOf]]></code>
    </NonInvariantDocblockPropertyType>
    <PossiblyUnusedMethod>
      <code><![CDATA[validatePlugin]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="src/Assertion/ExpressionAssertion.php">
    <InvalidNullableReturnType>
      <code><![CDATA[bool]]></code>
    </InvalidNullableReturnType>
    <MissingReturnType>
      <code><![CDATA[validateOperand]]></code>
      <code><![CDATA[validateOperator]]></code>
    </MissingReturnType>
    <MixedArgument>
      <code><![CDATA[$expression['operator']]]></code>
      <code><![CDATA[$left]]></code>
      <code><![CDATA[$left]]></code>
      <code><![CDATA[$right]]></code>
      <code><![CDATA[$right]]></code>
      <code><![CDATA[$right]]></code>
      <code><![CDATA[$right]]></code>
    </MixedArgument>
    <MixedAssignment>
      <code><![CDATA[$left]]></code>
      <code><![CDATA[$right]]></code>
    </MixedAssignment>
    <NullableReturnStatement>
      <code><![CDATA[static::evaluateExpression($left, $this->operator, $right)]]></code>
    </NullableReturnStatement>
  </file>
  <file src="src/Resource/GenericResource.php">
    <RedundantCastGivenDocblockType>
      <code><![CDATA[(string) $resourceId]]></code>
    </RedundantCastGivenDocblockType>
  </file>
  <file src="src/Role/GenericRole.php">
    <RedundantCastGivenDocblockType>
      <code><![CDATA[(string) $roleId]]></code>
    </RedundantCastGivenDocblockType>
  </file>
  <file src="src/Role/Registry.php">
    <InvalidPropertyAssignmentValue>
      <code><![CDATA[$this->roles]]></code>
    </InvalidPropertyAssignmentValue>
    <MixedArgument>
      <code><![CDATA[$parentId]]></code>
      <code><![CDATA[$roleParentId]]></code>
      <code><![CDATA[$roleParentId]]></code>
    </MixedArgument>
    <MixedArrayAccess>
      <code><![CDATA[$this->roles[$childId]['parents'][$roleId]]]></code>
      <code><![CDATA[$this->roles[$parentId]['children'][$roleId]]]></code>
    </MixedArrayAccess>
    <MixedArrayAssignment>
      <code><![CDATA[$this->roles[$roleParentId]['children'][$roleId]]]></code>
    </MixedArrayAssignment>
    <MixedArrayOffset>
      <code><![CDATA[$roleParents[$roleParentId]]]></code>
      <code><![CDATA[$this->roles[$childId]]]></code>
      <code><![CDATA[$this->roles[$parentId]]]></code>
      <code><![CDATA[$this->roles[$roleParentId]]]></code>
      <code><![CDATA[$this->roles[$roleParentId]]]></code>
    </MixedArrayOffset>
    <MixedArrayTypeCoercion>
      <code><![CDATA[$this->roles[$roleParentId]]]></code>
    </MixedArrayTypeCoercion>
    <MixedAssignment>
      <code><![CDATA[$child]]></code>
      <code><![CDATA[$childId]]></code>
      <code><![CDATA[$parent]]></code>
      <code><![CDATA[$parent]]></code>
      <code><![CDATA[$parent]]></code>
      <code><![CDATA[$parentId]]></code>
      <code><![CDATA[$parentId]]></code>
      <code><![CDATA[$roleParentId]]></code>
    </MixedAssignment>
    <MixedPropertyTypeCoercion>
      <code><![CDATA[$this->roles]]></code>
    </MixedPropertyTypeCoercion>
    <MixedReturnStatement>
      <code><![CDATA[$this->roles[$roleId]['instance']]]></code>
      <code><![CDATA[$this->roles[$roleId]['parents']]]></code>
    </MixedReturnStatement>
    <PossiblyUndefinedVariable>
      <code><![CDATA[$roleParentId]]></code>
    </PossiblyUndefinedVariable>
    <RedundantCastGivenDocblockType>
      <code><![CDATA[(string) $role]]></code>
      <code><![CDATA[(string) $role]]></code>
    </RedundantCastGivenDocblockType>
    <UndefinedInterfaceMethod>
      <code><![CDATA[$this->roles[$childId]]]></code>
      <code><![CDATA[$this->roles[$parentId]]]></code>
      <code><![CDATA[$this->roles[$roleId]]]></code>
      <code><![CDATA[$this->roles[$roleId]]]></code>
      <code><![CDATA[$this->roles[$roleId]]]></code>
      <code><![CDATA[$this->roles[$roleId]]]></code>
      <code><![CDATA[$this->roles[$roleId]]]></code>
      <code><![CDATA[$this->roles[$roleId]]]></code>
      <code><![CDATA[$this->roles[$roleParentId]]]></code>
      <code><![CDATA[$this->roles[$roleParentId]]]></code>
    </UndefinedInterfaceMethod>
    <UnusedForeachValue>
      <code><![CDATA[$child]]></code>
      <code><![CDATA[$parent]]></code>
      <code><![CDATA[$parent]]></code>
    </UnusedForeachValue>
  </file>
  <file src="test/AclTest.php">
    <InvalidArgument>
      <code><![CDATA[new stdClass()]]></code>
      <code><![CDATA[new stdClass()]]></code>
    </InvalidArgument>
    <MissingReturnType>
      <code><![CDATA[testAclResourcePermissionsAreInheritedWithMultilevelResourcesAndDenyPolicy]]></code>
      <code><![CDATA[testAllowNullPermissionAfterResourcesExistShouldAllowAllPermissionsForRole]]></code>
      <code><![CDATA[testRemoveDenyWithNullResourceAppliesToAllResources]]></code>
      <code><![CDATA[testSetRuleWorksWithResourceInterface]]></code>
    </MissingReturnType>
    <MixedAssignment>
      <code><![CDATA[$roleParent]]></code>
      <code><![CDATA[$roleParent]]></code>
    </MixedAssignment>
    <MixedMethodCall>
      <code><![CDATA[getRoleId]]></code>
    </MixedMethodCall>
    <TooManyArguments>
      <code><![CDATA[new Resource\GenericResource('profiles', 'gallery')]]></code>
    </TooManyArguments>
    <UndefinedClass>
      <code><![CDATA[$assertion->assertReturnValue]]></code>
      <code><![CDATA[$assertion->assertReturnValue]]></code>
    </UndefinedClass>
    <UndefinedDocblockClass>
      <code><![CDATA[$assertion]]></code>
      <code><![CDATA[$assertion]]></code>
      <code><![CDATA[$assertion->lastAssertResource]]></code>
      <code><![CDATA[$assertion->lastAssertRole]]></code>
      <code><![CDATA[$assertion->lastAssertRole]]></code>
    </UndefinedDocblockClass>
    <UnusedForeachValue>
      <code><![CDATA[$roleParent]]></code>
      <code><![CDATA[$roleParent]]></code>
    </UnusedForeachValue>
  </file>
  <file src="test/Assertion/AssertionAggregateTest.php">
    <MissingReturnType>
      <code><![CDATA[testClearAssertions]]></code>
    </MissingReturnType>
  </file>
  <file src="test/Assertion/CallbackAssertionTest.php">
    <MissingClosureParamType>
      <code><![CDATA[$aclArg]]></code>
      <code><![CDATA[$aclArg]]></code>
      <code><![CDATA[$privilegeArg]]></code>
      <code><![CDATA[$privilegeArg]]></code>
      <code><![CDATA[$resourceArg]]></code>
      <code><![CDATA[$resourceArg]]></code>
      <code><![CDATA[$roleArg]]></code>
      <code><![CDATA[$roleArg]]></code>
      <code><![CDATA[$value]]></code>
    </MissingClosureParamType>
    <MissingClosureReturnType>
      <code><![CDATA[static fn($aclArg, $roleArg, $resourceArg, $privilegeArg) => $value]]></code>
      <code><![CDATA[static fn($value) => static fn($aclArg, $roleArg, $resourceArg, $privilegeArg) => $value]]></code>
    </MissingClosureReturnType>
    <UnusedClosureParam>
      <code><![CDATA[$aclArg]]></code>
      <code><![CDATA[$privilegeArg]]></code>
      <code><![CDATA[$resourceArg]]></code>
      <code><![CDATA[$roleArg]]></code>
    </UnusedClosureParam>
  </file>
  <file src="test/Assertion/ExpressionAssertionTest.php">
    <MissingReturnType>
      <code><![CDATA[testExpressionsEvaluation]]></code>
    </MissingReturnType>
  </file>
  <file src="test/TestAsset/AssertionLaminas7973.php">
    <ClassMustBeFinal>
      <code><![CDATA[AssertionLaminas7973]]></code>
    </ClassMustBeFinal>
  </file>
  <file src="test/TestAsset/ExpressionUseCase/BlogPost.php">
    <ClassMustBeFinal>
      <code><![CDATA[BlogPost]]></code>
    </ClassMustBeFinal>
    <PossiblyUnusedMethod>
      <code><![CDATA[getAuthorName]]></code>
      <code><![CDATA[getShortDescription]]></code>
    </PossiblyUnusedMethod>
    <PossiblyUnusedProperty>
      <code><![CDATA[$content]]></code>
      <code><![CDATA[$title]]></code>
    </PossiblyUnusedProperty>
  </file>
  <file src="test/TestAsset/ExpressionUseCase/User.php">
    <ClassMustBeFinal>
      <code><![CDATA[User]]></code>
    </ClassMustBeFinal>
    <PossiblyUnusedMethod>
      <code><![CDATA[isAdult]]></code>
    </PossiblyUnusedMethod>
  </file>
  <file src="test/TestAsset/ExtendedAclLaminas2234.php">
    <ClassMustBeFinal>
      <code><![CDATA[ExtendedAclLaminas2234]]></code>
    </ClassMustBeFinal>
    <PossiblyUnusedReturnValue>
      <code><![CDATA[bool|void]]></code>
      <code><![CDATA[bool|void]]></code>
      <code><![CDATA[bool|void]]></code>
    </PossiblyUnusedReturnValue>
  </file>
  <file src="test/TestAsset/MockAssertion.php">
    <ClassMustBeFinal>
      <code><![CDATA[MockAssertion]]></code>
    </ClassMustBeFinal>
  </file>
  <file src="test/TestAsset/OwnershipUseCase/Acl.php">
    <ClassMustBeFinal>
      <code><![CDATA[Acl]]></code>
    </ClassMustBeFinal>
  </file>
  <file src="test/TestAsset/OwnershipUseCase/Author1.php">
    <ClassMustBeFinal>
      <code><![CDATA[Author1]]></code>
    </ClassMustBeFinal>
  </file>
  <file src="test/TestAsset/OwnershipUseCase/Author2.php">
    <ClassMustBeFinal>
      <code><![CDATA[Author2]]></code>
    </ClassMustBeFinal>
  </file>
  <file src="test/TestAsset/OwnershipUseCase/BlogPost.php">
    <ClassMustBeFinal>
      <code><![CDATA[BlogPost]]></code>
    </ClassMustBeFinal>
  </file>
  <file src="test/TestAsset/OwnershipUseCase/Comment.php">
    <ClassMustBeFinal>
      <code><![CDATA[Comment]]></code>
    </ClassMustBeFinal>
  </file>
  <file src="test/TestAsset/StandardUseCase/Acl.php">
    <ClassMustBeFinal>
      <code><![CDATA[Acl]]></code>
    </ClassMustBeFinal>
  </file>
  <file src="test/TestAsset/StandardUseCase/BlogPost.php">
    <ClassMustBeFinal>
      <code><![CDATA[BlogPost]]></code>
    </ClassMustBeFinal>
  </file>
  <file src="test/TestAsset/StandardUseCase/User.php">
    <ClassMustBeFinal>
      <code><![CDATA[User]]></code>
    </ClassMustBeFinal>
  </file>
  <file src="test/TestAsset/StandardUseCase/UserIsBlogPostOwnerAssertion.php">
    <ClassMustBeFinal>
      <code><![CDATA[UserIsBlogPostOwnerAssertion]]></code>
    </ClassMustBeFinal>
    <ParamNameMismatch>
      <code><![CDATA[$blogPost]]></code>
      <code><![CDATA[$user]]></code>
    </ParamNameMismatch>
    <PossiblyUnusedProperty>
      <code><![CDATA[$lastAssertPrivilege]]></code>
      <code><![CDATA[$lastAssertResource]]></code>
      <code><![CDATA[$lastAssertRole]]></code>
    </PossiblyUnusedProperty>
  </file>
</files>
