- 25 10月, 2019 40 次提交
-
-
由 Jake Goulding 提交于
-
由 Jake Goulding 提交于
-
由 Jake Goulding 提交于
-
由 bors 提交于
Rollup of 9 pull requests Successful merges: - #64639 (Stabilize `#[non_exhaustive]` (RFC 2008)) - #65074 (Fix the start/end byte positions in the compiler JSON output) - #65315 (Intern place projection) - #65685 (Fix check of `statx` and handle EPERM) - #65731 (Prevent unnecessary allocation in PathBuf::set_extension.) - #65740 (Fix default "disable-shortcuts" feature value) - #65787 (move panictry! to where it is used.) - #65789 (move Attribute::with_desugared_doc to librustdoc) - #65790 (move report_invalid_macro_expansion_item to item.rs) Failed merges: r? @ghost
-
由 Mazdak Farrokhzad 提交于
move report_invalid_macro_expansion_item to item.rs From https://github.com/rust-lang/rust/pull/65324. r? @Mark-Simulacrum
-
由 Mazdak Farrokhzad 提交于
move Attribute::with_desugared_doc to librustdoc From https://github.com/rust-lang/rust/pull/65324. r? @varkor
-
由 Mazdak Farrokhzad 提交于
move panictry! to where it is used. From https://github.com/rust-lang/rust/pull/65324 r? @davidtwco
-
由 Mazdak Farrokhzad 提交于
Fix default "disable-shortcuts" feature value Follow-up of https://github.com/rust-lang/rust/pull/65656 It fixes the bad handling of the default value of the feature (which would disable shortcut by default, which is bad!). r? @Dylan-DPC cc @kinnison
-
由 Mazdak Farrokhzad 提交于
Prevent unnecessary allocation in PathBuf::set_extension. It was allocating a new `OsString` that was immediately dropped after using it with `set_file_name`. Now it directly changes the extension in the original buffer, without touching the rest of the file name or allocating a temporary string.
-
由 Mazdak Farrokhzad 提交于
Fix check of `statx` and handle EPERM Should fix #65662 https://github.com/rust-lang/rust/issues/65662#issuecomment-544593939 > I think a reasonable solution might be to do something like try to stat AT_CWD initially and if that fails with EPERM or ENOSYS we disable the syscall entirely, otherwise it's cached as always good to use. r? @alexcrichton
-
由 Mazdak Farrokhzad 提交于
Intern place projection This should sit on top of https://github.com/rust-lang/rust/pull/65197. After that one merged, I'm gonna rebase on top of it. The important commits are the last three and there's a bunch of code repetition that I'm going to remove but for that I need to refactor some things that probably need to be added before this PR. Anyway this work helps as is because we can run perf tests :). r? @oli-obk /cc @nikomatsakis
-
由 Mazdak Farrokhzad 提交于
Fix the start/end byte positions in the compiler JSON output Track the changes made during normalization in the `SourceFile` and use this information to correct the `start_byte` and `end_byte` fields in the JSON output. This should ensure the start/end byte fields can be used to index the original file, even if Rust normalized the source code for parsing purposes. Both CRLF to LF and BOM removal are handled with this one. The rough plan was discussed with @matklad in rust-lang-nursery/rustfix#176 - although I ended up going with `u32` offset tracking so I wouldn't need to deal with `u32 + i32` arithmetics when applying the offset to the span byte positions. Fixes #65029
-
由 Mazdak Farrokhzad 提交于
Stabilize `#[non_exhaustive]` (RFC 2008) Fixes #44109. This pull request stabilizes the `#[non_exhaustive]` attribute, which is used to indicate that a type will have more fields / variants added in the future. It can be applied to `struct`s, `enum`s and `enum` variants. See https://github.com/rust-lang/rust/issues/44109#issuecomment-533356866 for the stabilization report. r? @Centril
-
由 Mazdak Farrokhzad 提交于
Co-Authored-By: NDavid Wood <Q0KPU0H1YOEPHRY1R2SN5B5RL@david.davidtw.co>
-
由 David Wood 提交于
This commit stabilizes RFC 2008 (#44109) by removing the feature gate. Signed-off-by: NDavid Wood <david@davidtw.co>
-
由 bors 提交于
Rollup of 9 pull requests Successful merges: - #62959 (Add by-value iterator for arrays ) - #65390 (Add long error explanation for E0576) - #65408 (reorder config.toml.example options and add one missing option) - #65414 (ignore uninhabited non-exhaustive variant fields) - #65666 (Deprecated proc_macro doesn't trigger warning on build library) - #65742 (Pre-expansion gate most of the things) - #65747 (Adjust the tracking issue for `untagged_unions`.) - #65763 (Changed APIT with explicit generic args span to specific arg spans) - #65775 (Fix more `ReEmpty` ICEs) Failed merges: - #65519 (trait-based structural match implementation) r? @ghost
-
由 Mazdak Farrokhzad 提交于
Fix more `ReEmpty` ICEs closes #65553 r? @pnkfelix
-
由 Mazdak Farrokhzad 提交于
Changed APIT with explicit generic args span to specific arg spans Fixes #65642.
-
由 Mazdak Farrokhzad 提交于
Adjust the tracking issue for `untagged_unions`. Makes https://github.com/rust-lang/rust/issues/55149 the new tracking issue for `untagged_unions`. Closes https://github.com/rust-lang/rust/issues/32836 which is the old tracking issue. r? @varkor
-
由 Mazdak Farrokhzad 提交于
Pre-expansion gate most of the things This is a subset of https://github.com/rust-lang/rust/pull/64672. A crater run has already been done and this PR implements conclusions according to https://github.com/rust-lang/rust/pull/64672#issuecomment-542703363. r? @davidtwco cc @petrochenkov
-
由 Mazdak Farrokhzad 提交于
Deprecated proc_macro doesn't trigger warning on build library Fix #65189
-
由 Mazdak Farrokhzad 提交于
ignore uninhabited non-exhaustive variant fields Fixes #65157. This PR modifies the uninhabitedness checking so that the fields of a non-exhaustive variant (which is not local) are ignored if they are uninhabited. This is an improvement over the previous behaviour which considered all non-local non-exhaustive variants useful because unreachable patterns are now detected. r? @arielb1 cc @varkor
-
由 Mazdak Farrokhzad 提交于
reorder config.toml.example options and add one missing option r? @Mark-Simulacrum
-
由 Mazdak Farrokhzad 提交于
Add long error explanation for E0576 Part of #61137.
-
由 Mazdak Farrokhzad 提交于
Add by-value iterator for arrays This adds an iterator that can iterate over arrays by value, yielding all elements by value. However, **this PR does _not_ add a corresponding `IntoIterator` impl for arrays**. The `IntoIterator` impl needs some discussion about backwards-compatibility that should take place in a separate PR. With this patch, this code should work (but there is currently still a bug): ```rust #![feature(array_value_iter)] use std::array::IntoIter; let arr = [1, 2, 3]; for x in IntoIter::new(arr) { println!("{}", x); } ``` **TODO**: - [x] Get initial feedback - [x] Add tests - [x] Figure out why stage1 produces weird bugs ([comment](https://github.com/rust-lang/rust/pull/62959#issuecomment-516016524)) - [x] Add UI tests as mentioned [here](https://github.com/rust-lang/rust/pull/62959#discussion_r307061894) (will do that soon-ish) - [x] Fix [this new bug](https://github.com/rust-lang/rust/pull/62959#issuecomment-544732159) **Notes for reviewers** - Is the use of `MaybeUninit` correct here? I think it has to be used due to the `Clone` impl which has to fill the dead array elements with something, but cannot fill it with a correct instance. - Are the unit tests sufficient? CC #25725
-
由 Mazdak Farrokhzad 提交于
-
由 Mazdak Farrokhzad 提交于
-
由 Mazdak Farrokhzad 提交于
-
由 bors 提交于
Rollup of 8 pull requests Successful merges: - #65625 (Turn crate store into a resolver output) - #65627 (Forbid non-`structural_match` types in const generics) - #65710 (Update cargo) - #65729 (Update test cases for vxWorks) - #65746 (Tweak format string error to point at arguments always) - #65753 (Don't assert for different instance on impl trait alias) - #65755 (Avoid ICE when adjusting bad self ty) - #65766 (Update hashbrown to 0.6.2) Failed merges: r? @ghost
-
由 Matthew Jasper 提交于
-
由 Mazdak Farrokhzad 提交于
Update hashbrown to 0.6.2 Pulls in rust-lang/hashbrown#119 which should be a good improvement for compile times of hashmap-heavy crates.
-
由 Mazdak Farrokhzad 提交于
Avoid ICE when adjusting bad self ty Fix #65611.
-
由 Mazdak Farrokhzad 提交于
Don't assert for different instance on impl trait alias Closes https://github.com/rust-lang/rust/issues/65679 r? @Centril @nikomatsakis
-
由 Mazdak Farrokhzad 提交于
Tweak format string error to point at arguments always Add secondary span labels with no text to make it clear when there's a mismatch bewteen the positional arguments in a format string and the arguments to the macro. This shouldn't affect experienced users, but it should make it easier for newcomers to more clearly understand how `format!()` and `println!()` are supposed to be used. ``` error: 2 positional arguments in format string, but there is 1 argument --> file8.rs:2:14 | 2 | format!("{} {}", 1); | ^^ ^^ - ``` instead of ``` error: 2 positional arguments in format string, but there is 1 argument --> file8.rs:2:14 | 2 | format!("{} {}", 1); | ^^ ^^ ``` r? @Centril
-
由 Mazdak Farrokhzad 提交于
Update test cases for vxWorks
-
由 Mazdak Farrokhzad 提交于
Update cargo 6 commits in 3a9abe3f065554a7fbc59f440df2baba4a6e47ee..3ba5f27170db10af7a92f2b682e049397197b8fa 2019-10-15 15:55:35 +0000 to 2019-10-22 15:05:18 +0000 - Fix typo in `cargo install --profile` help (rust-lang/cargo#7532) - Use stricter -Z flag parsing. (rust-lang/cargo#7531) - Set timestamp on generated files in archive to now (rust-lang/cargo#7523) - Support rustc's `-Z panic-abort-tests` in Cargo (rust-lang/cargo#7460) - rustfmt for nightly changes. (rust-lang/cargo#7526) - Allow --all-features in root of virtual workspace. (rust-lang/cargo#7525)
-
由 Mazdak Farrokhzad 提交于
Forbid non-`structural_match` types in const generics Fixes https://github.com/rust-lang/rust/issues/60286.
-
由 Mazdak Farrokhzad 提交于
Turn crate store into a resolver output Crate store (`CStore`) is a vector of data (`CrateMetadata`) associated with extern crates loaded during the current compilation session. All crates are loaded in the resolver when resolving either paths pointing to extern prelude or `extern crate` items. (There are also a couple of crates like panic runtime that are loaded kind of like implicit `extern crate`s, but that also happens in resolve.) The use of `CStore` from `rustc_plugin` (which is outside of the resolver) was unnecessary because legacy plugins are not added to the crate store and don't use `CrateNum`s. So, `CStore` can be produced by the resolver instead of being kept in some really global data (`rustc_interface::Compiler`) like now. As a result of crate store being more "local" we can now remove some locks and `Lrc`s.
-
由 Vadim Petrochenkov 提交于
-