Actions
Bug #13044
closedruby unless bug with plural conditions
Bug #13044:
ruby unless bug with plural conditions
Status:
Rejected
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.3p222 (2016-11-21 revision 56859) [x86_64-linux]
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
- 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