From: "nobu (Nobuyoshi Nakada)" Date: 2014-01-07T12:59:48+09:00 Subject: [ruby-core:59614] [ruby-trunk - Bug #9308] def's return value causes errors Issue #9308 has been updated by nobu (Nobuyoshi Nakada). Priority changed from High to Normal Backport changed from 1.9.3: UNKNOWN, 2.0.0: UNKNOWN, 2.1: UNKNOWN to 1.9.3: DONTNEED, 2.0.0: REQUIRED, 2.1: REQUIRED I set backport to 2.0 to REQUIRED, because this is an old issue but noone has never been hit. For source-level compatibility, it's better that 2.0 also accepts this syntax. # 1.9? It has died almost. ---------------------------------------- Bug #9308: def's return value causes errors https://bugs.ruby-lang.org/issues/9308#change-44144 Author: phortx (Benjamin Kammerl) Status: Closed Priority: Normal Assignee: Category: core Target version: next minor ruby -v: ruby 2.1.0dev (2013-11-23 trunk 43807) [x86_64-linux] Backport: 1.9.3: DONTNEED, 2.0.0: REQUIRED, 2.1: REQUIRED It seems 2.1 hase some trouble with the "do" keyword in combination with the private/public/protected keywords and the def's return value: Works: https://gist.github.com/phortx/8146341 Works Not: https://gist.github.com/phortx/8146345 $ ruby --version ruby 2.1.0dev (2013-11-23 trunk 43807) [x86_64-linux] $ ruby works.rb $ ruby works_not.rb test.rb:5: syntax error, unexpected keyword_do_block, expecting keyword_end test.rb:12: syntax error, unexpected keyword_end, expecting end-of-input -- http://bugs.ruby-lang.org/