Project

General

Profile

Actions

Bug #13044

closed

ruby unless bug with plural conditions

Bug #13044: ruby unless bug with plural conditions

Added by imran (Imran Ashraf) almost 9 years ago. Updated almost 9 years ago.

Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
[ruby-core:78690]

Description

I am working on an app where I need to process various data-items based upon different ruby types. While setting up conditonal-checks, I discovered that "unless" fails to handle plural conditions.

Please consider the following example:

class ThingA end class ThingB end class ThingC end # obj = ThingA.new # obj = ThingB.new obj = ThingC.new # puts 'yes it is a ThingC' unless obj.is_a?(ThingA) && obj.is_a?(ThingB) # BUG # puts 'yes it is a ThingC' if !obj.is_a?(ThingA) && !obj.is_a?(ThingB) # this works ok # works ok with singular condition unless obj.is_a?(ThingA) unless obj.is_a?(ThingB) puts 'yes it is a ThingC' end end 

Thanks.

Regards,
Imran

Updated by nobu (Nobuyoshi Nakada) almost 9 years ago Actions #1 [ruby-core:78694]

  • Description updated (diff)
  • Status changed from Open to Rejected

unless a && b equals to if !(a && b).
See https://en.wikipedia.org/wiki/De_Morgan%27s_laws for more info.

Actions

Also available in: PDF Atom