From 7b51b3c75b503de744b5988619915033a3a9b7ff Mon Sep 17 00:00:00 2001 From: tompng Date: Wed, 9 Oct 2024 13:31:48 +0900 Subject: [PATCH] [ruby/pp] Fix pretty printing range begin/end with false or nil https://github.com/ruby/pp/commit/6d9c0f255a --- lib/pp.rb | 5 +++-- test/test_pp.rb | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/pp.rb b/lib/pp.rb index 0d16be55d8..352c26f636 100644 --- a/lib/pp.rb +++ b/lib/pp.rb @@ -488,11 +488,12 @@ end if defined?(Data.define) class Range # :nodoc: def pretty_print(q) # :nodoc: - q.pp self.begin if self.begin + both_nil = self.begin == nil && self.end == nil + q.pp self.begin if self.begin != nil || both_nil q.breakable '' q.text(self.exclude_end? ? '...' : '..') q.breakable '' - q.pp self.end if self.end + q.pp self.end if self.end != nil || both_nil end end diff --git a/test/test_pp.rb b/test/test_pp.rb index 16f6fa7485..2646846d8b 100644 --- a/test/test_pp.rb +++ b/test/test_pp.rb @@ -34,6 +34,10 @@ class PPTest < Test::Unit::TestCase assert_equal("0...1\n", PP.pp(0...1, "".dup)) assert_equal("0...\n", PP.pp(0..., "".dup)) assert_equal("...1\n", PP.pp(...1, "".dup)) + assert_equal("..false\n", PP.pp(..false, "".dup)) + assert_equal("false..\n", PP.pp(false.., "".dup)) + assert_equal("false..false\n", PP.pp(false..false, "".dup)) + assert_equal("nil..nil\n", PP.pp(nil..nil, "".dup)) end end