From 805c20a8e59315f15dbb22ac1518de6a27385039 Mon Sep 17 00:00:00 2001 From: akr Date: Mon, 5 Oct 2015 13:27:48 +0000 Subject: [PATCH] * lib/pp.rb: Use frozen_string_literal: true. * lib/prettyprint.rb: Ditto. * lib/resolv.rb: Ditto. * lib/tmpdir.rb: Ditto. * test/test_pp.rb: Ditto. * test/test_prettyprint.rb: Ditto. * tool/transcode-tblgen.rb: Ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52042 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 16 +++++++++++++ lib/pp.rb | 6 +++-- lib/prettyprint.rb | 8 ++++--- lib/resolv.rb | 4 +++- lib/tmpdir.rb | 3 ++- test/test_pp.rb | 50 +++++++++++++++++++++------------------- test/test_prettyprint.rb | 14 ++++++----- tool/transcode-tblgen.rb | 16 +++++++------ 8 files changed, 73 insertions(+), 44 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1985c52ea2..89bc7e2480 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +Mon Oct 5 22:25:49 2015 Tanaka Akira + + * lib/pp.rb: Use frozen_string_literal: true. + + * lib/prettyprint.rb: Ditto. + + * lib/resolv.rb: Ditto. + + * lib/tmpdir.rb: Ditto. + + * test/test_pp.rb: Ditto. + + * test/test_prettyprint.rb: Ditto. + + * tool/transcode-tblgen.rb: Ditto. + Mon Oct 5 20:39:32 2015 Benoit Daloze * test/ruby/test_thread.rb: fix potential race condition. diff --git a/lib/pp.rb b/lib/pp.rb index 3c73463c9c..ef787bb764 100644 --- a/lib/pp.rb +++ b/lib/pp.rb @@ -1,3 +1,5 @@ +# -*- frozen_string_literal: true -*- + require 'prettyprint' module Kernel @@ -9,7 +11,7 @@ module Kernel # # See the PP module for more information. def pretty_inspect - PP.pp(self, '') + PP.pp(self, ''.dup) end private @@ -347,7 +349,7 @@ class PP < PrettyPrint if /\(PP::ObjectMixin\)#/ =~ Object.instance_method(:method).bind(self).call(:pretty_print).inspect raise "pretty_print is not overridden for #{self.class}" end - PP.singleline_pp(self, '') + PP.singleline_pp(self, ''.dup) end end end diff --git a/lib/prettyprint.rb b/lib/prettyprint.rb index 7e989374b7..dc63e49321 100644 --- a/lib/prettyprint.rb +++ b/lib/prettyprint.rb @@ -1,3 +1,5 @@ +# -*- frozen_string_literal: true -*- +# # This class implements a pretty printing algorithm. It finds line breaks and # nice indentations for grouped structure. # @@ -40,7 +42,7 @@ class PrettyPrint # output # end # - def PrettyPrint.format(output='', maxwidth=79, newline="\n", genspace=lambda {|n| ' ' * n}) + def PrettyPrint.format(output=''.dup, maxwidth=79, newline="\n", genspace=lambda {|n| ' ' * n}) q = PrettyPrint.new(output, maxwidth, newline, &genspace) yield q q.flush @@ -54,7 +56,7 @@ class PrettyPrint # The invocation of +breakable+ in the block doesn't break a line and is # treated as just an invocation of +text+. # - def PrettyPrint.singleline_format(output='', maxwidth=nil, newline=nil, genspace=nil) + def PrettyPrint.singleline_format(output=''.dup, maxwidth=nil, newline=nil, genspace=nil) q = SingleLine.new(output) yield q output @@ -77,7 +79,7 @@ class PrettyPrint # The block is used to generate spaces. {|width| ' ' * width} is used if it # is not given. # - def initialize(output='', maxwidth=79, newline="\n", &genspace) + def initialize(output=''.dup, maxwidth=79, newline="\n", &genspace) @output = output @maxwidth = maxwidth @newline = newline diff --git a/lib/resolv.rb b/lib/resolv.rb index ce36acf01f..fbfd822799 100644 --- a/lib/resolv.rb +++ b/lib/resolv.rb @@ -1,3 +1,5 @@ +# -*- frozen_string_literal: true -*- + require 'socket' require 'timeout' require 'thread' @@ -1426,7 +1428,7 @@ class Resolv class MessageEncoder # :nodoc: def initialize - @data = '' + @data = ''.dup @names = {} yield self end diff --git a/lib/tmpdir.rb b/lib/tmpdir.rb index 494725cb33..eafde411a0 100644 --- a/lib/tmpdir.rb +++ b/lib/tmpdir.rb @@ -1,3 +1,4 @@ +# -*- frozen_string_literal: true -*- # # tmpdir - retrieve temporary directory path # @@ -111,7 +112,7 @@ class Dir suffix &&= (String.try_convert(suffix) or raise ArgumentError, "unexpected suffix: #{suffix.inspect}") t = Time.now.strftime("%Y%m%d") - path = "#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}" + path = "#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}".dup path << "-#{n}" if n path << suffix if suffix path diff --git a/test/test_pp.rb b/test/test_pp.rb index 813daf0446..69594c0aef 100644 --- a/test/test_pp.rb +++ b/test/test_pp.rb @@ -1,3 +1,5 @@ +# -*- frozen_string_literal: true -*- + require 'pp' require 'delegate' require 'test/unit' @@ -6,24 +8,24 @@ module PPTestModule class PPTest < Test::Unit::TestCase def test_list0123_12 - assert_equal("[0, 1, 2, 3]\n", PP.pp([0,1,2,3], '', 12)) + assert_equal("[0, 1, 2, 3]\n", PP.pp([0,1,2,3], ''.dup, 12)) end def test_list0123_11 - assert_equal("[0,\n 1,\n 2,\n 3]\n", PP.pp([0,1,2,3], '', 11)) + assert_equal("[0,\n 1,\n 2,\n 3]\n", PP.pp([0,1,2,3], ''.dup, 11)) end OverriddenStruct = Struct.new("OverriddenStruct", :members, :class) def test_struct_override_members # [ruby-core:7865] a = OverriddenStruct.new(1,2) - assert_equal("#\n", PP.pp(a, '')) + assert_equal("#\n", PP.pp(a, ''.dup)) end def test_redefined_method - o = "" + o = "".dup def o.method end - assert_equal(%(""\n), PP.pp(o, "")) + assert_equal(%(""\n), PP.pp(o, "".dup)) end end @@ -76,17 +78,17 @@ end class PPInspectTest < Test::Unit::TestCase def test_hasinspect a = HasInspect.new(1) - assert_equal("\n", PP.pp(a, '')) + assert_equal("\n", PP.pp(a, ''.dup)) end def test_hasprettyprint a = HasPrettyPrint.new(1) - assert_equal("\n", PP.pp(a, '')) + assert_equal("\n", PP.pp(a, ''.dup)) end def test_hasboth a = HasBoth.new(1) - assert_equal("\n", PP.pp(a, '')) + assert_equal("\n", PP.pp(a, ''.dup)) end def test_pretty_print_inspect @@ -98,21 +100,21 @@ class PPInspectTest < Test::Unit::TestCase def test_proc a = proc {1} - assert_equal("#{a.inspect}\n", PP.pp(a, '')) + assert_equal("#{a.inspect}\n", PP.pp(a, ''.dup)) end def test_to_s_with_iv a = Object.new def a.to_s() "aaa" end a.instance_eval { @a = nil } - result = PP.pp(a, '') + result = PP.pp(a, ''.dup) assert_equal("#{a.inspect}\n", result) end def test_to_s_without_iv a = Object.new def a.to_s() "aaa" end - result = PP.pp(a, '') + result = PP.pp(a, ''.dup) assert_equal("#{a.inspect}\n", result) end end @@ -121,48 +123,48 @@ class PPCycleTest < Test::Unit::TestCase def test_array a = [] a << a - assert_equal("[[...]]\n", PP.pp(a, '')) - assert_equal("#{a.inspect}\n", PP.pp(a, '')) + assert_equal("[[...]]\n", PP.pp(a, ''.dup)) + assert_equal("#{a.inspect}\n", PP.pp(a, ''.dup)) end def test_hash a = {} a[0] = a - assert_equal("{0=>{...}}\n", PP.pp(a, '')) - assert_equal("#{a.inspect}\n", PP.pp(a, '')) + assert_equal("{0=>{...}}\n", PP.pp(a, ''.dup)) + assert_equal("#{a.inspect}\n", PP.pp(a, ''.dup)) end S = Struct.new("S", :a, :b) def test_struct a = S.new(1,2) a.b = a - assert_equal("#>\n", PP.pp(a, '')) - assert_equal("#{a.inspect}\n", PP.pp(a, '')) + assert_equal("#>\n", PP.pp(a, ''.dup)) + assert_equal("#{a.inspect}\n", PP.pp(a, ''.dup)) end def test_object a = Object.new a.instance_eval {@a = a} - assert_equal(a.inspect + "\n", PP.pp(a, '')) + assert_equal(a.inspect + "\n", PP.pp(a, ''.dup)) end def test_anonymous a = Class.new.new - assert_equal(a.inspect + "\n", PP.pp(a, '')) + assert_equal(a.inspect + "\n", PP.pp(a, ''.dup)) end def test_withinspect a = [] a << HasInspect.new(a) - assert_equal("[]\n", PP.pp(a, '')) - assert_equal("#{a.inspect}\n", PP.pp(a, '')) + assert_equal("[]\n", PP.pp(a, ''.dup)) + assert_equal("#{a.inspect}\n", PP.pp(a, ''.dup)) end def test_share_nil begin PP.sharing_detection = true a = [nil, nil] - assert_equal("[nil, nil]\n", PP.pp(a, '')) + assert_equal("[nil, nil]\n", PP.pp(a, ''.dup)) ensure PP.sharing_detection = false end @@ -171,8 +173,8 @@ end class PPSingleLineTest < Test::Unit::TestCase def test_hash - assert_equal("{1=>1}", PP.singleline_pp({ 1 => 1}, '')) # [ruby-core:02699] - assert_equal("[1#{', 1'*99}]", PP.singleline_pp([1]*100, '')) + assert_equal("{1=>1}", PP.singleline_pp({ 1 => 1}, ''.dup)) # [ruby-core:02699] + assert_equal("[1#{', 1'*99}]", PP.singleline_pp([1]*100, ''.dup)) end end diff --git a/test/test_prettyprint.rb b/test/test_prettyprint.rb index 1d6b75a569..0d087b4a78 100644 --- a/test/test_prettyprint.rb +++ b/test/test_prettyprint.rb @@ -1,3 +1,5 @@ +# -*- frozen_string_literal: true -*- + require 'prettyprint' require 'test/unit' @@ -14,7 +16,7 @@ class WadlerExample < Test::Unit::TestCase # :nodoc: end def hello(width) - PrettyPrint.format('', width) {|hello| + PrettyPrint.format(''.dup, width) {|hello| hello.group { hello.group { hello.group { @@ -81,7 +83,7 @@ End end def tree(width) - PrettyPrint.format('', width) {|q| @tree.show(q)} + PrettyPrint.format(''.dup, width) {|q| @tree.show(q)} end def test_tree_00_19 @@ -126,7 +128,7 @@ End end def tree_alt(width) - PrettyPrint.format('', width) {|q| @tree.altshow(q)} + PrettyPrint.format(''.dup, width) {|q| @tree.altshow(q)} end def test_tree_alt_00_18 @@ -242,7 +244,7 @@ end class StrictPrettyExample < Test::Unit::TestCase # :nodoc: def prog(width) - PrettyPrint.format('', width) {|q| + PrettyPrint.format(''.dup, width) {|q| q.group { q.group {q.nest(2) { q.text "if"; q.breakable; @@ -387,7 +389,7 @@ end class TailGroup < Test::Unit::TestCase # :nodoc: def test_1 - out = PrettyPrint.format('', 10) {|q| + out = PrettyPrint.format(''.dup, 10) {|q| q.group { q.group { q.text "abc" @@ -426,7 +428,7 @@ end class Fill < Test::Unit::TestCase # :nodoc: def format(width) - PrettyPrint.format('', width) {|q| + PrettyPrint.format(''.dup, width) {|q| q.group { q.text 'abc' q.fill_breakable diff --git a/tool/transcode-tblgen.rb b/tool/transcode-tblgen.rb index 832d9a4762..569f8026d6 100644 --- a/tool/transcode-tblgen.rb +++ b/tool/transcode-tblgen.rb @@ -1,3 +1,5 @@ +# -*- frozen_string_literal: true -*- + require 'optparse' require 'erb' require 'fileutils' @@ -53,7 +55,7 @@ class ArrayCode @type = type @name = name @len = 0; - @content = '' + @content = ''.dup end def length @@ -517,7 +519,7 @@ class ActionMap infos = infos.map {|info| generate_info(info) } maxlen = infos.map {|info| info.length }.max columns = maxlen <= 16 ? 4 : 2 - code = "" + code = "".dup 0.step(infos.length-1, columns) {|i| code << " " is = infos[i,columns] @@ -817,7 +819,7 @@ def transcode_compile_tree(name, from, map, valid_encoding) end TRANSCODERS = [] -TRANSCODE_GENERATED_TRANSCODER_CODE = '' +TRANSCODE_GENERATED_TRANSCODER_CODE = ''.dup def transcode_tbl_only(from, to, map, valid_encoding=UnspecifiedValidEncoding) if VERBOSE_MODE @@ -881,7 +883,7 @@ def transcode_generated_code end def transcode_register_code - code = '' + code = ''.dup TRANSCODERS.each {|transcoder_name| code << " rb_register_transcoder(&#{transcoder_name});\n" } @@ -1006,7 +1008,7 @@ if __FILE__ == $0 this_script = File.read(__FILE__) this_script.force_encoding("ascii-8bit") if this_script.respond_to? :force_encoding - base_signature = "/* autogenerated. */\n" + base_signature = "/* autogenerated. */\n".dup base_signature << "/* #{make_signature(File.basename(__FILE__), this_script)} */\n" base_signature << "/* #{make_signature(File.basename(arg), src)} */\n" @@ -1044,7 +1046,7 @@ if __FILE__ == $0 libs2 = $".dup libs = libs2 - libs1 - lib_sigs = '' + lib_sigs = ''.dup libs.each {|lib| lib = File.basename(lib) path = File.join($srcdir, lib) @@ -1053,7 +1055,7 @@ if __FILE__ == $0 end } - result = '' + result = ''.dup result << base_signature result << lib_sigs result << "\n"