- 26 4月, 2020 10 次提交
-
-
由 Dylan DPC 提交于
[breaking change] Disallow statics initializing themselves fixes #71078 Self-initialization is unsound because it breaks privacy assumptions that unsafe code can make. In ```rust pub mod foo { #[derive(Debug, Copy, Clone)] pub struct Foo { x: (), } } pub static FOO: foo::Foo = FOO; ``` unsafe could could expect that ony functions inside the `foo` module were able to create a value of type `Foo`.
-
由 Dylan DPC 提交于
Add all remaining `DefKind`s. r? @EddyB or @Centril ~~I'm not sure if this is what you were thinking of. There are also a few places where I'm not sure what the correct choice is because I don't fully understand the meaning of some variants.~~ ~~In general, it feels a bit odd to add some of these as `DefKind`s (e.g. `Arm`) because they don't feel like definitions. Are there things that it makes sense not to add?~~
-
由 bors 提交于
Rollup of 7 pull requests Successful merges: - #69041 (proc_macro: Stabilize `Span::resolved_at` and `Span::located_at`) - #69813 (Implement BitOr and BitOrAssign for the NonZero integer types) - #70712 (stabilize BTreeMap::remove_entry) - #71168 (Deprecate `{Box,Rc,Arc}::into_raw_non_null`) - #71544 (Replace filter_map().next() calls with find_map()) - #71545 (Fix comment in docstring example for Error::kind) - #71548 (Add missing Send and Sync impls for linked list Cursor and CursorMut.) Failed merges: r? @ghost
-
由 Dylan DPC 提交于
Add missing Send and Sync impls for linked list Cursor and CursorMut. Someone pointed out these to me, and i think it's indeed reasonable to add those impl. r? @Amanieu
-
由 Dylan DPC 提交于
Fix comment in docstring example for Error::kind Saw it while reading the docs.
-
由 Dylan DPC 提交于
Replace filter_map().next() calls with find_map() These are semantically the same, but `find_map()` is more concise.
-
由 Dylan DPC 提交于
Deprecate `{Box,Rc,Arc}::into_raw_non_null` Per ongoing FCP at https://github.com/rust-lang/rust/issues/47336#issuecomment-586589016 See also https://github.com/rust-lang/rust/issues/47336#issuecomment-614054164
-
由 Dylan DPC 提交于
stabilize BTreeMap::remove_entry This PR stabilizes `BTreeMap::remove_entry` as implemented in https://github.com/rust-lang/rust/pull/68378. Closes https://github.com/rust-lang/rust/issues/66714
-
由 Dylan DPC 提交于
Implement BitOr and BitOrAssign for the NonZero integer types This provides overloaded operators for `NonZero$Int | NonZero$Int`, `NonZero$Int | $Int`, and `$Int | NonZero$Int`. It also provides `BitOrAssign` where `self` is `NonZero$Int`, for symmetry. It's a pretty small conceptual addition, but is good becasue but avoids a case where the operation is obviously sound, but you'd otherwise need unsafe to do it. In crates trying to minimize `unsafe` usage, this is unfortunate and makes working with `NonZero` types often not worth it, even if the operations you're doing are clearly sound. I've marked these as stable as I've been told in the past that trait impls are automatically stable. I'm happy to change it to unstable if this wasn't correct information. I'm not entirely confident what version I should have put down, so I followed https://www.whatrustisit.com. Hopefully it's correct for this. Apologies in advance if this has come up before, but I couldn't find it.
-
由 Dylan DPC 提交于
proc_macro: Stabilize `Span::resolved_at` and `Span::located_at` Introduced in https://github.com/rust-lang/rust/pull/47149. Part of https://github.com/rust-lang/rust/issues/54725. Motivation: https://github.com/rust-lang/rust/pull/68716#issuecomment-583918919. Identifiers in proc macros may want to inherit span locations for diagnostics from one tokens (e.g. some tokens from the macro input), but resolve those identifiers from some different location (e.g. from the macro's definition site). This becomes especially important when multiple resolution locations become available with stabilization of [`Span::mixed_site`](https://github.com/rust-lang/rust/pull/68716). Why I think this is the right API for setting span's location and hygiene - https://github.com/rust-lang/rust/pull/69041#issuecomment-586644778. r? @dtolnay
-
- 25 4月, 2020 30 次提交
-
-
由 crlf0710 提交于
Co-Authored-By: NAmanieu d'Antras <amanieu@gmail.com>
-
由 bors 提交于
Bump bootstrap compiler This bumps the bootstrap compiler and the rustfmt that x.py fmt uses.
-
由 Mark Rousskov 提交于
-
由 Mark Rousskov 提交于
-
由 Vadim Petrochenkov 提交于
-
由 Vadim Petrochenkov 提交于
-
由 bors 提交于
Rollup of 5 pull requests Successful merges: - #71364 (Ignore -Zprofile when building compiler_builtins) - #71494 (Fix span of while (let) expressions after lowering) - #71517 ( Quick and dirty fix of the unused_braces lint) - #71523 (Take a single root node in range_search) - #71533 (Revert PR 70566 for const validation fix) Failed merges: r? @ghost
-
由 Dylan DPC 提交于
Revert PR 70566 for const validation fix This is a port of PR #71441 but ported to the master branch, as discussed in [yesterday's T-compiler meeting](https://zulip-archive.rust-lang.org/131828tcompiler/88751weeklymeeting2020042354818.html#195065903)
-
由 Dylan DPC 提交于
Take a single root node in range_search The unsafe code can be justified within range_search, as it makes sure to not overlap the returned references, but from the callers perspective it's an entirely safe algorithm and there's no need for the caller to know about the duplication. cc @ssomers r? @Amanieu
-
由 Dylan DPC 提交于
Quick and dirty fix of the unused_braces lint cc @lcnr Adresses #70814 This at least prevents lint output, if no span is available. Even though this also prevents the `unused_parens` lint from emitting, when the `DUMMY_SP` is used there, but I think that should be ok, since error messages without a span are quite useless anyway. Clippy CI is currently blocked on this bug. If this quick and dirty fix should be rejected, I could try to work around this in Clippy. r? @shepmaster
-
由 Dylan DPC 提交于
Fix span of while (let) expressions after lowering Credit goes to @alex-700 who found this while trying to fix a suggestion in Clippy. While `if`, `try`, `for` and `await` expressions get the span of the original expression when desugared, `while` loops got the span of the scrutinee, which lead to weird code, when building the suggestion, that randomly worked: https://github.com/rust-lang/rust-clippy/pull/5511/files#diff-df4e9d2bf840a5f2e3b580bef73da3bcR106-R108 I'm wondering, if `DesugaringKind` should get a variant `WhileLoop` and instead of using the span of the `ast::ExprKind::While` expr directly, a new span with `self.mark_span_with_reason` should be used, like it is done with `for` loops. There was some fallout, but I think that is acceptable. If not, I need some help to find out where this can be fixed.
-
由 Dylan DPC 提交于
Ignore -Zprofile when building compiler_builtins #70846 made the `compiler_builtins` crate ignore the default codegen-units setting and instead always split each function into a different codegen unit. This unfortunately breaks `-Zprofile` which requires a single codegen unit per crate (see #71283). You can notice this when building with `cargo -Zbuild-std` and `RUSTFLAGS` containing `-Zprofile`. This PR works around this issue by just ignoring `-Zprofile` for the `compiler-builtins` crate.
-
由 crlf0710 提交于
-
由 bors 提交于
Set `--cfg bootstrap` for stage0 rustdoc Resolves #71455. With this patch, running `./x.py doc --stage 0 src/libstd` with a clean `build` dir successfully outputs docs for `core`, `alloc` and `std` in under a minute. This kind of turnaround for viewing small changes to the standard library documentation is quite nice, and I think we should endeavour to keep it working. I'm not sure how involved that would be though. r? @Mark-Simulacrum
-
由 Askaholic 提交于
-
由 Josh Stone 提交于
These are semantically the same, but `find_map()` is more concise.
-
由 bors 提交于
Rollup of 8 pull requests Successful merges: - #69456 (fix misleading type annotation diagonstics) - #71330 (Only run dataflow for const qualification if type-based check would fail) - #71480 (Improve PanicInfo examples readability) - #71485 (Add BinaryHeap::retain as suggested in #42849) - #71512 (Remove useless "" args) - #71527 (Miscellaneous cleanup in `check_consts`) - #71534 (Avoid unused Option::map results) - #71535 (Fix typos in docs for keyword "in") Failed merges: r? @ghost
-
由 Dylan DPC 提交于
Fix typos in docs for keyword "in" Erroneous .md formatting was causing the link to not work on the currently-nightly keyword docs for `in`, and also there was a simple typo.
-
由 Dylan DPC 提交于
Avoid unused Option::map results These are changes that would be needed if we add `#[must_use]` to `Option::map`, per #71484. r? @Mark-Simulacrum
-
由 Dylan DPC 提交于
Miscellaneous cleanup in `check_consts` Just changes `RUSTC_LOG` output.
-
由 Dylan DPC 提交于
Remove useless "" args Signed-off-by: NRustin-Liu <rustin.liu@gmail.com>
-
由 Dylan DPC 提交于
Add BinaryHeap::retain as suggested in #42849 This PR implements retain for BinaryHeap as suggested in #42849. This is my first PR for Rust, so please let me know if I should be doing anything differently, thanks!
-
由 Dylan DPC 提交于
Improve PanicInfo examples readability cc @Eijebong r? @Dylan-DPC
-
由 Dylan DPC 提交于
Only run dataflow for const qualification if type-based check would fail This is the optimization discussed in https://github.com/rust-lang/rust/issues/49146#issuecomment-614012476. We wait for `Qualif::in_any_value_of_ty` to return `true` before running dataflow. For bodies that deal mostly with primitive types, this will avoid running dataflow at all during const qualification. This also removes the `BitSet` used to cache `in_any_value_of_ty` for each local, which was only necessary for an old version of #64470 that also handled promotability.
-
由 Dylan DPC 提交于
fix misleading type annotation diagonstics This solves the method call part of issue https://github.com/rust-lang/rust/issues/69455
-
由 Jubilee Young 提交于
-
由 Josh Stone 提交于
These are changes that would be needed if we add `#[must_use]` to `Option::map`, per #71484.
-
由 Ralf Jung 提交于
-
由 mark 提交于
-