diff --git a/lib/pp.rb b/lib/pp.rb index 332062164d..d86bfb9119 100644 --- a/lib/pp.rb +++ b/lib/pp.rb @@ -276,15 +276,20 @@ class PP < PrettyPrint def seplist(list, sep=nil, iter_method=:each) # :yield: element sep ||= lambda { comma_breakable } first = true + kwsplat = EMPTY_HASH list.__send__(iter_method) {|*v| if first first = false else sep.call end - RUBY_VERSION >= "3.0" ? yield(*v, **{}) : yield(*v) + kwsplat ? yield(*v, **kwsplat) : yield(*v) } end + EMPTY_HASH = if RUBY_VERSION >= "3.0" + {}.freeze + end + private_constant :EMPTY_HASH # A present standard failsafe for pretty printing any given Object def pp_object(obj)