The existing regex-based HTML parsing was just too primitive to
correctly handle HTML content. Some books have legitimate `href="…"`
text which should not be validated because it is part of the text, not
actual HTML.
Rollup of 9 pull requests
Successful merges:
- #120590 (Remove unused args from functions)
- #120750 (No need to take `ImplTraitContext` by ref)
- #120769 (make future diffs minimal)
- #120772 (Remove myself from review rotation.)
- #120775 (Make `min_exhaustive_patterns` match `exhaustive_patterns` better)
- #120778 (Deduplicate `tcx.instance_mir(instance)` calls in `try_instance_mir`)
- #120782 (Fix mir pass ICE in the presence of other errors)
- #120783 (Add release note for new ambiguous_wide_pointer_comparisons lint)
- #120801 (Avoid ICE in drop recursion check in case of invalid drop impls)
r? `@ghost`
`@rustbot` modify labels: rollup
feature: Create `UnindexedProject` notification to be sent to the client
(Note that this branch contains commits from https://github.com/rust-lang/rust-analyzer/pull/15830, which I'll rebase atop of as needed.)
Based on the discussion in https://github.com/rust-lang/rust-analyzer/issues/15837, I've added a notification and off-by-default toggle to send that notification from `handle_did_open_text_document`. I'm happy to rename/tweak this as needed.
I've been using this for a little bit, and it does seem to cause a little bit more indexing/work in rust-analyzer, but it's something that I'll profile as needed, I think.
Add release note for new ambiguous_wide_pointer_comparisons lint
I found out about this new lint in Rust because I had code allowing the Clippy lint. Clippy alerted me to the lint name change, and I went searching for the new lint's name in the release notes and was surprised there wasn't an item for it.
Fix mir pass ICE in the presence of other errors
fixes#120779
it is impossible to add a ui test for this, because it only reproduces in build-fail, but a test that also has errors in check-fail mode can't be made build-fail 🙃
I would have to add a run-make test or sth, which is overkill for such a tiny thing imo.
Make `min_exhaustive_patterns` match `exhaustive_patterns` better
Split off from https://github.com/rust-lang/rust/pull/120742.
There remained two edge cases where `min_exhaustive_patterns` wasn't behaving like `exhaustive_patterns`. This fixes them, and tests the feature in a bunch more cases. I essentially went through all uses of `exhaustive_patterns` to see which ones would be interesting to compare between the two features.
r? `@compiler-errors`
Remove myself from review rotation.
I've been unable to keep up with reviews. :(
Not sure if this helps much, considering there aren't many other libs reviewers on the rotation at the moment.
Hopefully I can add myself back again Soon™ when I can commit more time to reviewing.
No need to take `ImplTraitContext` by ref
We used to mutate `ImplTraitContext`, so it used to be `&mut` mutable ref. Then I think it used to have non-`Copy` data in it, so we took it by `&` ref. Now, none of that remains, so just copy it around.
Remove unused args from functions
`#[instrument]` suppresses the unused arguments from a function, *and* suppresses unused methods too! This PR removes things which are only used via `#[instrument]` calls, and fixes some other errors (privacy?) that I will comment inline.
It's possible that some of these arguments were being passed in for the purposes of being instrumented, but I am unconvinced by most of them.
`configure_linker` now runs consistently unless it's for mir-opt tests.
Previously `!= "check"` condition was causing dirt in the cargo cache between
runs of `x anything-but-not-check` and `x check`
Signed-off-by: onur-ozkan <work@onurozkan.dev>
feat: Add diagnostic with fix to replace trailing `return <val>;` with `<val>`
Works for functions and closures.
Ignores desugared return expressions (e.g. from desugared try operators).
Fixes: #10970
Completes: #11020