You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
bug #17818 [Console] InvalidArgumentException is thrown under wrong condition (robinkanters)
This PR was submitted for the master branch but it was merged into the 2.7 branch instead (closes#17818).
Discussion
----------
[Console] InvalidArgumentException is thrown under wrong condition
| Q | A
| ------------- | ---
| Bug fix? | yes
| New feature? | no
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | N/A
| License | MIT
| Doc PR | no
When an object is passed to `setAutocompleterValues` that implements `\Countable` and `\Traversable`, an `InvalidArgumentException` is thrown, even though its message says that the argument should implement both of those interfaces.
Instead, the exception should be thrown if the parameter fails to implement either `\Countable` or `\Traversable`, like the exception message says.
_Disclaimer: I've been looking at this line for 10min, and I've become convinced it should be changed according to my PR, but I could be wrong._
Commits
-------
8eea65e The exception should be thrown if an object doesn't implement Traversable AND doesn't implement Countable, not when it doesn't implement Traversable but DOES implement Countable
Copy file name to clipboardExpand all lines: src/Symfony/Component/Console/Question/Question.php
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -140,7 +140,7 @@ public function setAutocompleterValues($values)
140
140
}
141
141
142
142
if (null !== $values && !is_array($values)) {
143
-
if (!$valuesinstanceof \Traversable || $valuesinstanceof \Countable) {
143
+
if (!$valuesinstanceof \Traversable || !$valuesinstanceof \Countable) {
144
144
thrownew \InvalidArgumentException('Autocompleter values can be either an array, `null` or an object implementing both `Countable` and `Traversable` interfaces.');
0 commit comments