From f25791884c8efa5ea6598c82ae5015f5fcfb8ebb Mon Sep 17 00:00:00 2001 From: Stan Lo Date: Sun, 2 Apr 2023 15:11:07 +0100 Subject: [PATCH] [ruby/irb] Remove dead code (https://github.com/ruby/irb/pull/554) * Remove unused ATTR_TTY and ATTR_PLAIN constants They were added in https://github.com/ruby/irb/commit/d7d26b51bf47a52e4e2339e2ad509ace74f0e4c7 But the references were removed in https://github.com/ruby/irb/commit/1c76845cca59635bb0cf386ced721e34b25d7410 Co-authored-by: Alexandre Terrasa * Remove unused MethodExtender module It was added in https://github.com/ruby/irb/commit/6cc5d718d7045952ef61d504d624f7e70ce828be but it's not used anywhere. Co-authored-by: Alexandre Terrasa * Remove unused IRB.irb_at_exit It's not used after https://github.com/ruby/irb/commit/aaf4eb4e9830ae71240ca5d2047c5e3ad20a4044 Co-authored-by: Alexandre Terrasa * Remove unused InputCompletor.ignored_modules It was added in https://github.com/ruby/irb/commit/88311ce3c84251e6f420246cd14efc96e00888be but the reference was removed in https://github.com/ruby/irb/commit/78c74d24254145a39c4d30168dbcd87dbbbc66dc * Remove unused TracerLoadError constant This constant was added in https://github.com/ruby/irb/commit/cb50fa3738121e4d829cb05b4bcb0d5fb43760c5 but never referenced. --------- https://github.com/ruby/irb/commit/7de0234325 Co-authored-by: Alexandre Terrasa --- lib/irb.rb | 10 -------- lib/irb/completion.rb | 25 ------------------ lib/irb/ext/tracer.rb | 1 - lib/irb/extend-command.rb | 54 --------------------------------------- 4 files changed, 90 deletions(-) diff --git a/lib/irb.rb b/lib/irb.rb index cef6ebc9521a94..f9f39a1defaa9e 100644 --- a/lib/irb.rb +++ b/lib/irb.rb @@ -416,11 +416,6 @@ def IRB.start(ap_path = nil) irb.run(@CONF) end - # Calls each event hook of IRB.conf[:AT_EXIT] when the current session quits. - def IRB.irb_at_exit - @CONF[:AT_EXIT].each{|hook| hook.call} - end - # Quits irb def IRB.irb_exit(irb, ret) throw :IRB_EXIT, ret @@ -897,11 +892,6 @@ def assignment_expression?(line) ensure $VERBOSE = verbose end - - ATTR_TTY = "\e[%sm" - def ATTR_TTY.[](*a) self % a.join(";"); end - ATTR_PLAIN = "" - def ATTR_PLAIN.[](*) self; end end def @CONF.inspect diff --git a/lib/irb/completion.rb b/lib/irb/completion.rb index c21ebfbdbde863..6a7e04264a56a1 100644 --- a/lib/irb/completion.rb +++ b/lib/irb/completion.rb @@ -450,30 +450,5 @@ def self.select_message(receiver, message, candidates, sep = ".") end end end - - def self.ignored_modules - # We could cache the result, but this is very fast already. - # By using this approach, we avoid Module#name calls, which are - # relatively slow when there are a lot of anonymous modules defined. - s = {} - - scanner = lambda do |m| - next if s.include?(m) # IRB::ExtendCommandBundle::EXCB recurses. - s[m] = true - m.constants(false).each do |c| - value = m.const_get(c) - scanner.call(value) if value.is_a?(Module) - end - end - - %i(IRB RubyLex).each do |sym| - next unless Object.const_defined?(sym) - scanner.call(Object.const_get(sym)) - end - - s.delete(IRB::Context) if defined?(IRB::Context) - - s - end end end diff --git a/lib/irb/ext/tracer.rb b/lib/irb/ext/tracer.rb index 2d20cd3821b1c8..5fde3409cffd7e 100644 --- a/lib/irb/ext/tracer.rb +++ b/lib/irb/ext/tracer.rb @@ -9,7 +9,6 @@ rescue LoadError $stderr.puts "Tracer extension of IRB is enabled but tracer gem doesn't found." module IRB - TracerLoadError = true class Context def use_tracer=(opt) # do nothing diff --git a/lib/irb/extend-command.rb b/lib/irb/extend-command.rb index 5020b1e5cdb1ef..e68b79daa7c654 100644 --- a/lib/irb/extend-command.rb +++ b/lib/irb/extend-command.rb @@ -371,58 +371,4 @@ def #{cmd_name}(*opts, &b) CE.install_extend_commands end - - # A convenience module for extending Ruby methods. - module MethodExtender - # Extends the given +base_method+ with a prefix call to the given - # +extend_method+. - def def_pre_proc(base_method, extend_method) - base_method = base_method.to_s - extend_method = extend_method.to_s - - alias_name = new_alias_name(base_method) - module_eval %[ - alias_method alias_name, base_method - def #{base_method}(*opts) - __send__ :#{extend_method}, *opts - __send__ :#{alias_name}, *opts - end - ] - end - - # Extends the given +base_method+ with a postfix call to the given - # +extend_method+. - def def_post_proc(base_method, extend_method) - base_method = base_method.to_s - extend_method = extend_method.to_s - - alias_name = new_alias_name(base_method) - module_eval %[ - alias_method alias_name, base_method - def #{base_method}(*opts) - __send__ :#{alias_name}, *opts - __send__ :#{extend_method}, *opts - end - ] - end - - # Returns a unique method name to use as an alias for the given +name+. - # - # Usually returns #{prefix}#{name}#{postfix}, example: - # - # new_alias_name('foo') #=> __alias_of__foo__ - # def bar; end - # new_alias_name('bar') #=> __alias_of__bar__2 - def new_alias_name(name, prefix = "__alias_of__", postfix = "__") - base_name = "#{prefix}#{name}#{postfix}" - all_methods = instance_methods(true) + private_instance_methods(true) - same_methods = all_methods.grep(/^#{Regexp.quote(base_name)}[0-9]*$/) - return base_name if same_methods.empty? - no = same_methods.size - while !same_methods.include?(alias_name = base_name + no) - no += 1 - end - alias_name - end - end end