Skip to content

Commit e18f6af

Browse files
committed
bugfix InnerList:push
1 parent d970dc3 commit e18f6af

File tree

1 file changed

+6
-8
lines changed

1 file changed

+6
-8
lines changed

src/InnerList.php

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public static function fromMembers(iterable $members = [], iterable $parameters
4141
{
4242
$newMembers = [];
4343
foreach ($members as $member) {
44-
$newMembers[] = self::convertItem($member);
44+
$newMembers[] = self::filterMember($member);
4545
}
4646

4747
return new self(Parameters::fromAssociative($parameters), ...$newMembers);
@@ -110,10 +110,10 @@ public function get(int $index): Item
110110
*/
111111
public function unshift(Item|ByteSequence|Token|bool|int|float|string ...$members): void
112112
{
113-
$this->members = [...array_map(self::convertItem(...), $members), ...$this->members];
113+
$this->members = [...array_map(self::filterMember(...), $members), ...$this->members];
114114
}
115115

116-
private static function convertItem(Item|ByteSequence|Token|bool|int|float|string $member): Item
116+
private static function filterMember(Item|ByteSequence|Token|bool|int|float|string $member): Item
117117
{
118118
return match (true) {
119119
$member instanceof Item => $member,
@@ -126,9 +126,7 @@ private static function convertItem(Item|ByteSequence|Token|bool|int|float|strin
126126
*/
127127
public function push(Item|ByteSequence|Token|bool|int|float|string ...$members): void
128128
{
129-
foreach (array_map(self::convertItem(...), $members) as $member) {
130-
$this->members[] = $member;
131-
}
129+
$this->members = [...$this->members, ...array_map(self::filterMember(...), $members)];
132130
}
133131

134132
/**
@@ -143,7 +141,7 @@ public function insert(int $index, Item|ByteSequence|Token|bool|int|float|string
143141
null === $offset => throw InvalidOffset::dueToIndexNotFound($index),
144142
0 === $offset => $this->unshift(...$members),
145143
count($this->members) === $offset => $this->push(...$members),
146-
default => array_splice($this->members, $offset, 0, array_map(self::convertItem(...), $members)),
144+
default => array_splice($this->members, $offset, 0, array_map(self::filterMember(...), $members)),
147145
};
148146
}
149147

@@ -153,7 +151,7 @@ public function replace(int $index, Item|ByteSequence|Token|bool|int|float|strin
153151
throw InvalidOffset::dueToIndexNotFound($index);
154152
}
155153

156-
$this->members[$this->filterIndex($index)] = self::convertItem($member);
154+
$this->members[$this->filterIndex($index)] = self::filterMember($member);
157155
}
158156

159157
/**

0 commit comments

Comments
 (0)