ActiveRecord select
block returns BasicObject
#2147
Merged
+5
−5
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.
Motivation
This change matches the block return value to that of the sig on
Array#select
.In practice, updating our large Rails app surfaced many violations of this sig that would cause (in my opinion) undesirable code changes in order to satisfy the
T::Boolean
return type. It does seem quite historically idiomatic for Ruby code to rely on the implicit truthiness/falsiness check, rather than coerce it explicitly.Implementation
Continuing the original implementation, this is just a change to the return type of the block sig.
Tests
Existing tests are updated to reflect this change and seem to have sufficient coverage.