@@ -75,23 +75,12 @@ public static function fromPairs(MemberOrderedMap|iterable $pairs): self
75
75
return $ instance ;
76
76
}
77
77
78
- /**
79
- * @throws SyntaxError If the bare item contains parameters
80
- */
81
- private static function filterMember (Item $ item ): Item
82
- {
83
- if ($ item ->parameters ()->hasMembers ()) {
84
- throw new InvalidArgument ('Parameters instances can only contain bare items. ' );
85
- }
86
-
87
- return $ item ;
88
- }
89
-
90
- private static function formatMember (Item |Token |ByteSequence |DateTimeInterface |Stringable |string |int |float |bool $ member ): Item
78
+ private static function filterMember (Item |Token |ByteSequence |DateTimeInterface |Stringable |string |int |float |bool $ member ): Item
91
79
{
92
80
return match (true ) {
93
- $ member instanceof Item => self ::filterMember ($ member ),
94
- default => Item::from ($ member ),
81
+ $ member instanceof Item && $ member ->parameters ()->hasNoMembers () => $ member ,
82
+ !$ member instanceof Item => Item::from ($ member ),
83
+ default => throw new InvalidArgument ('Parameters instances can only contain bare items. ' ),
95
84
};
96
85
}
97
86
@@ -187,7 +176,7 @@ public function get(string|int $offset): Item
187
176
throw InvalidOffset::dueToKeyNotFound ($ offset );
188
177
}
189
178
190
- return self :: filterMember ( $ this ->members [$ offset ]) ;
179
+ return $ this ->members [$ offset ];
191
180
}
192
181
193
182
/**
@@ -232,7 +221,7 @@ public function pair(int $index): array
232
221
$ i = 0 ;
233
222
foreach ($ this ->members as $ key => $ member ) {
234
223
if ($ i === $ offset ) {
235
- return [$ key , self :: filterMember ( $ member) ];
224
+ return [$ key , $ member ];
236
225
}
237
226
++$ i ;
238
227
}
@@ -247,7 +236,7 @@ public function pair(int $index): array
247
236
*/
248
237
public function set (string $ key , StructuredField |Token |ByteSequence |DateTimeInterface |Stringable |string |int |float |bool $ member ): self
249
238
{
250
- $ this ->members [MapKey::fromString ($ key )->value ] = self ::formatMember ($ member );
239
+ $ this ->members [MapKey::fromString ($ key )->value ] = self ::filterMember ($ member );
251
240
252
241
return $ this ;
253
242
}
@@ -288,7 +277,7 @@ public function prepend(string $key, StructuredField|Token|ByteSequence|DateTime
288
277
{
289
278
unset($ this ->members [$ key ]);
290
279
291
- $ this ->members = [...[MapKey::fromString ($ key )->value => self ::formatMember ($ member )], ...$ this ->members ];
280
+ $ this ->members = [...[MapKey::fromString ($ key )->value => self ::filterMember ($ member )], ...$ this ->members ];
292
281
293
282
return $ this ;
294
283
}
0 commit comments