rust icon indicating copy to clipboard operation
rust copied to clipboard

Dont consider predicates that may hold as impossible in `is_impossible_associated_item`

Open compiler-errors opened this issue 1 year ago • 6 comments

Use infer vars to account for ambiguities when considering if methods are impossible to instantiate for a given self type. Also while we're at it, let's use the new trait solver instead of evaluate since this is used in rustdoc.

r? lcnr Fixes #131839

compiler-errors avatar Oct 17 '24 16:10 compiler-errors

Out of curiosity due to classic→next:

@bors try @rust-timer queue

fmease avatar Oct 17 '24 17:10 fmease

Awaiting bors try build completion.

@rustbot label: +S-waiting-on-perf

rust-timer avatar Oct 17 '24 17:10 rust-timer

:hourglass: Trying commit 8ff8f78e4ca8a898697412a3895cb3070f161d1e with merge 0b483fef54038b501fb6b2fde558bf31aeb5545a...

bors avatar Oct 17 '24 17:10 bors

:sunny: Try build successful - checks-actions Build commit: 0b483fef54038b501fb6b2fde558bf31aeb5545a (0b483fef54038b501fb6b2fde558bf31aeb5545a)

bors avatar Oct 17 '24 19:10 bors

Queued 0b483fef54038b501fb6b2fde558bf31aeb5545a with parent 3a85d3fa785d95a7b7bcf4f160b67bffba7afd4a, future comparison URL. There is currently 1 preceding artifact in the queue. It will probably take at least ~2.2 hours until the benchmark run finishes.

rust-timer avatar Oct 17 '24 19:10 rust-timer

Finished benchmarking commit (0b483fef54038b501fb6b2fde558bf31aeb5545a): comparison URL.

Overall result: ❌ regressions - please read the text below

Benchmarking this pull request likely means that it is perf-sensitive, so we're automatically marking it as not fit for rolling up. While you can manually mark this PR as fit for rollup, we strongly recommend not doing so since this PR may lead to changes in compiler perf.

Next Steps: If you can justify the regressions found in this try perf run, please indicate this with @rustbot label: +perf-regression-triaged along with sufficient written justification. If you cannot justify the regressions please fix the regressions and do another perf run. If the next run shows neutral or positive results, the label will be automatically removed.

@bors rollup=never @rustbot label: -S-waiting-on-perf +perf-regression

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
0.4% [0.2%, 0.8%] 8
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.4% [0.2%, 0.8%] 8

Max RSS (memory usage)

This benchmark run did not return any relevant results for this metric.

Cycles

This benchmark run did not return any relevant results for this metric.

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 782.574s -> 782.084s (-0.06%) Artifact size: 333.74 MiB -> 333.70 MiB (-0.01%)

rust-timer avatar Oct 17 '24 21:10 rust-timer

I think the overhead is fine.

compiler-errors avatar Oct 18 '24 16:10 compiler-errors

cc @rust-lang/types this enables another use of the new trait solver in rustdoc. We use an empty environment and intercrate mode, so this matches the requirements already imposed by coherence.

@bors r+ rollup=never

lcnr avatar Oct 21 '24 15:10 lcnr

:pushpin: Commit 8ff8f78e4ca8a898697412a3895cb3070f161d1e has been approved by lcnr

It is now in the queue for this repository.

bors avatar Oct 21 '24 15:10 bors

:hourglass: Testing commit 8ff8f78e4ca8a898697412a3895cb3070f161d1e with merge 814df6e50eaf89b90793e7d9618bb60f1f18377a...

bors avatar Oct 21 '24 22:10 bors

:sunny: Test successful - checks-actions Approved by: lcnr Pushing 814df6e50eaf89b90793e7d9618bb60f1f18377a to master...

bors avatar Oct 22 '24 01:10 bors

Finished benchmarking commit (814df6e50eaf89b90793e7d9618bb60f1f18377a): comparison URL.

Overall result: ❌ regressions - please read the text below

Our benchmarks found a performance regression caused by this PR. This might be an actual regression, but it can also be just noise.

Next Steps:

  • If the regression was expected or you think it can be justified, please write a comment with sufficient written justification, and add @rustbot label: +perf-regression-triaged to it, to mark the regression as triaged.
  • If you think that you know of a way to resolve the regression, try to create a new PR with a fix for the regression.
  • If you do not understand the regression or you think that it is just noise, you can ask the @rust-lang/wg-compiler-performance working group for help (members of this group were already notified of this PR).

@rustbot label: +perf-regression cc @rust-lang/wg-compiler-performance

Instruction count

This is the most reliable metric that we have; it was used to determine the overall result at the top of this comment. However, even this metric can sometimes exhibit noise.

mean range count
Regressions ❌
(primary)
0.6% [0.2%, 2.3%] 9
Regressions ❌
(secondary)
0.2% [0.2%, 0.2%] 1
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 0.6% [0.2%, 2.3%] 9

Max RSS (memory usage)

Results (primary -1.2%, secondary 2.3%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
- - 0
Regressions ❌
(secondary)
2.3% [1.4%, 3.0%] 3
Improvements ✅
(primary)
-1.2% [-1.2%, -1.2%] 1
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) -1.2% [-1.2%, -1.2%] 1

Cycles

Results (primary 2.3%)

This is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.

mean range count
Regressions ❌
(primary)
2.3% [2.3%, 2.3%] 1
Regressions ❌
(secondary)
- - 0
Improvements ✅
(primary)
- - 0
Improvements ✅
(secondary)
- - 0
All ❌✅ (primary) 2.3% [2.3%, 2.3%] 1

Binary size

This benchmark run did not return any relevant results for this metric.

Bootstrap: 780.876s -> 781.081s (0.03%) Artifact size: 333.66 MiB -> 333.69 MiB (0.01%)

rust-timer avatar Oct 22 '24 04:10 rust-timer

The small regression was deemed to be acceptable. The syn part of the results is just noise.

@rustbot label: +perf-regression-triaged

Kobzol avatar Oct 29 '24 19:10 Kobzol