From: "turboladen (Steve Loveless)" Date: 2012-04-17T05:33:53+09:00 Subject: [ruby-core:44396] [ruby-trunk - Bug #6306][Open] Ripper lexes :on_kw when it should find :on_ident Issue #6306 has been reported by turboladen (Steve Loveless). ---------------------------------------- Bug #6306: Ripper lexes :on_kw when it should find :on_ident https://bugs.ruby-lang.org/issues/6306 Author: turboladen (Steve Loveless) Status: Open Priority: Normal Assignee: Category: Target version: ruby -v: ruby 1.9.3p125 (2012-02-16 revision 34643) [x86_64-darwin11.3.0] =begin 1.9.3-p125 :001 > require 'ripper' => true 1.9.3-p125 :002 > Ripper.lex %Q{:def} => [[[1, 0], :on_symbeg, ":"], [[1, 1], :on_kw, "def"]] I'd expect (({[[1, 1], :on_kw, "def"]})) to be (({[[1, 1], :on_ident, "def]})). Sure, "def" is a keyword, but since it's prefaced by a ':', it's not necessarily being used in that context. The same behavior pertains to all other keywords that are used as Symbols. =end -- http://bugs.ruby-lang.org/