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

test(rustfix): switch to a simpler case for dedup-suggestions #14765

Merged
merged 1 commit into from
Nov 1, 2024

Conversation

weihanglo
Copy link
Member

@weihanglo weihanglo commented Nov 1, 2024

What does this PR try to resolve?

This case also emits insert-only suggestions (span start == end),
and doesn't rely on any lint behavior.

See also

How should we test and review this PR?

Revert the change in 95edc06 and see it if it actually emits duplicate suggestions.

Closes #13027

This case also emits an insert-only suggestions (span start == end),
and doesn't rely on any lint behavior.

See also

* rust-lang#13728
* rust-lang#13027
@rustbot
Copy link
Collaborator

rustbot commented Nov 1, 2024

r? @ehuss

rustbot has assigned @ehuss.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added Command-fix S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 1, 2024
@epage
Copy link
Contributor

epage commented Nov 1, 2024

@bors r+

@bors
Copy link
Contributor

bors commented Nov 1, 2024

📌 Commit 8aec0a4 has been approved by epage

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Nov 1, 2024
@bors
Copy link
Contributor

bors commented Nov 1, 2024

⌛ Testing commit 8aec0a4 with merge 40d6078...

@bors
Copy link
Contributor

bors commented Nov 1, 2024

☀️ Test successful - checks-actions
Approved by: epage
Pushing 40d6078 to master...

@bors bors merged commit 40d6078 into rust-lang:master Nov 1, 2024
22 checks passed
@weihanglo weihanglo deleted the rustfix branch November 1, 2024 16:14
bors added a commit to rust-lang-ci/rust that referenced this pull request Nov 2, 2024
Update cargo

18 commits in e75214ea4936d2f2c909a71a1237042cc0e14b07..0310497822a7a673a330a5dd068b7aaa579a265e
2024-10-25 16:34:32 +0000 to 2024-11-01 19:27:56 +0000
- Add more metadata to `rustc_fingerprint` (rust-lang/cargo#14761)
- test(rustfix): switch to a simpler case for dedup-suggestions (rust-lang/cargo#14765)
- chore(deps): update rust crate security-framework to v3 (rust-lang/cargo#14766)
- chore(deps): update rust crate gix to 0.67.0 (rust-lang/cargo#14762)
- fix(util): Respect all `..`s in `normalize_path` (rust-lang/cargo#14750)
- test(doc): Resolve flaky test (rust-lang/cargo#14760)
- refactor(test): Remove dead 'expect_stdout_contains_n' check (rust-lang/cargo#14759)
- add unstable -Zroot-dir flag to configure the path from which rustc should be invoked (rust-lang/cargo#14752)
- docs(resolver): Further v3 prep (rust-lang/cargo#14753)
- fix: track version in fingerprint dep-info files (rust-lang/cargo#14751)
- test: Remove unused msrv-policy (rust-lang/cargo#14748)
- download targeted transitive deps of with artifact deps'  target platform (rust-lang/cargo#14723)
- Remove requirement for --target when invoking Cargo with -Zbuild-std (rust-lang/cargo#14317)
- docs(fingerprint): document the encoding of Cargo's depinfo (rust-lang/cargo#14745)
- Allow build scripts to report error messages through `cargo::error` (rust-lang/cargo#14743)
- fix(publish): Downgrade version-exists error to warning on dry-run (rust-lang/cargo#14742)
- fix: clean up for deprecated and removed commands (rust-lang/cargo#14739)
- Deprecate `cargo verify-project` (rust-lang/cargo#14736)
@rustbot rustbot added this to the 1.84.0 milestone Nov 2, 2024
bors added a commit that referenced this pull request Nov 2, 2024
Add transactional semantics to `rustfix`

### What does this PR try to resolve?

This PR adds transactional semantics to `rustfix::Data`, enabling `rustfix::CodeFix` to apply `Suggestion`s as atomic units and rollback partially-applied changes when they conflict with existing ones. The basic approach and goals are discussed [in a comment on issue 14699](#14699 (comment)). In that comment, I proposed a solution which extended the existing `State` enumeration, but described an alternative that simplifies the overall tracking of incoming changes; this PR implements the latter.

### How should we test and review this PR?

I've added an additional test and updated the existing ones. The tests in `parse_and_replace` already cover this case, particularly thanks to #14765 added by `@weihanglo.` It's still a good idea to experiment with `cargo clippy --fix` on repos that match the cases described in these open issues.

### Additional information

Fixes #14699
Fixes rust-lang/rust-clippy/issues/13549
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Command-fix S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

cargo fix: duplicate diagnostic detection does not handle insert-only replacements
5 participants