Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollup of 11 pull requests #74110

Closed
wants to merge 23 commits into from

Conversation

Manishearth
Copy link
Member

Successful merges:

Failed merges:

r? @ghost

Azhng and others added 23 commits June 29, 2020 16:46
This commit modifies the Place as follow:
* remove 'ty' from ProjectionKind
* add type information into to Projection
* replace 'ty' in Place with 'base_ty'
* introduce 'ty()' in `Place` to return the final type of the `Place`
* introduce `ty_before_projection()` in `Place` to return the type of
  a `Place` before i'th projection is applied

Closes rust-lang/project-rfc-2229#5
Enclose unsafe operations in unsafe blocks
This commit marks temporaries from MIR construction as internal such
that they are skipped in `sanitize_witness` (where each MIR local is
checked to have been contained within the generator interior computed
during typeck). This resolves an ICE whereby the construction of checked
addition introduced a `(u64, bool)` temporary which was not in the HIR
and thus not in the generator interior.

Signed-off-by: David Wood <david@davidtw.co>
to feature(rc_as_ptr)

These were stabilized alongside the Weak versions,
but having `feature = "weak_.."` on a fn definition
for the non-weak pointers is potentially very confusing.
This causes the components of FQN's to behave similarly to other links
in the contents of rustdoc-styled pages.

I (and I hope others at least in part) have found the prior design to be
somewhat confusing, as it is not clear (upon hovering) that the various
parts of the FQN are actually links that the user can navigate to.

In short, this patch makes links in the FQN have an underline when the
user hovers over them, more clearly indicating that they can be used for
navigation.

Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>
Since rust-lang#73374 the rustc wrapper no longer configures debug assertions
based on RUSTC_DEBUG_ASSERTIONS environment variable.
This adds `read_exact_at` and `write_all_at` to WASI's `FileExt`,
similar to the Unix versions of the same names.
This adjusts the return type of Windows' `OpenOptionsExt::security_qos_flags`
to be consistent with the other functions in the trait.
Previously, if there were a module in scope with the same name as the
primitive, that would take precedence. Coupled with
rust-lang#58699, this made it impossible
to link to the primitive when that module was in scope.

This approach could be extended so that `struct@foo` would no longer resolve
to any type, etc. However, it could not be used for glob imports:

```rust
pub mod foo {
  pub struct Bar;
}

pub enum Bar {}
use foo::*;

// This is expected to link to `inner::Bar`, but instead it will link to the enum.
/// Link to [struct@Bar]
pub struct MyDocs;
```

The reason for this is that this change does not affect the resolution
algorithm of rustc_resolve at all. The only reason we could special-case
primitives is because we have a list of all possible primitives ahead of time.
…tsakis

typeck: adding type information to projection

This commit modifies the Place as follow:
* remove 'ty' from ProjectionKind
* add type information into to Projection
* replace 'ty' in Place with 'base_ty'
* introduce 'ty()' in `Place` to return the final type of the `Place`
* introduce `ty_before_projection()` in `Place` to return the type of
  a `Place` before i'th projection is applied

Closes rust-lang/project-rfc-2229#5
…bank

Audit hidden/short code suggestions

Should fix rust-lang#73641.
Audit uses of `span_suggestion_short` and `tool_only_span_suggestion` (`span_suggestion_hidden` is already tested with `run-rustfix`). Leave some FIXMEs for futher improvements/fixes.
r? @estebank
libstd/net/tcp.rs: #![deny(unsafe_op_in_unsafe_fn)]

Enclose unsafe operations in unsafe blocks for net/tcp.rs. Fixes part of rust-lang#73904.
…mp-generator-interior, r=matthewjasper

mir: mark mir construction temporaries as internal

Fixes rust-lang#73914.

This PR marks temporaries from MIR construction as internal such that they are skipped in `sanitize_witness` (where each MIR local is checked to have been contained within the generator interior computed during typeck). This resolves an ICE whereby the construction of checked addition introduced a `(u64, bool)` temporary which was not in the HIR and thus not in the generator interior.

r? @matthewjasper
Move A|Rc::as_ptr from feature(weak_into_raw) to feature(rc_as_ptr)

These were stabilized alongside the Weak versions, but having `feature = "weak_.."` on a fn definition for the non-weak pointers is potentially very misleading, especially in a review context where the impl header may not be immediately visible.

r? @RalfJung
@bors rollup=always
…GuillaumeGomez

rustdoc: Restore underline text decoration on hover for FQN in header

This causes the components of FQN's (e.g. `std`, `net`, and `Ipv4Addr` of the FQN `std::net::Ipv4Addr`) to behave similarly to other links in the contents of rustdoc-styled pages. When the user hovers over them, more clearly indicating that they can be used for navigation.

I (and I hope others at least in part) have found the prior design to be somewhat confusing, as it is not clear (upon hovering) that the various parts of the FQN are actually links that the user can navigate to.

<details><summary>📸 Before, mouse hovered over "net" in the FQN</summary>
<img alt="A rustdoc page with the mouse hovered over the fully-qualified name in the page header, producing no visual change" src="https://user-images.githubusercontent.com/1566689/86538363-4c827000-bebb-11ea-8291-5ea6b85d7e19.png" />
</details>
<details><summary>📸 After, mouse hovered over "net" in the FQN</summary>
<img alt="A rustdoc page with the mouse hovered over the fully-qualified name in the page header, now with an underline showing up under the word hovered over by the mouse" src="https://user-images.githubusercontent.com/1566689/86538471-d3374d00-bebb-11ea-9bb3-7aa2d7a4800b.png" />
</details>
…return-type, r=LukasKalbertodt

Fix the return type of Windows' `OpenOptionsExt::security_qos_flags`.

This adjusts the return type of Windows' `OpenOptionsExt::security_qos_flags`
to be consistent with the other functions in the trait.
…, r=alexcrichton

Add `read_exact_at` and `write_all_at` to WASI's `FileExt`

This adds `read_exact_at` and `write_all_at` to WASI's `FileExt`,
similar to the Unix versions of the same names.
Always resolve type@primitive as a primitive, not a module

Previously, if there were a module in scope with the same name as the
primitive, that would take precedence. Coupled with
rust-lang#58699, this made it impossible
to link to the primitive when that module was in scope.

This approach could be extended so that `struct@foo` would no longer resolve
to any type, etc. However, it could not be used for glob imports:

```rust
pub mod foo {
  pub struct Bar;
}

pub enum Bar {}
use foo::*;

// This is expected to link to `inner::Bar`, but instead it will link to the enum.
/// Link to [struct@Bar]
pub struct MyDocs;
```

The reason for this is that this change does not affect the resolution
algorithm of rustc_resolve at all. The only reason we could special-case
primitives is because we have a list of all possible primitives ahead of time.

Closes rust-lang#74063

r? @Manishearth
…e, r=pietroalbini

Add rust-analyzer to the build manifest

Does not die locally, produces `rust-analyzer-0.1.0-dev-x86_64-unknown-linux-gnu.tar.gz.sha256` and add something about rust-analyzer to some `.toml` file. Seems like a success?
…alfJung

Remove unused RUSTC_DEBUG_ASSERTIONS

Since rust-lang#73374 the rustc wrapper no longer configures debug assertions
based on RUSTC_DEBUG_ASSERTIONS environment variable.

r? @RalfJung
@Manishearth
Copy link
Member Author

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

@rustbot rustbot added the rollup A PR which is a rollup label Jul 6, 2020
@bors
Copy link
Contributor

bors commented Jul 6, 2020

📌 Commit 0eba54f has been approved by Manishearth

@bors bors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jul 6, 2020
@bors
Copy link
Contributor

bors commented Jul 6, 2020

⌛ Testing commit 0eba54f with merge 8af44941675a19ecc18af40793aa14d2884edaf8...

@bors
Copy link
Contributor

bors commented Jul 6, 2020

💔 Test failed - checks-actions

@bors bors added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. and removed S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. labels Jul 6, 2020
@Manishearth
Copy link
Member Author

2020-07-06T20:42:36.3326114Z �[0m�[1m�[33mwarning�[0m�[0m�[1m: dropping unsupported crate type `dylib` for target `wasm32-wasi`�[0m
2020-07-06T20:42:36.3326344Z 
2020-07-06T20:42:37.7271369Z �[0m�[1m�[38;5;9merror[E0308]�[0m�[0m�[1m: mismatched types�[0m
2020-07-06T20:42:37.7281839Z �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0msrc/libstd/sys/wasi/ext/fs.rs:64:32�[0m
2020-07-06T20:42:37.7282253Z �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
2020-07-06T20:42:37.7282727Z �[0m�[1m�[38;5;12m64�[0m�[0m �[0m�[0m�[1m�[38;5;12m| �[0m�[0m            match self.read_at(buf, offset) {�[0m
2020-07-06T20:42:37.7284275Z �[0m   �[0m�[0m�[1m�[38;5;12m| �[0m�[0m                               �[0m�[0m�[1m�[38;5;9m^^^�[0m�[0m �[0m�[0m�[1m�[38;5;9mexpected struct `io::IoSliceMut`, found `u8`�[0m
2020-07-06T20:42:37.7284677Z �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
2020-07-06T20:42:37.7285517Z �[0m   �[0m�[0m�[1m�[38;5;12m= �[0m�[0m�[1mnote�[0m�[0m: expected mutable reference `�[0m�[0m�[1m&mut [io::IoSliceMut<'_>]�[0m�[0m`�[0m
2020-07-06T20:42:37.7285970Z �[0m              found mutable reference `�[0m�[0m�[1m&mut [u8]�[0m�[0m`�[0m
2020-07-06T20:42:37.7286100Z 
2020-07-06T20:42:37.7380412Z �[0m�[1m�[38;5;9merror[E0308]�[0m�[0m�[1m: mismatched types�[0m
2020-07-06T20:42:37.7381049Z �[0m   �[0m�[0m�[1m�[38;5;12m--> �[0m�[0msrc/libstd/sys/wasi/ext/fs.rs:124:33�[0m
2020-07-06T20:42:37.7381402Z �[0m    �[0m�[0m�[1m�[38;5;12m|�[0m
2020-07-06T20:42:37.7381813Z �[0m�[1m�[38;5;12m124�[0m�[0m �[0m�[0m�[1m�[38;5;12m| �[0m�[0m            match self.write_at(buf, offset) {�[0m
2020-07-06T20:42:37.7382717Z �[0m    �[0m�[0m�[1m�[38;5;12m| �[0m�[0m                                �[0m�[0m�[1m�[38;5;9m^^^�[0m�[0m �[0m�[0m�[1m�[38;5;9mexpected struct `io::IoSlice`, found `u8`�[0m
2020-07-06T20:42:37.7383051Z �[0m    �[0m�[0m�[1m�[38;5;12m|�[0m
2020-07-06T20:42:37.7383731Z �[0m    �[0m�[0m�[1m�[38;5;12m= �[0m�[0m�[1mnote�[0m�[0m: expected reference `�[0m�[0m�[1m&[io::IoSlice<'_>]�[0m�[0m`�[0m
2020-07-06T20:42:37.7384102Z �[0m               found reference `�[0m�[0m�[1m&[u8]�[0m�[0m`�[0m
2020-07-06T20:42:37.7384212Z 
2020-07-06T20:42:37.8993146Z �[0m�[1m�[38;5;9merror�[0m�[0m�[1m: aborting due to 2 previous errors; 1 warning emitted�[0m
2020-07-06T20:42:37.8993383Z 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
rollup A PR which is a rollup S-waiting-on-review Status: Awaiting review from the assignee but also interested parties.
Projects
None yet
Development

Successfully merging this pull request may close these issues.