mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/irb/completion.rb (IRB::InputCompletor::CompletionProc):
ignore non-string name modules. [ruby-core:42244][Bug #5938] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34384 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
0c5cfb68c8
commit
ef72bdf2de
3 changed files with 28 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
|||
Sat Jan 28 05:53:34 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* lib/irb/completion.rb (IRB::InputCompletor::CompletionProc):
|
||||
ignore non-string name modules. [ruby-core:42244][Bug #5938]
|
||||
|
||||
Fri Jan 27 16:31:45 2012 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||
|
||||
* gc.c (HEAP_ALIGN, HEAP_ALIGN_MASK): DRY, let compiler calculate
|
||||
|
|
|
@ -178,8 +178,12 @@ module IRB
|
|||
rescue Exception
|
||||
name = ""
|
||||
end
|
||||
next if name != "IRB::Context" and
|
||||
/^(IRB|SLex|RubyLex|RubyToken)/ =~ name
|
||||
begin
|
||||
next if name != "IRB::Context" and
|
||||
/^(IRB|SLex|RubyLex|RubyToken)/ =~ name
|
||||
rescue Exception
|
||||
next
|
||||
end
|
||||
candidates.concat m.instance_methods(false).collect{|x| x.to_s}
|
||||
}
|
||||
candidates.sort!
|
||||
|
|
17
test/irb/test_completion.rb
Normal file
17
test/irb/test_completion.rb
Normal file
|
@ -0,0 +1,17 @@
|
|||
require 'test/unit'
|
||||
require_relative '../ruby/envutil'
|
||||
|
||||
module TestIRB
|
||||
class TestCompletion < Test::Unit::TestCase
|
||||
def test_nonstring_module_name
|
||||
bug5938 = '[ruby-core:42244]'
|
||||
cmds = %W[-rirb -rirb/completion -e IRB.setup(__FILE__)
|
||||
-e IRB.conf[:MAIN_CONTEXT]=IRB::Irb.new.context
|
||||
-e module\sFoo;def\sself.name;//;end;end
|
||||
-e IRB::InputCompletor::CompletionProc.call("[1].first.")
|
||||
-- -f --]
|
||||
status = assert_in_out_err(cmds, "", //, [], bug5938)
|
||||
assert(status.success?, bug5938)
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue