Skip to content
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Component out of order in a deconstruction pattern #4581

Open
kevinb9n opened this issue Sep 18, 2024 · 2 comments
Open

Component out of order in a deconstruction pattern #4581

kevinb9n opened this issue Sep 18, 2024 · 2 comments

Comments

@kevinb9n
Copy link
Contributor

kevinb9n commented Sep 18, 2024

Just capturing an idea; not sure if it is high-value. In something like

case MyRecord(int foo, _, var bar)

A warning could be issued if the name of any pattern variable (here, "foo" or "bar") has a shorter edit distance to some other component of the record than the one it is matched up with.

Positional APIs can be hard to remember. This applies to instanceof as well. Currently this only applies to record patterns, but in the future there may be deconstructors for non-record classes too.

@graememorgan
Copy link
Member

I think we may already have this via ArgumentSelectionDefectChecker and its friends.

We should certainly make sure that applies to records as well! I'm suspicious that there's a separate AutoValueConstructorOrderChecker, which makes me wonder if we do need to special-case records somehow.

@graememorgan
Copy link
Member

I realised on a second view you're specifically referring to deconstruction not constructing records. I shall go clean my glasses. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants