From a54eb9c6f9c12816f6befefd3828b78689076549 Mon Sep 17 00:00:00 2001 From: Kevin Newton Date: Fri, 8 Dec 2023 09:40:26 -0500 Subject: [PATCH] [ruby/prism] A couple of small dot enhancements https://github.com/ruby/prism/commit/5642a57f39 --- prism/templates/lib/prism/dot_visitor.rb.erb | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/prism/templates/lib/prism/dot_visitor.rb.erb b/prism/templates/lib/prism/dot_visitor.rb.erb index 5e01388c6de242..fc3dd4b2234009 100644 --- a/prism/templates/lib/prism/dot_visitor.rb.erb +++ b/prism/templates/lib/prism/dot_visitor.rb.erb @@ -122,13 +122,17 @@ module Prism digraph.edge("#{id}:<%= field.name %> -> #{node_id(<%= field.name %>)};") end <%- when Prism::NodeListField -%> - table.field("<%= field.name %>", port: true) + if node.<%= field.name %>.any? + table.field("<%= field.name %>", port: true) - waypoint = "#{id}_<%= field.name %>" - digraph.waypoint("#{waypoint};") + waypoint = "#{id}_<%= field.name %>" + digraph.waypoint("#{waypoint};") - digraph.edge("#{id}:<%= field.name %> -> #{waypoint};") - node.<%= field.name %>.each { |child| digraph.edge("#{waypoint} -> #{node_id(child)};") } + digraph.edge("#{id}:<%= field.name %> -> #{waypoint};") + node.<%= field.name %>.each { |child| digraph.edge("#{waypoint} -> #{node_id(child)};") } + else + table.field("<%= field.name %>", "[]") + end <%- when Prism::StringField, Prism::ConstantField, Prism::OptionalConstantField, Prism::UInt8Field, Prism::UInt32Field, Prism::ConstantListField -%> table.field("<%= field.name %>", node.<%= field.name %>.inspect) <%- when Prism::LocationField -%>