diff --git a/lib/unparser/emitter/pair.rb b/lib/unparser/emitter/pair.rb index 967361b..85f690f 100644 --- a/lib/unparser/emitter/pair.rb +++ b/lib/unparser/emitter/pair.rb @@ -17,7 +17,7 @@ class Pair < self def dispatch if colon? emit_colon - unless implicit_value? + unless implicit_value_lvar? || implicit_value_send? write(' ') visit(value) end @@ -36,8 +36,16 @@ def emit_colon write(key.children.first.to_s, ':') end - def implicit_value? - n_lvar?(value) && value.children.first.equal?(key.children.first) + def key_value + key.children.first + end + + def implicit_value_lvar? + n_lvar?(value) && value.children.first.equal?(key_value) + end + + def implicit_value_send? + n_send?(value) && value.children.fetch(1).equal?(key_value) end end end diff --git a/test/corpus/literal/send.rb b/test/corpus/literal/send.rb index bba6342..20bac0c 100644 --- a/test/corpus/literal/send.rb +++ b/test/corpus/literal/send.rb @@ -84,3 +84,4 @@ def foo a&.+(b) a = nil foo(bar: a) +foo(return:)