Skip to content

Rollup of 6 pull requests - #98347

Closed
Dylan-DPC wants to merge 19 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-0y34d27
Closed

Rollup of 6 pull requests#98347
Dylan-DPC wants to merge 19 commits into
rust-lang:masterfrom
Dylan-DPC:rollup-0y34d27

Conversation

@Dylan-DPC

Copy link
Copy Markdown
Member

Successful merges:

Failed merges:

r? @ghost
@rustbot modify labels: rollup

Create a similar rollup

lcnrand others added 19 commits June 8, 2022 12:41
Add `struct FileTimes` to contain the relevant file timestamps, since
most platforms require setting all of them at once. (This also allows
for future platform-specific extensions such as setting creation time.)
Add `File::set_file_time` to set the timestamps for a `File`.
Implement the `sys` backends for UNIX, macOS (which needs to fall back
to `futimes` before macOS 10.13 because it lacks `futimens`), Windows,
and WASI.
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
Arms are about TAIT and RPIT, as the variants clearly show.
…=jsha
Add macro support in jump to definition feature
Fixesrust-lang#91174.
To do so, I check if the span comes from an expansion, and if so, I infer the original macro `DefId` or `Span` depending if it's a defined in the current crate or not.
There is one limitation due to macro expansion though:
```rust
macro_rules! yolo { () => {}}
fn foo() {
yolo!();
}
```
In `foo`, `yolo!` won't be linked because after expansion, it is replaced by nothing (which seems logical). So I can't get an item from the `Visitor` from which I could tell if its `Span` comes from an expansion.
I added a test for this specific limitation alongside others.
Demo: https://rustdoc.crud.net/imperio/macro-jump-to-def/src/foo/check-source-code-urls-to-def-std.rs.html
As for the empty macro issue that cannot create a jump to definition, you can see it [here](https://rustdoc.crud.net/imperio/macro-jump-to-def/src/foo/check-source-code-urls-to-def-std.rs.html#35).
r? ``@jyn514``
lub: don't bail out due to empty binders
allows for the following to compile. The equivalent code using `struct Wrapper<'upper>(fn(&'upper ());` already compiles on stable.
```rust
let _: fn(&'upper ()) = match v {
true => lt_in_fn::<'a>(),
false => lt_in_fn::<'b>(),
};
```
see https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=7034a677190110941223cafac6632f70 for a complete example
r? ``@rust-lang/types``
…impl-nll, r=cjgillot
Give name if anonymous region appears in impl signature
Fixesrust-lang#98170
We probably should remove the two unwraps in [`report_general_error`](https://doc.rust-lang.org/nightly/nightly-rustc/src/rustc_borrowck/diagnostics/region_errors.rs.html#683-685), but I have no idea what to provide if those regions are missing, so I've kept those in. Let me know if I should try harder to remove those.
Support setting file accessed/modified timestamps
Add `struct FileTimes` to contain the relevant file timestamps, since
most platforms require setting all of them at once. (This also allows
for future platform-specific extensions such as setting creation time.)
Add `File::set_file_time` to set the timestamps for a `File`.
Implement the `sys` backends for UNIX, macOS (which needs to fall back
to `futimes` before macOS 10.13 because it lacks `futimens`), Windows,
and WASI.
…rrors
Add a full regression test for rust-lang#73727Closesrust-lang#73727
This also moves a test to the `issues` directory as it's also tested on the adt_const_params feature.
r? ``@compiler-errors``
Signed-off-by: Yuki Okushi <jtitor@2k36.org>
…t, r=oli-obk
This comment is out dated and misleading, the arm is about TAITs
r? ``@oli-obk``
``@oli-obk`` unsure if you want to add a different comment of some sort.
``@bors`` rollup=always
@rustbotrustbot added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. T-libs Relevant to the library team, which will review and decide on the PR/issue. T-rustdoc Relevant to the rustdoc team, which will review and decide on the PR/issue. rollup A PR which is a rollup labels Jun 21, 2022
@Dylan-DPC

Copy link
Copy Markdown
MemberAuthor

@bors r+ rollup=never p=5

@bors

bors commented Jun 21, 2022

Copy link
Copy Markdown
Collaborator

📌 Commit 9bf095d has been approved by Dylan-DPC

@borsbors added the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jun 21, 2022
@bors

bors commented Jun 21, 2022

Copy link
Copy Markdown
Collaborator

⌛ Testing commit 9bf095d with merge 9d30b81ca309ab1adcb0048cf530e4f09fa78bad...

@bors

bors commented Jun 21, 2022

Copy link
Copy Markdown
Collaborator

💔 Test failed - checks-actions

@borsbors removed the S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. label Jun 21, 2022
@borsbors added the S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. label Jun 21, 2022
@rust-log-analyzer

Copy link
Copy Markdown
Collaborator

The job x86_64-apple-2 failed! Check out the build log: (web)(plain)

Click to see the possible cause of the failure (guessed by this bot)
 Memory: 14 GB
System Firmware Version: VMW71.00V.13989454.B64.1906190538
Apple ROM Info: [MS_VM_CERT/SHA1/27d66596a61c48dd3dc7216fd715126e33f59ae7]Welcome to the Virtual Machine
SMC Version (system): 2.8f0
Serial Number (system): VM/nlACvQ1R9
Provisioning UDID: 4203018E-580F-C1B5-9525-B745CECA79EB
hw.ncpu: 3
hw.byteorder: 1234
---
Compiling addr2line v0.16.0
[RUSTC-TIMING] addr2line test:false 1.015
[RUSTC-TIMING] gimli test:false 12.157
[RUSTC-TIMING] object test:false 10.355
error: expected one of `async`, `move`, `|`, or `||`, found `DLSYM`
|
75 | / pub(crate) macro dlsym {
76 | | (fn $name:ident($($t:ty),*) -> $ret:ty) => (
76 | | (fn $name:ident($($t:ty),*) -> $ret:ty) => (
77 | | dlsym!(fn $name($($t),*) -> $ret, stringify!($name));
78 | | ),
78 | | ),
79 | | (fn $name:ident($($t:ty),*) -> $ret:ty, $sym:expr) => (
80 | | static DLSYM: DlsymWeak<unsafe extern "C" fn($($t),*) -> $ret> =
| | ^^^^^ expected one of `async`, `move`, `|`, or `||`
83 | | )
84 | | }
| | -
| | |
| | |
| |_in this expansion of `weak!` (#1)
| in this expansion of `dlsym!` (#2)
::: library/std/src/sys/unix/fs.rs:1073:36
|
|
1073 | let futimens = weak!(fn futimens(c_int, *const libc::timespec) -> c_int);
|
= note: the macro call doesn't expand to an expression, but it can expand to a statement
= note: the macro call doesn't expand to an expression, but it can expand to a statement
help: add `;` to interpret the expansion as a statement
|
77 | dlsym!(fn $name($($t),*) -> $ret, stringify!($name));;
error: trailing semicolon in macro used in expression position
--> library/std/src/sys/unix/weak.rs:77:62
|
|
75 | / pub(crate) macro dlsym {
76 | | (fn $name:ident($($t:ty),*) -> $ret:ty) => (
77 | | dlsym!(fn $name($($t),*) -> $ret, stringify!($name));
78 | | ),
... |
83 | | )
84 | | }
84 | | }
| |_- in this expansion of `weak!`
|
::: library/std/src/sys/unix/fs.rs:1073:36
|
1073 | let futimens = weak!(fn futimens(c_int, *const libc::timespec) -> c_int);
|
|
= note: `-D semicolon-in-expressions-from-macros` implied by `-D warnings`
= note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
error[E0308]: mismatched types
--> library/std/src/sys/unix/fs.rs:1077:54
--> library/std/src/sys/unix/fs.rs:1077:54
|
1077 | ... let timevals = [ts_to_tv(times.0[0]), ts_to_tv(times.0[1])];
| | |
| | expected `&timespec`, found struct `timespec`
| | help: consider borrowing here: `&times.0[0]`
| arguments to this function are incorrect
| arguments to this function are incorrect
|
note: function defined here
--> library/std/src/sys/unix/fs.rs:1069:20
|
1069 | fn ts_to_tv(ts: &libc::timespec) -> libc::timeval {
error[E0308]: mismatched types
--> library/std/src/sys/unix/fs.rs:1077:76
|
|
1077 | ... let timevals = [ts_to_tv(times.0[0]), ts_to_tv(times.0[1])];
| | |
| | expected `&timespec`, found struct `timespec`
| | help: consider borrowing here: `&times.0[1]`
| arguments to this function are incorrect
| arguments to this function are incorrect
|
note: function defined here
--> library/std/src/sys/unix/fs.rs:1069:20
|
1069 | fn ts_to_tv(ts: &libc::timespec) -> libc::timeval {
error[E0308]: mismatched types
--> library/std/src/sys/unix/fs.rs:1070:65
|
|
1070 | libc::timeval { tv_sec: ts.tv_sec, tv_usec: ts.tv_nsec / 1000 }
| ^^^^^^^^^^^^^^^^^ expected `i32`, found `i64`
For more information about this error, try `rustc --explain E0308`.
[RUSTC-TIMING] std test:false 3.894
error: could not compile `std` due to 5 previous errors
Build completed unsuccessfully in 0:01:05

@JohnTitor

Copy link
Copy Markdown
Member

Failed by #98246, closing.

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

rollupA PR which is a rollupS-waiting-on-reviewStatus: Awaiting review from the assignee but also interested parties.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.T-libsRelevant to the library team, which will review and decide on the PR/issue.T-rustdocRelevant to the rustdoc team, which will review and decide on the PR/issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants

@Dylan-DPC@bors@rust-log-analyzer@JohnTitor@rustbot@lcnr@GuillaumeGomez@joshtriplett@compiler-errors@spastorino