diff --git a/lib/rdoc/erb_partial.rb b/lib/rdoc/erb_partial.rb index 8dc2c46013..d6e3f41b7e 100644 --- a/lib/rdoc/erb_partial.rb +++ b/lib/rdoc/erb_partial.rb @@ -12,7 +12,7 @@ class RDoc::ERBPartial < ERB def set_eoutvar compiler, eoutvar = '_erbout' super - compiler.pre_cmd = ["#{eoutvar} ||= ''"] + compiler.pre_cmd = ["#{eoutvar} ||= +''"] end end diff --git a/test/test_rdoc_generator_darkfish.rb b/test/test_rdoc_generator_darkfish.rb index edabe4fad4..1b7bca0890 100644 --- a/test/test_rdoc_generator_darkfish.rb +++ b/test/test_rdoc_generator_darkfish.rb @@ -202,6 +202,13 @@ def test_template_for_partial assert_same template, @g.send(:template_for, partial) end + def test_erb_partial_with_frozen_string_literal + erb = RDoc::ERBPartial.new('<%= "ruby/rdoc#683" %>') + # It's the same behavior of RUBYOPT=--enable=frozen-string-literal. + result = eval("# frozen_string_literal: true\n#{erb.src}") + assert_kind_of String, result + end + def test_generated_method_with_html_tag_yield top_level = @store.add_file 'file.rb' top_level.add_class @klass.class, @klass.name