diff --git a/lib/syntax_tree/node.rb b/lib/syntax_tree/node.rb index afe50e4e..e43eeae1 100644 --- a/lib/syntax_tree/node.rb +++ b/lib/syntax_tree/node.rb @@ -8677,7 +8677,11 @@ def deconstruct_keys(keys) end def format(q) - q.format(value) if value + if value == :nil + q.text("nil") + elsif value + q.format(value) + end end end diff --git a/lib/syntax_tree/parser.rb b/lib/syntax_tree/parser.rb index c99eea4b..38ea4eef 100644 --- a/lib/syntax_tree/parser.rb +++ b/lib/syntax_tree/parser.rb @@ -2991,7 +2991,7 @@ def on_var_alias(left, right) # ) -> VarField def on_var_field(value) location = - if value + if value && value != :nil value.location else # You can hit this pattern if you're assigning to a splat using diff --git a/test/fixtures/hshptn.rb b/test/fixtures/hshptn.rb index 857336d4..8220e72f 100644 --- a/test/fixtures/hshptn.rb +++ b/test/fixtures/hshptn.rb @@ -48,3 +48,7 @@ case foo in {} end +% +case foo +in **nil +end