Skip to content

Commit 747b112

Browse files
committed
fix phpstan reports
1 parent a17ae1d commit 747b112

File tree

5 files changed

+42
-32
lines changed

5 files changed

+42
-32
lines changed

src/InnerList.php

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ private static function filterMember(mixed $member): object
5353
/**
5454
* Returns a new instance.
5555
*/
56-
public static function from(StructuredField|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members): self
56+
public static function from(StructuredField|Value|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members): self
5757
{
5858
return new self(Parameters::create(), $members);
5959
}
@@ -63,7 +63,7 @@ public static function from(StructuredField|Token|ByteSequence|DateTimeInterface
6363
*/
6464
public static function fromPairs(
6565
iterable $parameters,
66-
StructuredField|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members
66+
StructuredField|Value|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members
6767
): self {
6868
return new self(Parameters::fromPairs($parameters), $members);
6969
}
@@ -75,7 +75,7 @@ public static function fromPairs(
7575
*/
7676
public static function fromAssociative(
7777
iterable $parameters,
78-
StructuredField|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members
78+
StructuredField|Value|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members
7979
): self {
8080
return new self(Parameters::fromAssociative($parameters), $members);
8181
}
@@ -99,12 +99,11 @@ public function parameters(): Parameters
9999

100100
public function parameter(MapKey|string $key): mixed
101101
{
102-
$key = $key instanceof MapKey ? $key->value : $key;
103-
if ($this->parameters->has($key)) {
104-
return $this->parameters->get($key)->value();
102+
try {
103+
return $this->parameters->get($key instanceof MapKey ? $key->value : $key)->value();
104+
} catch (StructuredFieldError) {
105+
return null;
105106
}
106-
107-
return null;
108107
}
109108

110109
public function withParameters(Parameters $parameters): static

src/Item.php

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -36,15 +36,14 @@ private function __construct(
3636
*/
3737
public static function from(mixed $value, iterable $parameters = []): self
3838
{
39-
$parameters = Parameters::fromAssociative($parameters);
40-
if ($value instanceof ParameterAccess) {
41-
$parameters = $value->parameters()->mergeAssociative($parameters);
42-
}
43-
4439
if (!$value instanceof Value) {
4540
$value = new Value($value);
4641
}
4742

43+
if (!$parameters instanceof Parameters) {
44+
$parameters = Parameters::fromAssociative($parameters);
45+
}
46+
4847
return new self($value, $parameters);
4948
}
5049

@@ -58,11 +57,23 @@ public static function fromPair(array $pair): self
5857
{
5958
$pair[1] = $pair[1] ?? [];
6059

61-
return match (true) {
62-
!array_is_list($pair) => throw new SyntaxError('The pair must be represented by an array as a list.'), /* @phpstan-ignore-line */
63-
2 !== count($pair) => throw new SyntaxError('The pair first value should be the item value and the optional second value the item parameters.'), /* @phpstan-ignore-line */
64-
default => new self(new Value($pair[0]), Parameters::fromPairs($pair[1])),
65-
};
60+
if (!array_is_list($pair)) { /* @phpstan-ignore-line */
61+
throw new SyntaxError('The pair must be represented by an array as a list.');
62+
}
63+
64+
if (2 !== count($pair)) { /* @phpstan-ignore-line */
65+
throw new SyntaxError('The pair first value should be the item value and the optional second value the item parameters.');
66+
}
67+
68+
if (!$pair[0] instanceof Value) {
69+
$pair[0] = new Value($pair[0]);
70+
}
71+
72+
if (!$pair[1] instanceof Parameters) {
73+
$pair[1] = Parameters::fromPairs($pair[1]);
74+
}
75+
76+
return new self($pair[0], $pair[1]);
6677
}
6778

6879
/**
@@ -161,13 +172,13 @@ public function parameters(): Parameters
161172
return $this->parameters;
162173
}
163174

164-
public function parameter(string $key): mixed
175+
public function parameter(MapKey|string $key): mixed
165176
{
166-
if ($this->parameters->has($key)) {
167-
return $this->parameters->get($key)->value();
177+
try {
178+
return $this->parameters->get($key instanceof MapKey ? $key->value : $key)->value();
179+
} catch (StructuredFieldError) {
180+
return null;
168181
}
169-
170-
return null;
171182
}
172183

173184
public function __toString(): string

src/ItemTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ public function it_updates_item(ValueAccess|ByteSequence|Token|DateTimeInterface
100100
*/
101101
public static function provideFrom1stArgument(): iterable
102102
{
103-
$item = Item::from(42, ['foobar' => 'baz']);
103+
$item = Item::from(42);
104104

105105
return [
106106
'decimal' => ['value' => 42.0, 'expected' => '42.0'],

src/OuterList.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ final class OuterList implements MemberList
3232
/**
3333
* @param SfMember|SfMemberInput ...$members
3434
*/
35-
private function __construct(iterable|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members)
35+
private function __construct(iterable|Value|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members)
3636
{
3737
$this->members = array_map(self::filterMember(...), array_values([...$members]));
3838
}
@@ -54,7 +54,7 @@ private static function filterMember(mixed $member): object
5454
/**
5555
* @param SfMember|SfMemberInput ...$members
5656
*/
57-
public static function from(iterable|StructuredField|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members): self
57+
public static function from(iterable|StructuredField|Value|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members): self
5858
{
5959
return new self(...$members);
6060
}
@@ -182,7 +182,7 @@ public function offsetSet(mixed $offset, mixed $value): void
182182
/**
183183
* Inserts members at the beginning of the list.
184184
*/
185-
public function unshift(StructuredField|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members): static
185+
public function unshift(StructuredField|Value|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members): static
186186
{
187187
if ([] === $members) {
188188
return $this;
@@ -202,7 +202,7 @@ private function newInstance(iterable $members): self
202202
/**
203203
* Inserts members at the end of the list.
204204
*/
205-
public function push(StructuredField|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members): static
205+
public function push(StructuredField|Value|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members): static
206206
{
207207
if ([] === $members) {
208208
return $this;
@@ -216,7 +216,7 @@ public function push(StructuredField|Token|ByteSequence|DateTimeInterface|String
216216
*
217217
* @throws InvalidOffset If the index does not exist
218218
*/
219-
public function insert(int $key, StructuredField|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members): static
219+
public function insert(int $key, StructuredField|Value|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool ...$members): static
220220
{
221221
$offset = $this->filterIndex($key);
222222

@@ -233,7 +233,7 @@ public function insert(int $key, StructuredField|Token|ByteSequence|DateTimeInte
233233
};
234234
}
235235

236-
public function replace(int $key, StructuredField|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool $member): static
236+
public function replace(int $key, StructuredField|Value|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool $member): static
237237
{
238238
if (null === ($offset = $this->filterIndex($key))) {
239239
throw InvalidOffset::dueToIndexNotFound($key);

src/Parameters.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,7 @@ public function remove(MapKey|string|int ...$keys): static
266266
/**
267267
* @param SfItemInput $member
268268
*/
269-
public function append(MapKey|string $key, StructuredField|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool $member): static
269+
public function append(MapKey|string $key, StructuredField|Value|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool $member): static
270270
{
271271
$key = $key instanceof MapKey ? $key->value : $key;
272272
$members = $this->members;
@@ -283,7 +283,7 @@ public function append(MapKey|string $key, StructuredField|Token|ByteSequence|Da
283283
/**
284284
* @param SfItemInput $member
285285
*/
286-
public function prepend(MapKey|string $key, StructuredField|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool $member): static
286+
public function prepend(MapKey|string $key, StructuredField|Value|Token|ByteSequence|DateTimeInterface|Stringable|string|int|float|bool $member): static
287287
{
288288
$key = $key instanceof MapKey ? $key->value : $key;
289289
$members = $this->members;

0 commit comments

Comments
 (0)