Skip to content

Rollup of 13 pull requests - #77004

Merged
bors merged 36 commits into
rust-lang:masterfrom
RalfJung:rollup-usac4nv
Sep 21, 2020
Merged

Rollup of 13 pull requests#77004
bors merged 36 commits into
rust-lang:masterfrom
RalfJung:rollup-usac4nv

Conversation

@RalfJung

Copy link
Copy Markdown
Member

Successful merges:

Failed merges:

r? @ghost

zzau13and others added 30 commits September 17, 2020 10:27
Update the tracking issue number
Updated the documentation for `UnsafeCell`
Address review comments
Address more review comments + minor changes
- Allow including defaults in `src/bootstrap/defaults` using `profile = "..."`
- Add default config files
- Combine config files using the merge dependency.
- Add comments to default config files
- Add a README asking to open an issue if the defaults are bad
- Give a loud error if trying to merge `.target`, since it's not
currently supported
- Use an exhaustive match
- Use `<none>` in config.toml.example to avoid confusion
- Fix bugs in `Merge` derives
Previously, it would completely ignore the profile defaults if there
were any settings in `config.toml`. I sent an email to the `merge` maintainer
asking them to make the behavior in this commit the default.
This introduces a new dependency on `merge` that hasn't yet been vetted.
I want to improve the output when `include = "x"` isn't found:
```
thread 'main' panicked at 'fs::read_to_string(&file) failed with No such file or directory (os error 2) ("configuration file did not exist")', src/bootstrap/config.rs:522:28
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
failed to run: /home/joshua/rustc/build/bootstrap/debug/bootstrap test tidy
Build completed unsuccessfully in 0:00:00
```
However that seems like it could be fixed in a follow-up.
Stabilize the following methods of `Option` as const:
- `is_some`
- `is_none`
- `as_ref`
Possible because of stabilization of rust-lang#49146 (Allow if and match in constants).
Update the test `redundant_pattern_matching`: check if `is_some` and `is_none` are suggested within const contexts.
Removes `can_suggest` from as it is no longer used.
Reverts rust-clippy#5724.
Stabilize some Option methods as const
Stabilize the following methods of `Option` as const:
- `is_some`
- `is_none`
- `as_ref`
These methods are currently const under the unstable feature `const_option` (tracking issue: rust-lang#67441).
I believe these methods to be eligible for stabilization because of the stabilization of rust-lang#49146 (Allow if and match in constants) and the trivial implementations, see also: [PR#75463](rust-lang#75463).
Related: rust-lang#76225
…-Simulacrum
Add sample defaults for config.toml
- Allow including defaults in `src/bootstrap/defaults` using `profile = "..."`.
- Add default config files, with a README noting they're experimental and asking you to open an issue if you run into trouble. The config files have comments explaining why the defaults are set.
- Combine config files using the `merge` dependency.
This introduces a new dependency on `merge` that hasn't yet been vetted.
I want to improve the output when `include = "x"` isn't found:
```
thread 'main' panicked at 'fs::read_to_string(&file) failed with No such file or directory (os error 2) ("configuration file did not exist")', src/bootstrap/config.rs:522:28
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
failed to run: /home/joshua/rustc/build/bootstrap/debug/bootstrap test tidy
Build completed unsuccessfully in 0:00:00
```
However that seems like it could be fixed in a follow-up.
Closesrust-lang#76619
Avoiding unnecesary allocations at rustc_errors
Simplify the code avoiding allocations with easy alternative
…=jyn514
Use intra-doc links in core/src/iter when possible
Helps with rust-lang#75080.
I also updated lots of links to use `fn()` instead of `fn` when possible.
@rustbot modify labels: T-doc A-intra-doc-links
r? @jyn514
…jyn514
Finish moving to intra doc links for std::sync
Helps with rust-lang#75080.
@rustbot modify labels: T-doc A-intra-doc-links
r? @jyn514
…eddyb
Remove DeclareMethods
Most of the `DeclareMethods` API was only used internally by rustc_codegen_llvm. As such, it makes no sense to require other backends to implement them.
(`get_declared_value` and `declare_cfn` were used, in one place, specific to the `main` symbol, which I've replaced with a more specialized function to allow more flexibility in implementation - the intent is that `declare_c_main` can go away once we do something more clever, e.g. @eddyb has ideas around having a MIR shim or somesuch we can explore in a follow-up PR)
…mut, r=RalfJung
Add non-`unsafe` `.get_mut()` for `Unsafecell`
- Tracking issue: rust-lang#76943
As discussed in: https://internals.rust-lang.org/t/add-non-unsafe-get-mut-for-unsafecell/12407
- ### [Rendered documentation](https://modest-dubinsky-1f9f47.netlify.app/core/cell/struct.unsafecell)
This PR tries to move the sound `&mut UnsafeCell<T> -> &mut T` projection that all the "downstream" constructions were already relying on, up to the root abstraction, where it rightfully belongs, and officially blessing it.
- this **helps reduce the amount of `unsafe` snippets out there** (_c.f._, the second commit of this PR: rust-lang@09503fd)
The fact that this getter is now expose for `UnsafeCell<T>` itself, will also help convey the idea that **`UnsafeCell` is not magical _w.r.t._ `&mut` accesses**, contrary to what some people incorrectly think.
- Even the standard library itself at some point had such a confusion, _c.f._ this comment where there is a mention of multi-threaded (and thus _shared_) access despite dealing with exclusive references over unique ownership: https://github.com/rust-lang/rust/blob/59fb88d061544a035f3043b47594b34789204cee/library/core/src/cell.rs#L498-L499
r? @RalfJung
Replace manual as_nanos and as_secs_f64 reimplementations
Replace write_fmt with write!
Latter is simpler
update Miri
I'd like to get rust-lang/miri#1556 out there to avoid some backwards-incompatible changes.
r? @ghost Cc @rust-lang/miri
@RalfJung

Copy link
Copy Markdown
MemberAuthor

@rustbot modify labels: +rollup
@bors r+ rollup=never p=13

@bors

bors commented Sep 21, 2020

Copy link
Copy Markdown
Collaborator

📌 Commit d337074 has been approved by RalfJung

@rustbotrustbot added the rollup A PR which is a rollup label Sep 21, 2020
@borsbors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Sep 21, 2020
@bors

bors commented Sep 21, 2020

Copy link
Copy Markdown
Collaborator

⌛ Testing commit d337074 with merge 956e06c...

@bors

bors commented Sep 21, 2020

Copy link
Copy Markdown
Collaborator

☀️ Test successful - checks-actions, checks-azure
Approved by: RalfJung
Pushing 956e06c to master...

@borsbors added the merged-by-bors This PR was explicitly merged by bors. label Sep 21, 2020
@bors
bors merged commit 956e06c into rust-lang:masterSep 21, 2020
@rustbotrustbot added this to the 1.48.0 milestone Sep 21, 2020
@RalfJung
RalfJung deleted the rollup-usac4nv branch September 21, 2020 13:26
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merged-by-borsThis PR was explicitly merged by bors.rollupA PR which is a rollupS-waiting-on-borsStatus: Waiting on bors to run and complete tests. Bors will change the label on completion.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

11 participants

@RalfJung@bors@rustbot@zzau13@poliorcetics@khyperia@est31@bugadani@danielhenrymantilla@jyn514@CDirkx