From: matz@... Date: 2016-05-13T10:59:59+00:00 Subject: [ruby-core:75492] [Ruby trunk Bug#12376][Closed] No error for elseif condition Issue #12376 has been updated by Yukihiro Matsumoto. Status changed from Open to Closed it's parsed like ``` ruby a = 1 if a == 2 puts 2 elseif(a==1) puts 1 else puts 0 end ``` and the method `elseif` is not called in the false condition. But you can find this kind of bugs using rubocop or other tools Matz. ---------------------------------------- Bug #12376: No error for elseif condition https://bugs.ruby-lang.org/issues/12376#change-58611 * Author: Daniel Ferreira * Status: Closed * Priority: Normal * Assignee: * ruby -v: 2.3.0 * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- Something I have been for a long time wondering about. I don't know if this is a parsing problem or not but for me it seems like it is. Replication: ``` ruby $ irb > RUBY_VERSION => '2.3.0' > a = 1 > if a == 2 > puts 2 > elsif a == 3 > puts 3 > elseif a == 1 > puts 1 > else > puts 0 > end 0 => nil ``` Shouldn't we have a parse error triggered here? We can replace *elseif* for any other instruction like *foo* for instance. I believe this behaviour is around for a long time. -- https://bugs.ruby-lang.org/ Unsubscribe: