Remove the `compiler-builtins` feature from default because it prevents
testing via the default `cargo test` command. It made more sense as a
default when `compiler-builtins` was a dependency that some crates added
via crates.io, but is no longer needed.
The `rustc-dep-of-std` feature is also removed since it doesn't do
anything beyond what the `compiler-builtins` feature already does.
Rollup of 4 pull requests
Successful merges:
- rust-lang/rust#154548 (Add regression test for TransmuteFrom ICE with min_generic_const_args)
- rust-lang/rust#154563 (Point at binop lhs and rhs when expression is multiline)
- rust-lang/rust#154564 (Tweak wording of E0275 WF errors)
- rust-lang/rust#154566 (loongarch: use "_mcount" as the default mcount symbol)
loongarch: use "_mcount" as the default mcount symbol
Set the `mcount` field to "_mcount" for all LoongArch targets to match Clang/GCC behavior [1]. This fixes linking failures when using `-Z instrument-mcount`, where the runtime expects "_mcount" instead of "mcount".
[1] https://github.com/llvm/llvm-project/blob/main/clang/lib/Basic/Targets/LoongArch.h#L60
Tweak wording of E0275 WF errors
Modify the main error message to read better:
```
error[E0275]: overflow evaluating whether `&'a mut Bar` is well-formed
```
Add regression test for TransmuteFrom ICE with min_generic_const_args
Regression test for rust-lang/rust#150457.
The wfcheck ICE with TransmuteFrom + min_generic_const_args was fixed by rust-lang/rust#150707 but didn't get a test.
Closesrust-lang/rust#150457
[perf] Revert FastISel patch
This caused a significant compile-time regression for debug builds.
There is another change (https://github.com/llvm/llvm-project/pull/186723) that mitigates that regression, but not fully. Revert it for now.
update zulip link in `std` documentation
#docs doesn't seem to exist anymore, so point people to `t-libs`. Also include direct link to topic since Zulip is world-viewable now.
Fix ambiguous parsing in bootstrap.py
Noticed this while trying to produce rustdoc-json for std and saw JSON output from the bootstrap.py build of bootstrap's Rust code. This is technically a breaking change, but I think the fix should be simple and arguably an improvement in future compatibility if/when the flag set changes.
Add `IoSplit` diagnostic item for `std::io::Split`
Similar to the existing `IoLines` item. It will be used in Clippy to detect uses of `Split` leading to infinite loops similar to the existing lint for `Lines`.
feat: reimplement `hash_map!` macro
originally implemented in rust-lang/rust#144070, this had to be reverted in rust-lang/rust#148049 due to name ambiguity, as the macro was automatically put into the prelude. now, that rust-lang/rust#139493 has landed, it is possible to have a top-level macro, that is not exported by default, which should make it possible to reland this again.
implements rust-lang/rust#144032
implementation from rust-lang/rust#144070, original author has been added as co-author
effectively reverts rust-lang/rust#148049
Add regression test for recursive lazy type alias normalization ICE
Regression test for rust-lang/rust#152633.
The normalization ICE with recursive lazy_type_alias + min_generic_const_args was fixed by rust-lang/rust#152040 but didn't get a test. Compiler now reports E0275 instead of crashing.
Closesrust-lang/rust#152633
Make typeck a tcx method which calls typeck_root query
Currently typeck query itself calls `tcx.typeck(tcx.typeck_root_def_id(key))` if its key isn't a type-check root. I thought this might be an overhead and made typeck a tcx method which calls typeck_root query instead.
This is a step to simplify `cache_on_disk_if` query modifier.
@petrochenkov please run perf
Rollup of 4 pull requests
Successful merges:
- rust-lang/rust#153632 (Fix Vec::const_make_global for 0 capacity and ZST's)
- rust-lang/rust#154190 (Don't fuse in `MapWindows`)
- rust-lang/rust#154512 (Constify comparisons and `Clone` for `core::mem::Alignment`)
- rust-lang/rust#154520 (Add doc links to `ExtractIf` of `BTree{Set,Map}` and `LinkedList`)
Add doc links to `ExtractIf` of `BTree{Set,Map}` and `LinkedList`
There were links for `Hash{Set,Map}` and `Vec{,Deque}` versions, but not these three.
Don't fuse in `MapWindows`
cc https://github.com/rust-lang/rust/issues/87155
Fusing makes the iterator larger, slower, more complicated, and less useful. Users who need fusing behavior can always use `.fuse()`, but there is no way to get non-fusing behavior from the fused version.
@rustbot label A-iterators
Example
---
```rust
fn main() {
let y = match 0 {
0 |$0 => { 1i32 }
1 => { 2i32 }
};
}
```
**Before this PR**
Panic on apply
**After this PR**
Assist not applicable
Notify stdarch maintainers on changes in std_detect
cc @Amanieu @folkertdev @Kobzol
It would be nice to be notified when std_detect changes, as it is spiritually a part of stdarch.
Also assign @rust-lang/libs to std_detect
move many tests from `structs-enums` to `structs` or `enum`
This PR moves most of the tests in `ui/structs-enums` that are only about structs or only about enums to their respective directory, as a step towards removing `ui/structs-enums`.
Followup to rust-lang/rust#154131.
r? @Kivooeo
Fix ice in rustdoc of private reexport
Fixesrust-lang/rust#154383
The root cause is rustdoc could still try to resolve links for source docs that resolver did not cache in `ResolveDocLinks::Exported` mode. The test case will not crash with `--document-private-items` option, which will use `ResolveDocLinks::All`.
The fix makes rustdoc skip link resolution based on the source `DefId` of each doc fragment, so its behavior stays aligned with resolver's logic here: https://github.com/chenyukang/rust/blob/dc5cb1719eed6ac9275fe93d914d32141606b2ac/compiler/rustc_resolve/src/late.rs#L685