From: duerst@... Date: 2018-10-12T08:37:45+00:00 Subject: [ruby-core:89381] [Ruby trunk Feature#15113][Closed] Show warnings on unused blocks with Enumerable#all? any? one? none? Issue #15113 has been updated by duerst (Martin D��rst). Status changed from Open to Closed Closed at proposer's request. ---------------------------------------- Feature #15113: Show warnings on unused blocks with Enumerable#all? any? one? none? https://bugs.ruby-lang.org/issues/15113#change-74421 * Author: fursich (Onishi Koji) * Status: Closed * Priority: Normal * Assignee: * Target version: ---------------------------------------- Let Array#any? (and related enumerable methods alike) to express warnings in case blocks are left unused. **Background** Certain methods in Array silently ignore the given blocks without any warnings, which sometimes causes 'invisible' bugs that are a bit hard to detect. ~~~ ruby >> [1,2,3].any?(2) {|it| it > 10} => true ~~~ On the other hand, Array#index warns you (kindly enough!) when your blocks are left unused. ~~~ ruby >> [1,2,3].index(2) {|it| it > 10} (irb):3: warning: given block not used => 1 ~~~ **Proposal** This PR is to let Enumerable#all?, #any?, #one, #none? (including similar methods with Array and Hash) to show warning messages so as that it behaves in consistent manner with what we see with Array#index. **Implementation** https://github.com/ruby/ruby/pull/1953 Adding one conditional branch per one method call, which would cost very low in terms of computational cost. (benchmark-driver suggested somewhere around 1.00x-1.01x slower with Enumurator#any?) Hopefully it would help reduce some of the unnecessary source of pain, and help us code happily;) -- https://bugs.ruby-lang.org/ Unsubscribe: