You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When calling a method with multiple keyword values, where one of the keywords is "static" and another is "dynamic" (for lack of better terms), stree write emits bad code. Possibly related to #419 but I'm not 100% certain. A minimal example:
The existing assoc formatter has logic to identify the case where a
value is nil (in a Ruby-3.1 style hash) and preserve the existing
formatting. For example: `{ first:, "second" => "value" }` is correctly
left as-is.
However, this logic only worked if the first assoc in the
container had the nil value - if a later assoc had a nil value, the
Identity formatter might not be chosen which could cause the formatter
to generate invalid Ruby code.
As an example, this code: `{ "first" => "value", second: }` would be
turned into `{ "first" => "value", :second => }`.
This patch pulls the nil value check up to the top of
`HashKeyFormatter.for` to ensure it takes precendence over any other
formatting selections. The fixtures have been updated to cover both
cases (nil value in first position, nil value in last position).
Fixesruby-syntax-tree#446
The existing assoc formatter has logic to identify the case where a
value is nil (in a Ruby-3.1 style hash) and preserve the existing
formatting. For example: `{ first:, "second" => "value" }` is correctly
left as-is.
However, this logic only worked if the first assoc in the
container had the nil value - if a later assoc had a nil value, the
Identity formatter might not be chosen which could cause the formatter
to generate invalid Ruby code.
As an example, this code: `{ "first" => "value", second: }` would be
turned into `{ "first" => "value", :second => }`.
This patch pulls the nil value check up to the top of
`HashKeyFormatter.for` to ensure it takes precendence over any other
formatting selections. The fixtures have been updated to cover both
cases (nil value in first position, nil value in last position).
Fixesruby-syntax-tree#446
When calling a method with multiple keyword values, where one of the keywords is "static" and another is "dynamic" (for lack of better terms),
stree write
emits bad code. Possibly related to #419 but I'm not 100% certain. A minimal example:Input
Formatted Output
This is with the latest released version (6.2.0). Here's a full transcript of the commands I ran, just in case I missed something:
The text was updated successfully, but these errors were encountered: