This was using an invalid iterator so is likely to end with buggy
behaviour.
It also doesn't even benefit many type in std including Vec so removing it
shouldn't cause any problems.
Have included an example of a Cargo.toml file containing the libc dependency.
The file has been reformatted to use sections. The note on the default features warning is part of the _Using libc_ section but is in bold.
Remove old -Z options that do nothing
Technically, this is a [breaking-change], but I'm not sure what the policy for -Z flags is (especially unused ones).
Update rc.rs
The original description suggests that the original `Rc<T>` itself is downgraded, which doesn't seem to be what the code does. At the same time, `Rc` is one of those types that can do weird things with only a shared reference, so I thought it would be good to be clear.
Minor changes to variable bindings chapter
* In "*... name as another binding, that's currently in scope, will ...*", *"
that's currently in scope"* is not a parenthetical element, and the commas
can be omitted.
* Other minor changes.
add documentation on howto build just rustc without libstd to the build system
I searched for days until I found this, maybe this helps other poor souls 😂
for reference #33990
[MIR] Fix MIR trans edge cases that showed up on crater.
These fixes cover all of the [regressions found by crater](https://gist.github.com/nikomatsakis/88ce89ed06ef7f7f19bfd1e221d7f7ec) (for #34096).
Two of them were `Pair` edge cases (ZSTs and constants) causing LLVM assertions, the other one was causing stack overflows in debug scripts compiled in debug mode, due to the `fn_ret_cast` `alloca` ending up in a loop.
(Includes a regression test, which needed to go into `compile-fail/`
due to weaknesses when combining `#[deny(warnings)]` with
`tcx.sess.span_warn(..)`)
(updated with review feedback from arielb1.)
rustc: add ReErased to be used by trait selection, MIR and trans.
`ReErased` replaces `ReStatic` (i.e. `'static`) for erasing regions.
Using a distinct lifetime helps prevent accidental mix-ups between the two.
It also allows cleaner type printing (see test changes), including in symbol names:
```rust
str..pattern..CharSearcher$LT$$u27$static$GT$::drop.30560::h840c2f2afc03bbea // before
str..pattern..CharSearcher::drop.30561::h6bd31d2af614377a // after
```
Not that we should be producing symbols this way, but it's still better.
* In "... name as another binding, that's currently in scope, will ...", ",
that's currently in scope, " is not a parenthetical element, and the commas
can be omitted.
* Other minor changes.
The book's "Error handling with Box<Error>" section talks about Box<Error>.
In the actual example Box<Error + Send + Sync> is used instead so that the
corresponding From impls could be used to convert a plain string to an error
type. Rust 1.7 added support for conversion from &str/String to
Box<Error>, so this gotcha and later references to it can now be removed.
[MIR] Fix double-rounding of float constants and ignore NaN sign in tests.
Fixes#32805 by handling f32 and f64 separately in rustc_const_eval.
Also removes `#[rustc_no_mir]` from a couple libstd tests by ignoring NaN sign.
Turns out that runtime evaluation of `0.0 / 0.0` produces a NaN with the sign bit set,
whereas LLVM constant folds it to a NaN with the sign bit unset, which we were testing for.
Add error description for E0174
Reference for issue: #32777
r? @GuillaumeGomez
Hey Guillaume, sorry for taking too long to do it. I got some unexpected work during the week.
Waiting for your review :)
Unsupport wget
wget support was removed in #32942 (search for wget in diff), but configure wasn't updated. wget support was introduced in #7498 for Windows, but we now use PowerShell on Windows.