- 05 7月, 2022 12 次提交
-
-
由 bors 提交于
interpret: track place alignment together with the type, not the value This matches how I handle alignment in [MiniRust](https://github.com/RalfJung/minirust). I think it makes conceptually a lot more sense. Fixes https://github.com/rust-lang/rust/issues/63085 r? `@oli-obk`
-
由 bors 提交于
Rollup of 8 pull requests Successful merges: - #98738 (Clarify MIR semantics of checked binary operations) - #98782 (Improve spans for specialization error) - #98793 (Lint against executable files in the root directory) - #98814 (rustdoc: Censor certain complex unevaluated const exprs) - #98878 (add more `rustc_pass_by_value`) - #98879 (Fix "wrap closure in parenthesis" suggestion for `async` closure) - #98886 (incr.comp.: Make split-dwarf commandline options [TRACKED].) - #98898 (Add "no-div-regex" eslint rule) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
-
由 Matthias Krüger 提交于
Add "no-div-regex" eslint rule r? `@Dylan-DPC`
-
由 Matthias Krüger 提交于
incr.comp.: Make split-dwarf commandline options [TRACKED]. This commandline options have an influence on the contents of object files (and .dwo files), so they need to be `[TRACKED]`. r? `@davidtwco`
-
由 Matthias Krüger 提交于
Fix "wrap closure in parenthesis" suggestion for `async` closure Fixes #98023
-
由 Matthias Krüger 提交于
add more `rustc_pass_by_value` r? ```@oli-obk``` cc #98766
-
由 Matthias Krüger 提交于
rustdoc: Censor certain complex unevaluated const exprs Fixes #97933. This is more of a hotfix for the aforementioned issue. By that, I mean that my proposed patch is not the best solution but one that does not change as much existing code. It treats symptoms rather than the root cause. This PR “censors” certain complex unevaluated constant expressions like `match`es, blocks, function calls, struct literals etc. by pretty-printing them as `_` / `{ _ }` (number and string literals, paths and `()` are still printed as one would expect). Resorting to this placeholder is preferable to printing the full expression verbatim since they can be quite large and verbose resulting in an unreadable mess in the generated documentation. Further, mindlessly printing the const would leak private and `doc(hidden)` struct fields (#97933), at least in the current stable & nightly implementations which rely on `span_to_snippet` (!) and `rustc_hir_pretty::id_to_string`. The censoring of _verbose_ expressions is probably going to stay longer term. However, in regards to private and `doc(hidden)` struct fields, I have a more proper fix in mind which I have already partially implemented locally and for which I am going to open a separate PR sometime soon. For that, I was already in contact with `@GuillaumeGomez.` The proper fix involves rustdoc not falling back on pretty-printing unevaluated consts so easily (what this PR is concerned about) and instead preferring to print evaluated consts which contain more information allowing it to selectively hide private and `doc(hidden)` fields, create hyperlinks etc. generally making the output more granular and precise (compared to the brutal `_` placeholder). Unfortunately, I was a bit too late and the issue just hit stable (1.62). Should this be backported to beta or even a potential 1.62.1? r? `@GuillaumeGomez`
-
由 Matthias Krüger 提交于
Lint against executable files in the root directory This avoids accidental introduction (such as in #97488) of executable files into the root directory, not just under library/, src/ or compiler/. Resolves #98792
-
由 Matthias Krüger 提交于
Improve spans for specialization error Fixes #98777
-
由 Matthias Krüger 提交于
Clarify MIR semantics of checked binary operations
-
由 bors 提交于
interpret: don't rely on ScalarPair for overflowed arithmetic This is for https://github.com/rust-lang/rust/pull/97861. Cc `@EddyB` I would like to avoid making this depend on `dest.layout.abi` to avoid a branch that we are not usually covering both sides of. Though OTOH this seems like fairly straight-forward code. But let's benchmark this option first to see how bad that extra `force_allocation` really is.
-
-
- 04 7月, 2022 28 次提交
-
-
由 bors 提交于
adapt native-link-modifier-bundle test to use llvm-nm No functional changes intended. This updates the test case to use `llvm-nm` as an alternative to https://github.com/rust-lang/rust/pull/98424. This fixes a test failure over at the experimental build of rustc with HEAD LLVM: https://buildkite.com/llvm-project/rust-llvm-integrate-prototype/builds/11144#01814d0f-a46a-4c19-91cf-41e720edb6f9/684-691. The issue is that this test uses the system nm, which may not be recent enough to understand the bitcode produced by rustc when compiled against HEAD LLVM. Similar to what we did for another test in https://github.com/rust-lang/rust/pull/94023.
-
由 Guillaume Gomez 提交于
-
由 Ralf Jung 提交于
-
由 Ralf Jung 提交于
-
由 Krasimir Georgiev 提交于
-
由 bors 提交于
Only obey optimize-tests flag on UI tests that are run-pass stage1 UI tests walltime on my machine: ``` optimize-tests = false, master 25.98s optimize-tests = true, master 34.69s optimize-tests = true, patched 28.79s ``` Effects: - faster UI tests - llvm asserts get exercised less on build-pass tests - the difference between opt and nopt builds shrinks a bit - aux libs don't get optimized since they don't have a pass mode and almost never have explicit compile flags
-
由 Michael Woerister 提交于
-
由 bors 提交于
fully move dropck to mir r? `@oli-obk`
-
由 lcnr 提交于
-
由 Michael Goulet 提交于
-
由 lcnr 提交于
-
由 bors 提交于
Rollup of 5 pull requests Successful merges: - #98501 (rustc_passes/src/entry.rs: De-duplicate more code with `fn throw_attr_err()`) - #98774 (rustdoc: make source sidebar toggle a real button) - #98806 (Fix long declaration trailing whitespace) - #98823 (Fix rust-call ICE in mir-inliner) - #98870 (Add regression test for #86784) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
-
由 Matthias Krüger 提交于
Add regression test for #86784 closes #86784
-
由 Matthias Krüger 提交于
Fix rust-call ICE in mir-inliner Fixes #98821 r? ``@cjgillot``
-
由 Matthias Krüger 提交于
Fix long declaration trailing whitespace Fixes https://github.com/rust-lang/rust/issues/98803. Interestingly enough, it even simplifies the code a bit. r? `@notriddle`
-
由 Matthias Krüger 提交于
rustdoc: make source sidebar toggle a real button This fixes tab focus, so that you can open and close the sidebar from keyboard. This should cause no visible change in appearance at all. The only way you'd know anything different is if you tried to use keyboard controls to open the source code file navigation sidebar. Separated out from #98772
-
由 Matthias Krüger 提交于
rustc_passes/src/entry.rs: De-duplicate more code with `fn throw_attr_err()` So we can more easily re-use the code for other attributes later. More specifically [`#[unix_sigpipe]`](https://github.com/rust-lang/rust/pull/97802). This refactoring is covered by this test: https://github.com/rust-lang/rust/blob/8aab472d52ba7314dc193c73abcd384e2586123c/src/test/ui/feature-gates/issue-43106-gating-of-builtin-attrs-error.rs#L120 (Well, only `#[start]`, but the code for `#[rustc_main]` is identical.)
-
由 bors 提交于
Revert #95993 fix This reverts the temporary fix implemented by https://github.com/rust-lang/rust/pull/95993 since a permanent fix has been implemented by https://github.com/rust-lang/cargo/pull/10594 Fixes https://github.com/rust-lang/rust/issues/98728
-
由 Takayuki Maeda 提交于
-
由 bors 提交于
Don't use match-destructuring for derived ops on structs. r? `@scottmcm`
-
由 Nicholas Nethercote 提交于
All derive ops currently use match-destructuring to access fields. This is reasonable for enums, but sub-optimal for structs. E.g.: ``` fn eq(&self, other: &Point) -> bool { match *other { Self { x: ref __self_1_0, y: ref __self_1_1 } => match *self { Self { x: ref __self_0_0, y: ref __self_0_1 } => (*__self_0_0) == (*__self_1_0) && (*__self_0_1) == (*__self_1_1), }, } } ``` This commit changes derive ops on structs to use field access instead, e.g.: ``` fn eq(&self, other: &Point) -> bool { self.x == other.x && self.y == other.y } ``` This is faster to compile, results in smaller binaries, and is simpler to generate. Unfortunately, we have to keep the old pattern generating code around for `repr(packed)` structs because something like `&self.x` (which doesn't show up in `PartialEq` ops, but does show up in `Debug` and `Hash` ops) isn't allowed. But this commit at least changes those cases to use let-destructuring instead of match-destructuring, e.g.: ``` fn hash<__H: ::core::hash::Hasher>(&self, state: &mut __H) -> () { { let Self(ref __self_0_0) = *self; { ::core::hash::Hash::hash(&(*__self_0_0), state) } } } ``` There are some unnecessary blocks remaining in the generated code, but I will fix them in a follow-up PR.
-
由 Nicholas Nethercote 提交于
Remove an out-of-date sentence, and fix a typo.
-
由 Nicholas Nethercote 提交于
-
由 bors 提交于
Rollup of 4 pull requests Successful merges: - #94831 (Link to stabilization section in std-dev-guide for library tracking issue template) - #98764 (add Miri to the nightly docs) - #98773 (rustdoc: use <details> tag for the source code sidebar) - #98799 (Fix bug in `rustdoc -Whelp`) Failed merges: r? `@ghost` `@rustbot` modify labels: rollup
-
由 Ralf Jung 提交于
Fix bug in `rustdoc -Whelp` Previously, this printed the debugging options, not the lint options, and only handled `-Whelp`, not `-A/-D/-F`. This also fixes a few other misc issues: - Fix `// check-stdout` for UI tests; previously it only worked for run-fail and compile-fail tests - Add lint headers for tool lints, not just builtin lints https://github.com/rust-lang/rust/pull/98533#issuecomment-1172004197 r? ```@GuillaumeGomez```
-
由 Ralf Jung 提交于
rustdoc: use <details> tag for the source code sidebar This fixes the extremely poor accessibility of the old system, making it possible to navigate the sidebar by keyboard, and also implicitly gives the sidebar items the correct ARIA roles. Split out separately from #98772
-
由 Ralf Jung 提交于
add Miri to the nightly docs This is a follow-up to https://github.com/rust-lang/rust/pull/97773 and to https://github.com/rust-lang/rust/pull/98714 It adds miri to the doc.rust-lang.org/nightly/nightly-rustc](https://doc.rust-lang.org/nightly/nightly-rustc/
-
由 Ralf Jung 提交于
Link to stabilization section in std-dev-guide for library tracking issue template This shouldn't land until https://github.com/rust-lang/std-dev-guide/pull/32 is merged.
-