Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Assoc uses Identity formatter if any value is nil#450

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Open
bradleybuda wants to merge1 commit intoruby-syntax-tree:main
base:main
Choose a base branch
Loading
frombradleybuda:bare-assoc-hash-with-ruby-3.1-keyword

Conversation

bradleybuda
Copy link

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 ofHashKeyFormatter.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).

Fixes#446

The existing assoc formatter has logic to identify the case where avalue is nil (in a Ruby-3.1 style hash) and preserve the existingformatting. For example: `{ first:, "second" => "value" }` is correctlyleft as-is.However, this logic only worked if the first assoc in thecontainer had the nil value - if a later assoc had a nil value, theIdentity formatter might not be chosen which could cause the formatterto generate invalid Ruby code.As an example, this code: `{ "first" => "value", second: }` would beturned 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 otherformatting selections. The fixtures have been updated to cover bothcases (nil value in first position, nil value in last position).Fixesruby-syntax-tree#446
@bradleybudabradleybudaforce-pushed thebare-assoc-hash-with-ruby-3.1-keyword branch from6e6feaf toc5b61fbCompareApril 5, 2024 20:37
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers
No reviews
Assignees
No one assigned
Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

stree write turns correct code into incorrect code for method call with mix of keyword types
1 participant
@bradleybuda

[8]ページ先頭

©2009-2025 Movatter.jp