From: shevegen@... Date: 2018-09-13T15:49:08+00:00 Subject: [ruby-core:88996] [Ruby trunk Feature#15113] Show warnings on unused blocks with Enumerable#all? any? one? none? Issue #15113 has been updated by shevegen (Robert A. Heiler). I think nobu committed it already (if it is the same one) https://git.ruby-lang.org/ruby.git/commit/?id=384fda18b885872aacf225ac6ad7805fb101e497 I guess it is a useful change; reminds me a bit of the did-you-mean gem, in spirit at least (both sort of look at possible errors made by humans; and I guess in most or all cases, where there is no block for these methods, the human user may indeed just have forgotten it). ---------------------------------------- Feature #15113: Show warnings on unused blocks with Enumerable#all? any? one? none? https://bugs.ruby-lang.org/issues/15113#change-74024 * Author: fursich (Onishi Koji) * Status: Open * 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: