internal: Expose whether a channel has been dropped in lsp-server errors
Not the best way to expose this, but this should allow us to give somewhat better errors when the initialization request is malformed, as currently that just results in a channel disconnected error instead of the deserialization error. cc https://github.com/rust-lang/rust-analyzer/issues/15859
rustc_lint: Enforce `rustc::potential_query_instability` lint
Stop allowing `rustc::potential_query_instability` on all of `rustc_lint` and instead allow it on a case-by-case basis if it is safe to do so. In this particular crate, all lints were safe to allow.
Part of https://github.com/rust-lang/rust/issues/84447 which is E-help-wanted.
fix: Fix out-of-bounds panic in some macros due to unhandled self_ref
Fixes#16200
I don't fully understand these changes, I just applied and tested the changes suggested in #16200 and they seem to fix the issue on both the repro and my original project.
Stop allowing `rustc::potential_query_instability` on all of
`rustc_lint` and instead allow it on a case-by-case basis if it is safe
to do so. In this particular crate, all lints were safe to allow.
Simplify bootstrap `--check-cfg` arguments
This PR simplifies the generated check-cfg arguments generated for the no-values case.
For the `bootstrap` cfg:
```diff
- --check-cfg=cfg(bootstrap,values())
+ --check-cfg=cfg(bootstrap)
```
Those are equivalent, so there isn't any semantic difference; but the invocation is short and less distracting.
`@rustbot` label +F-check-cfg
Fix `<BoundConstness as Display>`
There was infinite recursion, which is not very good. I'm not sure what the best way to implement this is, I just did something that felt right.
r? `@fmease`
Move around the code responsible for decorating builtin diagnostics
This PR move the code responsible for decorating builtin diagnostics into a separate sub-module for ease of use and readability.
While my original intention was to also move the check-cfg unexpected logic in their own function I changed my mind after moving the match altogether. I can move those if desired.
Fixes https://github.com/rust-lang/rust/pull/119425#discussion_r1438446596
r? `@Nilstrieb`
Use `windows-sys` in windows tests
This PR adds `windows-sys` to `test_dependencies` so that we don't have to write out windows api bindings for each test.
internal: Simplify implementation of apply_document_changes
While reading through the code base, I stumbled across a piece of code that I found hard to read despite its simple purpose. This is my attempt at making the code easier to understand for future readers.
I won't be offended if this is too minor and not worth your time.
Update to bitflags 2 in the compiler
This involves lots of breaking changes. There are two big changes that force changes. The first is that the bitflag types now don't automatically implement normal derive traits, so we need to derive them manually.
Additionally, bitflags now have a hidden inner type by default, which breaks our custom derives. The bitflags docs recommend using the impl form in these cases, which I did.
r? compiler
While reading through the code base, I stumbled across a piece of code that I found hard to read despite its simple purpose. This is my attempt at making the code easier to understand for future readers.
I won't be offended if this is too minor and not worth your time.
This involves lots of breaking changes. There are two big changes that
force changes. The first is that the bitflag types now don't
automatically implement normal derive traits, so we need to derive them
manually.
Additionally, bitflags now have a hidden inner type by default, which
breaks our custom derives. The bitflags docs recommend using the impl
form in these cases, which I did.
openbsd: available_parallelism: use the right API
use the standard `sysconf(_SC_NPROCESSORS_ONLN)` way to get the number of available processors (capable of running processes), and fallback to `sysctl([CTL_HW, HW_NCPU])` (number of CPUs configured) only on error.
it permits to differenciate CPUs online (capable of running processes) vs CPUs configured (not necessary capable of running processes).
while here, use the common code path for BSDs for doing that, and avoid code duplication.
Problem initially reported to me by Jiri Navratil.
coverage: Prepare mappings separately from injecting statements
These two tasks historically needed to be interleaved, but after various recent changes (including #116046 and #116917) they can now be fully separated.
---
`@rustbot` label +A-code-coverage