| Age | Commit message (Collapse) | Author | Lines |
|
|
|
While many programmers may intuitively appreciate the significance of
"magic numbers" like −2147483648, Rust is about empowering everyone to
build reliable and efficient software! It's a bit more legible to
print the constant names (even noisy fully-qualified-paths thereof).
The bit-manipulation methods mirror those in
`librustc_mir::hair::pattern::_match::all_constructors`; thanks to the
immortal Varkor for guidance.
Resolves #56393.
|
|
Make use of possibly uninitialized data [E0381] a hard error
This is one of the behaviors we no longer allow in NLL. Since it can
lead to undefined behavior, I think it's definitely worth making it a
hard error without waiting to turn off migration mode (#58781).
Closes #60450.
My ulterior motive here is making it impossible to leave variables
partially initialized across a yield (see #60889, discussion at #63035), so
tests are included for that.
cc #54987
---
I'm not sure if bypassing the buffer is a good way of doing this. We could also make a `force_errors_buffer` or similar that gets recombined with all the errors as they are emitted. But this is simpler and seems fine to me.
r? @Centril
cc @cramertj @nikomatsakis @pnkfelix @RalfJung
|
|
This is one of the behaviors we no longer allow in NLL. Since it can
lead to undefined behavior, I think it's definitely worth making it a
hard error without waiting to turn off migration mode (#58781).
Closes #60450.
My ulterior motive here is making it impossible to leave variables
partially initialized across a yield (see discussion at #63035), so
tests are included for that.
|
|
|
|
|
|
|
|
Rollup of 5 pull requests
Successful merges:
- #62954 (Fix typo in Delimited::open_tt)
- #63146 (Cleanup syntax::attr)
- #63218 (rustbuild: RISC-V is no longer an experimental LLVM target)
- #63227 (dead_code: Properly inspect fields in struct patterns with type relative paths)
- #63229 (A bit of Miri error cleanup)
Failed merges:
r? @ghost
|
|
|
|
|
|
|
|
|
|
|
|
This is a modified version of the test I added previously. The difference is this version implements a wrapper around std::any::type_name versus core::intrinsics::type_name, in order to show that it works as desired / intended.
|
|
Move run-pass tests to ui
This is the second attempt at doing https://github.com/rust-lang/rust/pull/53994 (which was previously reverted in https://github.com/rust-lang/rust/pull/54530).
The issue with inability to run the test suite in a faster way (https://github.com/rust-lang/rust/issues/54047) that motivated the revert was recently addressed by https://github.com/rust-lang/rust/pull/61755.
r? @Centril
|
|
|
|
|
|
Don't access a static just for its size and alignment
cc @RalfJung
fixes #62189
|
|
Add test for #51559
Closes #51559
|
|
|
|
Closes #51559
|
|
|
|
rustc/rustc_mir: Implement RFC 2203.
This PR implements RFC 2203, allowing constants in array repeat
expressions. Part of #49147.
r? @eddyb
|
|
https://github.com/rust-lang/rust/issues/60532
|
|
|
|
|
|
rustc_mir: treat DropAndReplace as Drop + Assign in qualify_consts.
This slipped through the cracks and never got implemented (thankfully that just meant it was overly conservative and didn't allow assignments that don't *actually* drop the previous value).
Fixes #62273.
r? @oli-obk
|
|
https://github.com/rust-lang/rust/issues/60532
|
|
|
|
|
|
This commit replaces the new error that was being emitted in NLL type
check with a call to `report_selection_error` so that the same trait
error as before this PR is emitted.
|
|
This commit adds a `const_in_array_repeat_expressions` feature gate and
only create `Candidate::Repeat` if it is enabled.
|
|
This commit implements RFC 2203, allowing constants in array repeat
expressions.
Firstly, the check that the array repeat expression implements `Copy` is
removed and re-implemented in `rustc_mir::borrow_check::nll::type_check`
by emitting an error when the MIR contains a `Operand::Move` and the
type does not implement `Copy`.
Next, the `qualify_consts` pass is modified to construct a
`Candidate::Repeat` when it would be correct to promote a array repeat
expression.
Finally, the `promote_consts` pass is modified to promote the candidates
previously identified.
|
|
https://github.com/rust-lang/rust/issues/60532
r? @alexreg
|
|
[let_chains, 3/6] And then there was only Loop
Here we remove `hir::ExprKind::While`.
Instead, we desugar: `'label: while $cond $body` into:
```rust
'label: loop {
match DropTemps($cond) {
true => $body,
_ => break,
}
}
```
Per https://github.com/rust-lang/rust/issues/53667#issuecomment-471583239.
This is a follow up to https://github.com/rust-lang/rust/pull/59288 which did the same for `if` expressions.
r? @matthewjasper
|
|
|
|
|
|
|
|
Miri engine: support extra function (pointer) values
We want to add basic support for `dlsym` in Miri (needed to run the latest version of `getrandom`). For that to work, `dlsym` needs to return *something* that can be stored in a function pointer and later called.
So we add a new `ExtraFnVal` type to the `Machine` trait, and enable Miri's memory to associate allocation IDs with such values, so that `create_fn_alloc` and `get_fn` can work on *both* `Instance` (this is used for "normal" function pointers) and `ExtraFnVal`.
Cc @oli-obk
|
|
Feature gate `rustc` attributes harder
Fixes https://github.com/rust-lang/rust/issues/62116
|
|
|
|
the error that actually gets shown a bit
|
|
|
|
|
|
|
|
Add `--pass $mode` to compiletest through `./x.py`
Adds a flag `--pass $mode` to compiletest, which is exposed through `./x.py`.
When `--pass $mode` is passed, `{check,build,compile,run}-pass` tests will be forced to run under the given `$mode` unless the directive `// ignore-pass` exists in the test file.
The modes are explained in https://github.com/rust-lang/rust/pull/61778:
- `check` has the same effect as `cargo check`
- `build` or `compile` have the same effect as `cargo build`
- `run` has the same effect as `cargo run`
On my machine, `./x.py -i test src/test/run-pass --stage 1 --pass check` takes 38 seconds whereas it takes 2 min 7 seconds without `--pass check`.
cc https://github.com/rust-lang/rust/issues/61712
r? @petrochenkov
|
|
Fix error counting
Count duplicate errors for `track_errors` and other error counting checks.
Add FIXMEs to make it clear that we should be moving away from this kind of logic.
Closes #61663
|
|
Fix an ICE with uninhabited consts
Fixes https://github.com/rust-lang/rust/issues/61744.
r? @oli-obk
|
|
Don't ICE on mutable zst slices
fixes #62045
|
|
|