Rollup of 4 pull requests - #163139
Rollup of 4 pull requests#163139
Conversation
Account for receivers with arbitrary self types to suggest idiomatic code.
```
error[E0038]: the trait `Fetcher` is not dyn compatible
--> $DIR/undispatchable-receiver-and-wc-references-Self.rs:19:21
|
LL | fn fetcher() -> Box<dyn Fetcher> {
| ^^^^^^^^^^^ `Fetcher` is not dyn compatible
|
note: for a trait to be dyn compatible it needs to allow building a vtable
for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
--> $DIR/undispatchable-receiver-and-wc-references-Self.rs:11:16
|
LL | pub trait Fetcher: Send + Sync {
| ------- this trait is not dyn compatible...
LL | fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
| ^^^^^^^^^^^^^^^^^^^ ...because method `get`'s `self` parameter cannot be dispatched on
help: consider changing method `get`'s `self` parameter to be `&self`
|
LL - fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
LL + fn get<'a>(&'a self) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
|
```
Instead of
```
help: consider changing method `get`'s `self` parameter to be `&self`
|
LL - fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
LL + fn get<'a>(self: &Self) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
|
```
…oyuVanilla
Tweak dyn compatibility error when pointing at receiver
Account for receivers with arbitrary self types to suggest idiomatic code.
```
error[E0038]: the trait `Fetcher` is not dyn compatible
--> $DIR/undispatchable-receiver-and-wc-references-Self.rs:19:21
|
LL | fn fetcher() -> Box<dyn Fetcher> {
| ^^^^^^^^^^^ `Fetcher` is not dyn compatible
|
note: for a trait to be dyn compatible it needs to allow building a vtable
for more information, visit <https://doc.rust-lang.org/reference/items/traits.html#dyn-compatibility>
--> $DIR/undispatchable-receiver-and-wc-references-Self.rs:11:16
|
LL | pub trait Fetcher: Send + Sync {
| ------- this trait is not dyn compatible...
LL | fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
| ^^^^^^^^^^^^^^^^^^^ ...because method `get`'s `self` parameter cannot be dispatched on
help: consider changing method `get`'s `self` parameter to be `&self`
|
LL - fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
LL + fn get<'a>(&'a self) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
|
```
Instead of
```
help: consider changing method `get`'s `self` parameter to be `&self`
|
LL - fn get<'a>(self: &'a Box<Self>) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
LL + fn get<'a>(self: &Self) -> Pin<Box<dyn Future<Output = Vec<u8>> + 'a>>
|
```
…nsafe_cell, r=WaffleLapkin Make CovariantUnsafeCell actually covariant The "test" in `core` was not actually being run, due to core being weird. (filed rust-lang#163045 to track that) The existing mechanism for inserting variance manually was only *priming* the solver, which happened to work for the other two types using this mechanism, but does not work for weakening variance explicitly. I changed this mechanism to additionally prevent the variance from being updated when solving. This blocks rust-lang#159838 r? @WaffleLapkin as the implementor of `CovariantUnsafeCell`
…rcote `rustc_builtin_macros` cleanup, part 5 This PR among other things removes the "mini" version of `Path`, the `nonselflike_args` and most of the usages of `type_ident`. It also comes with some perf gains. Followup to rust-lang#162925. r? @nnethercote
…nwhite normalize normalizes, avoid next-solver hack we changed normalization to actually normalize with the new solver, this is now unnecessary :> r? adwinwhite or sth
|
Rollup of everything. @bors r+ rollup=never p=5 |
This comment has been minimized.
This comment has been minimized.
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing 88638df (parent) -> c4a0daa (this PR) Test differencesShow 30 test diffsStage 1
Stage 2
Additionally, 27 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard c4a0daaae030c07b6839c074364618192dee3873 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (c4a0daa): comparison URL. Overall result: ❌ regressions - no action needed@rustbot label: -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary -2.6%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (primary 3.7%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeResults (primary 0.0%, secondary 0.0%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Bootstrap: 487.826s -> 487.214s (-0.13%) |
|
📌 Perf builds for each rolled up PR:
parent commit: 88638df1e7 In the case of a perf regression, run the following command with the SHAs of each PR you suspect might be the cause: |
Successful merges:
rustc_builtin_macroscleanup, part 5 #163080 (rustc_builtin_macroscleanup, part 5)r? @ghost
Create a similar rollup