Update RLS
This update includes the ability to warn on deprecated config keys.
It's important to be able to warn the user whenever they're using
an old configuration rather than giving them a cryptic "unknown
configuration error"
cc https://github.com/rust-lang/rls-vscode/issues/639
Since we removed a config value in the current nightly, it'd be
very good if this change can make also make it before cutting the
next release.
Rollup of 8 pull requests
Successful merges:
- #61969 (Add #[repr(transparent)] for several types)
- #63346 (Lint on some incorrect uses of mem::zeroed / mem::uninitialized)
- #63433 (Miri shouldn't look at types)
- #63440 (rename RUST_CTFE_BACKTRACE to RUSTC_CTFE_BACKTRACE)
- #63441 (Derive Debug for CrateInfo)
- #63442 (Add an example to show how to insert item to a sorted vec)
- #63453 (rustdoc: general cleanup)
- #63464 (Copy ty::Instance instead of passing by reference)
Failed merges:
r? @ghost
Copy ty::Instance instead of passing by reference
ty::Instance is small and Copy, we should not be adding additional
indirection.
Fixes#63409.
r? @eddyb
Add #[repr(transparent)] for several types
In some functions, types mentioned in this PR are transmuted into their inner value.
Example for `PathBuf`: https://github.com/rust-lang/rust/blob/master/src/libstd/path.rs#L1132.
This PR adds `#[repr(transparent)]` to those types, so their correct behavior doesn't depend on compiler details. (As far as I understand, currently that line, converting `PathBuf` to `Vec<u8>`, is UB).
This update includes the ability to warn on deprecated config keys.
It's important to be able to warn the user whenever they're using
an old configuration rather than giving them a cryptic "unknown
configuration error"
cc https://github.com/rust-lang/rls-vscode/issues/639
Since we removed a config value in the current nightly, it'd be
very good if this change can make also make it before cutting the
next release.
These impls prevent ergonomic use of the config (e.g., forcing us to use
RefCell) despite all usecases for these structs only using their Display
impls once.
This drops the parking_lot dependency; the ReentrantMutex type appeared
to be unused (at least, no compilation failures occurred).
This is technically a possible change in behavior of its users, as
lock() would wait on other threads releasing their guards, but since we
didn't actually remove any threading or such in this code, it appears
that we never used that behavior (the behavior change is only noticeable
if the type previously was used in two threads, in a single thread
ReentrantMutex is useless).
Refactor and categorize lowering wrt. items / exprs
Split lowering into more files along the lines of "expression related" and "item related".
Also refactor huge methods into smaller ones.
A next step might be to introduce "type related" and merge patterns and statements combined with expressions into "value related". There's still more work to do but the PR was getting too big :)
r? @oli-obk