From 72242e69aa7ad1e8ec9c5d7533c3bfd22a16d239 Mon Sep 17 00:00:00 2001 From: toshimaru Date: Thu, 16 Nov 2023 09:18:08 +0900 Subject: [PATCH] [ruby/rdoc] fix: Fix NoMethodError for `tokens_to_s` method Calling `tokens_to_s` gets an error if `token_stream` is nil: ``` undefined method `compact' for nil:NilClass (NoMethodError) ``` So, fall back to an empty array if `@token_stream` is nil. https://github.com/ruby/rdoc/commit/452e4a2600 --- lib/rdoc/token_stream.rb | 2 +- test/rdoc/test_rdoc_token_stream.rb | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/rdoc/token_stream.rb b/lib/rdoc/token_stream.rb index 8fc6eadd85..1ff4b0d09e 100644 --- a/lib/rdoc/token_stream.rb +++ b/lib/rdoc/token_stream.rb @@ -105,7 +105,7 @@ module RDoc::TokenStream # Current token stream def token_stream - @token_stream + @token_stream || [] end ## diff --git a/test/rdoc/test_rdoc_token_stream.rb b/test/rdoc/test_rdoc_token_stream.rb index 29c5047fb5..dafbe22323 100644 --- a/test/rdoc/test_rdoc_token_stream.rb +++ b/test/rdoc/test_rdoc_token_stream.rb @@ -53,5 +53,14 @@ class TestRDocTokenStream < RDoc::TestCase end.new assert_equal "foo 'bar'", foo.tokens_to_s + + foo = Class.new do + include RDoc::TokenStream + + def initialize + @token_stream = nil + end + end.new + assert_equal "", foo.tokens_to_s end end