[HttpClient] Fix type error with http_version 1.1 #51876
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix a type error by removing a nested setProtocolVersions() call in AmpHttpClient::request()
Description
In commit 46a66956 the lines 114-118 of AmpHttpClient.php were changed to use the
match()expression instead ofswitch-case:If the provided
$options['http_version']is1.1, the code will call$request->setProtocolVersions()inside thematch(), unlike with 1.0 and the default case. Thematchwill use the return value ofsetProtocolVersions(), but since it's a void function, the return value isnull.This then results in a
TypeErrorassetProtocolVersions()(the "outer" one) expects an array.How to reproduce
Solution
Change line 116 to match line 115 & 117:
$request->setProtocolVersions(match ((float) $options['http_version']) { 1.0 => ['1.0'], - 1.1 => $request->setProtocolVersions(['1.1', '1.0']), + 1.1 => ['1.1', '1.0'], default => ['2', '1.1', '1.0'], });