Lines 100.00% 5 / 5
Methods 100.00% 2 / 2
Classes 100.00% 1 / 1
Name Lines Methods CRAP
 __construct 100.00% 1 / 1 100.00% 1 / 1 1
 createAllocatorFor 100.00% 4 / 4 100.00% 1 / 1 2
7final readonly class MemberReservations
8{
9    /** @param iterable<ReservesMemberNames> $reservers */
10    public function __construct(private iterable $reservers) {}
11
12    public function createAllocatorFor(MemberScope $scope): IdentifierAllocator
13    {
14        $reserved = [];
15
16        foreach ($this->reservers as $reserver) {
17            $reserved = [...$reserved, ...$reserver->listReservedMemberNames($scope)];
18        }
19
20        return new IdentifierAllocator(array_values(array_unique($reserved)), $scope->getCollisionSuffix());
21    }
22}