Highlight conflicting param-env candidates#98794
Conversation
|
(rust-highfive has picked a reviewer for you, use r? to override) |
5216d07 to
937fda5
Compare
There was a problem hiding this comment.
| Ok(span) => spans.push(self.tcx.sess.source_map().guess_head_span(span)), | |
| Ok(span) => spans.push(span), |
You shouldn't need guess_head_span any more.
There was a problem hiding this comment.
Why isn't it needed anymore?
There was a problem hiding this comment.
@michaelwoerister, cjgillot changed the def_span (and thus span_of_impl) to point to the head span by default, so guess_head_span is redundant.
|
Is this blocked on #98869? |
|
Feel free to r=me, otherwise. |
|
☔ The latest upstream changes (presumably #98987) made this pull request unmergeable. Please resolve the merge conflicts. |
937fda5 to
424a0e6
Compare
|
@bors r=michaelwoerister |
|
📌 Commit 424a0e66bb12d1aa3d121d4d00afbdb244677297 has been approved by It is now in the queue for this repository. |
|
Shoot, mixed two of my PRs, lol. @bors r- |
424a0e6 to
b869997
Compare
|
There we go. @bors r=michaelwoerister |
|
📌 Commit b869997c4ca2a0e516ff0567bfdbfbeddc956443 has been approved by It is now in the queue for this repository. |
|
@bors r- |
b869997 to
0813525
Compare
|
I will be patient and wait until CI is green. |
|
@bors r+ |
Rollup of 4 pull requests Successful merges: - rust-lang#98533 (Add a `-Zdump-drop-tracking-cfg` debugging flag) - rust-lang#98654 (An optimization for `pest-2.1.3`) - rust-lang#98657 (Migrate some diagnostics from `rustc_const_eval` to `SessionDiagnostic`) - rust-lang#98794 (Highlight conflicting param-env candidates) Failed merges: - rust-lang#98957 ( don't allow ZST in ScalarInt ) r? `@ghost` `@rustbot` modify labels: rollup
Revert "Highlight conflicting param-env candidates" This reverts rust-lang#98794, commit 0813525. Seems to have caused an incremental compilation bug. The root cause of the incr comp bug is somewhat unrelated but is triggered by this PR, so I don't feel comfortable with having this PR in the codebase until it can be investigated further. Fixes rust-lang#99233.
…env-2, r=estebank Highlight conflicting param-env candidates, again Un-reverts rust-lang#98794 (i.e. reverts rust-lang#99290). The previous time I attempted to land this PR, it was because of an incremental issue (rust-lang#99233). The repro instructions in the issue is no longer manifest the ICE -- I think it's because this ambiguity code was refactored (I think by `@lcnr)` to no longer store the ambiguities in the fulfillment error, but instead recompute them on the fly. The main motivation for trying to re-land this is that it fixes rust-lang#105131 by highlighting the root-cause of the issue, which is conflicting param-env candidates: ``` error[E0283]: type annotations needed: cannot satisfy `Self: Gen<'source>` | note: multiple `impl`s or `where` clauses satisfying `Self: Gen<'source>` found --> $DIR/conflicting-bounds.rs:3:1 | LL | pub trait Gen<'source> { | ^^^^^^^^^^^^^^^^^^^^^^ ... LL | Self: for<'s> Gen<'s, Output = T>; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error For more information about this error, try `rustc --explain E0283`. ``` Fixes rust-lang#105131. Fixes (again) rust-lang#98786
…env-2, r=estebank Highlight conflicting param-env candidates, again Un-reverts rust-lang#98794 (i.e. reverts rust-lang#99290). The previous time I attempted to land this PR, it was because of an incremental issue (rust-lang#99233). The repro instructions in the issue is no longer manifest the ICE -- I think it's because this ambiguity code was refactored (I think by ``@lcnr)`` to no longer store the ambiguities in the fulfillment error, but instead recompute them on the fly. The main motivation for trying to re-land this is that it fixes rust-lang#105131 by highlighting the root-cause of the issue, which is conflicting param-env candidates: ``` error[E0283]: type annotations needed: cannot satisfy `Self: Gen<'source>` | note: multiple `impl`s or `where` clauses satisfying `Self: Gen<'source>` found --> $DIR/conflicting-bounds.rs:3:1 | LL | pub trait Gen<'source> { | ^^^^^^^^^^^^^^^^^^^^^^ ... LL | Self: for<'s> Gen<'s, Output = T>; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error For more information about this error, try `rustc --explain E0283`. ``` Fixes rust-lang#105131. Fixes (again) rust-lang#98786
…env-2, r=estebank Highlight conflicting param-env candidates, again Un-reverts rust-lang#98794 (i.e. reverts rust-lang#99290). The previous time I attempted to land this PR, it was because of an incremental issue (rust-lang#99233). The repro instructions in the issue is no longer manifest the ICE -- I think it's because this ambiguity code was refactored (I think by `@lcnr)` to no longer store the ambiguities in the fulfillment error, but instead recompute them on the fly. The main motivation for trying to re-land this is that it fixes rust-lang#105131 by highlighting the root-cause of the issue, which is conflicting param-env candidates: ``` error[E0283]: type annotations needed: cannot satisfy `Self: Gen<'source>` | note: multiple `impl`s or `where` clauses satisfying `Self: Gen<'source>` found --> $DIR/conflicting-bounds.rs:3:1 | LL | pub trait Gen<'source> { | ^^^^^^^^^^^^^^^^^^^^^^ ... LL | Self: for<'s> Gen<'s, Output = T>; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error For more information about this error, try `rustc --explain E0283`. ``` Fixes rust-lang#105131. Fixes (again) rust-lang#98786
…env-2, r=estebank Highlight conflicting param-env candidates, again Un-reverts rust-lang#98794 (i.e. reverts rust-lang#99290). The previous time I attempted to land this PR, it was because of an incremental issue (rust-lang#99233). The repro instructions in the issue is no longer manifest the ICE -- I think it's because this ambiguity code was refactored (I think by ``@lcnr)`` to no longer store the ambiguities in the fulfillment error, but instead recompute them on the fly. The main motivation for trying to re-land this is that it fixes rust-lang#105131 by highlighting the root-cause of the issue, which is conflicting param-env candidates: ``` error[E0283]: type annotations needed: cannot satisfy `Self: Gen<'source>` | note: multiple `impl`s or `where` clauses satisfying `Self: Gen<'source>` found --> $DIR/conflicting-bounds.rs:3:1 | LL | pub trait Gen<'source> { | ^^^^^^^^^^^^^^^^^^^^^^ ... LL | Self: for<'s> Gen<'s, Output = T>; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error For more information about this error, try `rustc --explain E0283`. ``` Fixes rust-lang#105131. Fixes (again) rust-lang#98786
…env-2, r=estebank Highlight conflicting param-env candidates, again Un-reverts rust-lang#98794 (i.e. reverts rust-lang#99290). The previous time I attempted to land this PR, it was because of an incremental issue (rust-lang#99233). The repro instructions in the issue is no longer manifest the ICE -- I think it's because this ambiguity code was refactored (I think by ```@lcnr)``` to no longer store the ambiguities in the fulfillment error, but instead recompute them on the fly. The main motivation for trying to re-land this is that it fixes rust-lang#105131 by highlighting the root-cause of the issue, which is conflicting param-env candidates: ``` error[E0283]: type annotations needed: cannot satisfy `Self: Gen<'source>` | note: multiple `impl`s or `where` clauses satisfying `Self: Gen<'source>` found --> $DIR/conflicting-bounds.rs:3:1 | LL | pub trait Gen<'source> { | ^^^^^^^^^^^^^^^^^^^^^^ ... LL | Self: for<'s> Gen<'s, Output = T>; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error For more information about this error, try `rustc --explain E0283`. ``` Fixes rust-lang#105131. Fixes (again) rust-lang#98786
…env-2, r=estebank Highlight conflicting param-env candidates, again Un-reverts rust-lang#98794 (i.e. reverts rust-lang#99290). The previous time I attempted to land this PR, it was because of an incremental issue (rust-lang#99233). The repro instructions in the issue is no longer manifest the ICE -- I think it's because this ambiguity code was refactored (I think by ````@lcnr)```` to no longer store the ambiguities in the fulfillment error, but instead recompute them on the fly. The main motivation for trying to re-land this is that it fixes rust-lang#105131 by highlighting the root-cause of the issue, which is conflicting param-env candidates: ``` error[E0283]: type annotations needed: cannot satisfy `Self: Gen<'source>` | note: multiple `impl`s or `where` clauses satisfying `Self: Gen<'source>` found --> $DIR/conflicting-bounds.rs:3:1 | LL | pub trait Gen<'source> { | ^^^^^^^^^^^^^^^^^^^^^^ ... LL | Self: for<'s> Gen<'s, Output = T>; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error For more information about this error, try `rustc --explain E0283`. ``` Fixes rust-lang#105131. Fixes (again) rust-lang#98786
…v-2, r=estebank Highlight conflicting param-env candidates, again Un-reverts rust-lang#98794 (i.e. reverts rust-lang#99290). The previous time I attempted to land this PR, it was because of an incremental issue (rust-lang#99233). The repro instructions in the issue is no longer manifest the ICE -- I think it's because this ambiguity code was refactored (I think by `@lcnr)` to no longer store the ambiguities in the fulfillment error, but instead recompute them on the fly. The main motivation for trying to re-land this is that it fixes rust-lang#105131 by highlighting the root-cause of the issue, which is conflicting param-env candidates: ``` error[E0283]: type annotations needed: cannot satisfy `Self: Gen<'source>` | note: multiple `impl`s or `where` clauses satisfying `Self: Gen<'source>` found --> $DIR/conflicting-bounds.rs:3:1 | LL | pub trait Gen<'source> { | ^^^^^^^^^^^^^^^^^^^^^^ ... LL | Self: for<'s> Gen<'s, Output = T>; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ error: aborting due to previous error For more information about this error, try `rustc --explain E0283`. ``` Fixes rust-lang#105131. Fixes (again) rust-lang#98786
This could probably be further improved by noting why equivalent param-env candidates (modulo regions) leads to ambiguity.
Fixes #98786