- 15 6月, 2021 1 次提交
-
-
由 LeSeulArtichaut 提交于
-
- 14 6月, 2021 9 次提交
-
-
由 bors 提交于
Stabilize `maybe_uninit_ref` This stabilizes `assume_init_{ref,mut}`. FCP is complete: https://github.com/rust-lang/rust/issues/63568#issuecomment-590121300 The renaming was done by #76047 and FIXME was resolved by #76241, so I think we can now stabilize them finally
🎉 Still, it's const-unstable as `assert_inhabited` is unstable. Closes #63568 -
由 bors 提交于
Revert #85176 addition of `clone_from` for `ManuallyDrop` Forwarding `clone_from` to the inner value changes the observable behavior, as previously the inner value would *not* be dropped by the default implementation. Frankly, this is a super-niche case, so #85176 is welcome to argue the behavior should be otherwise! But if we overrride it, IMO documenting the behavior would be good. Example: https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=c5d0856686fa850c1d7ee16891014efb
-
由 bors 提交于
Fix typo `with custom a custom` -> `with a custom`
-
由 bors 提交于
Fix font weight Fixes #86256. I realized that the only cases where we actually needed to have bold text was inside `impl-items`. cc `@camelid` r? `@jsha`
-
由 Yuki Okushi 提交于
-
由 Guillaume Gomez 提交于
-
由 Guillaume Gomez 提交于
-
由 Guillaume Gomez 提交于
-
由 Shadlock0133 提交于
-
- 13 6月, 2021 11 次提交
-
-
由 bors 提交于
Fix ICEs on invalid vtable size/alignment const UB errors The invalid vtable size/alignment errors from `InterpCx::read_size_and_align_from_vtable` were "freeform const UB errors", causing ICEs when reaching validation. This PR turns them into const UB hard errors to catch them during validation and avoid that. Fixes #86193 r? `@RalfJung` (It seemed cleaner to have 2 variants but they can be merged into one variant with a message payload if you prefer that ?)
-
由 Rémy Rakic 提交于
-
由 Rémy Rakic 提交于
They were "freeform const UB" error message, but could reach validation and trigger ICEs there. We now catch them during validation to avoid that.
-
由 bors 提交于
simplify validate_generic_param_order
-
由 bors 提交于
Stabilize `simd_x86_bittest` feature This pulls https://github.com/rust-lang/stdarch/pull/1180, FCP is complete: https://github.com/rust-lang/rust/issues/59414#issuecomment-826072554 Closes #59414
-
由 bors 提交于
Update cargo 11 commits in aa8b09297bb3156b849e73db48af4cd050492fe6..44456677b5d1d82fe981c955dc5c67734b31f340 2021-06-09 00:28:53 +0000 to 2021-06-12 18:00:01 +0000 - Fix package_default_run test. (rust-lang/cargo#9577) - Change how the fix_deny_warnings_but_not_others test works (rust-lang/cargo#9571) - Add mising documentation regarding `cargo doc` (rust-lang/cargo#9565) - Implement warning for ignored trailing arguments (rust-lang/cargo#9561) - Make clippy happy (rust-lang/cargo#9569) - Fix rustc/rustdoc config values to be config-relative. (rust-lang/cargo#9566) - Update rustfix. (rust-lang/cargo#9567) - Warn if an "all" target is specified, but we don't match anything (rust-lang/cargo#9549) - add default_run to SerializedPackage (rust-lang/cargo#9550) - respect user choice of lib/bin over heuristics (rust-lang/cargo#9522) - Add a mean to mutably access the members of a workspace (rust-lang/cargo#9547)
-
由 klensy 提交于
-
由 bors 提交于
Pretty print generator witness only in `-Zverbose` mode In release build of deeply-nested-async benchmark the size of `no-opt.bc` file is reduced from 46MB to 62kB. Helps with #84873, where in one of reported test cases the size of `no-opt.bc` file is reduced from 2.3GB to 799kB.
-
由 Eric Huss 提交于
-
由 Yuki Okushi 提交于
-
由 Tomasz Miąsko 提交于
In release build of deeply-nested-async benchmark the size of `no-opt.bc` file is reduced from 46MB to 62kB.
-
- 12 6月, 2021 18 次提交
-
-
由 bors 提交于
Implement nonzero arithmetics for NonZero types. Hello'all, this is my first PR to this repo. Non-zero natural numbers are stable by addition/multiplication/exponentiation, so it makes sense to make this arithmetic possible with `NonZeroU*`. The major pitfall is that overflowing underlying `u*` types possibly lead to underlying `0` values, which break the major invariant of `NonZeroU*`. To accommodate it, only `checked_` and `saturating_` operations are implemented. Other variants allowing wrapped results like `wrapping_` or `overflowing_` are ruled out *de facto*. `impl Add<u*> for NonZeroU* { .. }` was considered, as it panics on overflow which enforces the invariant, but it does not so in release mode. I considered forcing `NonZeroU*::add` to panic in release mode by deferring the check to `u*::checked_add`, but this is less explicit for the user than directly using `NonZeroU*::checked_add`. Following `@Lokathor's` advice on zulip, I have dropped the idea. `@poliorcetics` on Discord also suggested implementing `_sub` operations, but I'd postpone this to another PR if there is a need for it. My opinion is that it could be useful in some cases, but that it makes less sense because non-null natural numbers are not stable by subtraction even in theory, while the overflowing problem is just about technical implementation. One thing I don't like is that the type of the `other` arg differs in every implementation: `_add` methods accept any raw positive integer, `_mul` methods only accept non-zero values otherwise the invariant is also broken, and `_pow` only seems to accept `u32` for a reason I ignore but that seems consistent throughout `std`. Maybe there is a better way to harmonize this? This is it, Iope I haven't forgotten anything and I'll be happy to read your feedback.
-
由 bors 提交于
Do not suggest to add type annotations for unnameable types Consider this example: ```rust const A = || 42; struct S<T> { t: T } const B: _ = S { t: || 42 }; ``` This currently produces the following output: ``` error: missing type for `const` item --> src/lib.rs:1:7 | 1 | const A = || 42; | ^ help: provide a type for the item: `A: [closure@src/lib.rs:1:11: 1:16]` error[E0121]: the type placeholder `_` is not allowed within types on item signatures --> src/lib.rs:4:10 | 4 | const B: _ = S { t: || 42 }; | ^ | | | not allowed in type signatures | help: replace `_` with the correct type: `S<[closure@src/lib.rs:4:21: 4:26]>` error: aborting due to 2 previous errors ``` However, these suggestions are obviously useless, because the suggested types cannot be written down. With my changes, the suggestion is replaced with a note, because there is no simple fix: ``` error: missing type for `const` item --> test.rs:1:7 | 1 | const A = || 42; | ^ | note: however, the inferred type `[closure@test.rs:1:11: 1:16]` cannot be named --> test.rs:1:11 | 1 | const A = || 42; | ^^^^^ error[E0121]: the type placeholder `_` is not allowed within types on item signatures --> test.rs:4:10 | 4 | const B: _ = S { t: || 42 }; | ^ not allowed in type signatures | note: however, the inferred type `S<[closure@test.rs:4:21: 4:26]>` cannot be named --> test.rs:4:14 | 4 | const B: _ = S { t: || 42 }; | ^^^^^^^^^^^^^^ error: aborting due to 2 previous errors ```
-
由 Iago-lito 提交于
-
由 bors 提交于
const_eval_checked: Support as casts in abstract consts
-
由 bors 提交于
Hash DefId in rustc_span. This is mostly just moving code around. Changes are simplifications of unneeded callbacks from rustc_span to rustc_middle. r? `@petrochenkov`
-
由 bors 提交于
Bump to 1.55 r? `@Mark-Simulacrum`
-
由 bors 提交于
Rollup of 7 pull requests Successful merges: - #85800 (Fix some diagnostic issues with const_generics_defaults feature gate) - #85823 (Do not suggest ampmut if rhs is already mutable) - #86153 (Print dummy spans as `no-location`) - #86174 (Detect incorrect vtable alignment during const eval) - #86189 (Make `relate_type_and_mut` public) - #86205 (Run full const-generics test for issue-72293) - #86217 (Remove "generic type" in boxed.rs) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
-
由 Mark Rousskov 提交于
-
由 Fabian Wolff 提交于
-
由 Yuki Okushi 提交于
Remove "generic type" in boxed.rs r? ``@m-ou-se``
-
由 Deadbeef 提交于
-
由 Yuki Okushi 提交于
Run full const-generics test for issue-72293 Closes #72293 r? ```@oli-obk```
-
由 Yuki Okushi 提交于
Make `relate_type_and_mut` public #85343 improved diagnostics around `Relate` impls but made `relate_type_and_mut` private, which was accessible as `relate` previously. This makes it public so that we can use it on rust-semverver. r? ```@Aaron1011```
-
由 Yuki Okushi 提交于
Detect incorrect vtable alignment during const eval This PR fixes #86132 by detecting invalid alignment values for trait objects in the interpreter, and emitting an error about this conversion failure, to avoid the ICE. I've noticed that the error emitted at https://github.com/rust-lang/rust/blob/a50d72158e08e02cfc051b863017bdbd2c45b637/compiler/rustc_mir/src/interpret/traits.rs#L163-L166 doesn't seem to be present in the const-ub tests, so I've tried adding a test that triggers both of these cases: one for the invalid size, and another for the invalid alignment that #86132 tracks (I have found different magic values triggering different `Align::from_bytes` errors than the "power of 2" one, if need be). However, when doing that, I *cannot* for the life of me figure out the correct incantation to make these 2 errors trigger with the "it is undefined behavior to use this value" message rather than the "any use of this value will cause an error" lint. I've tried Oli's suggestions of different values, tuples and arrays, using the transparent wrapper trick from the other tests and I was only able to trigger the regular const-ub errors about the size of the vtable, or that the drop pointer was invalid. Maybe these "type validation failed" errors happen before this part of the interpreter is reached and there just needs some magic incorrect values to bypass them, I don't know. Since this fixes an ICE, and if the constants are indeed used, these 2 tests will turn into a hard error, I thought I'd open the PR anyways. And if ```@RalfJung``` you know of a way I could manage that (if you think that these tests are worth checking that the `throw_ub_format!` does indeed create const-ub errors as we expect) I'd be grateful. For that reason, r? ```@RalfJung``` and cc ```@oli-obk.```
-
由 Yuki Okushi 提交于
Print dummy spans as `no-location` Fixes #58808.
-
由 Yuki Okushi 提交于
Do not suggest ampmut if rhs is already mutable Removes invalid suggestion in #85765, although it should highlight the user type instead of the local variable. Looking at the comments of this line: https://github.com/rust-lang/rust/blob/84b1005bfd22e2cb2a4c13b0b81958fe72628354/compiler/rustc_mir_build/src/build/matches/mod.rs#L2107 It was intentionally set to `None`, causing it to highlight the local variable instead. I am not sure if I will be able to fix it. Fixes #85765
-
由 Yuki Okushi 提交于
Fix some diagnostic issues with const_generics_defaults feature gate This PR makes a few changes: - print out const param defaults in "lifetime ordering" errors rather than discarding them - update `is_simple_text` to account for const params when checking if a type has no generics, this was causing a note to be failed to add to an error message - fixes some diagnostic wording that incorrectly said there was ordering restrictions between type/const params despite the `const_generics_defaults` feature gate is active
-
由 bors 提交于
Don't use a generator for BoxedResolver The generator is non-trivial and requires unsafe code anyway. Using regular unsafe code without a generator is much easier to follow. Based on #85810 as it touches rustc_interface too.
-
- 11 6月, 2021 1 次提交
-
-
由 Camille GILLOT 提交于
-