No need to probe when relating opaques in nll_relate
This commit is contained in:
parent
43dd3d514b
commit
901649eeb7
3 changed files with 25 additions and 1 deletions
|
@ -592,7 +592,7 @@ where
|
||||||
(&ty::Infer(ty::TyVar(vid)), _) => self.relate_ty_var((vid, b)),
|
(&ty::Infer(ty::TyVar(vid)), _) => self.relate_ty_var((vid, b)),
|
||||||
|
|
||||||
(&ty::Opaque(a_def_id, _), &ty::Opaque(b_def_id, _)) if a_def_id == b_def_id => {
|
(&ty::Opaque(a_def_id, _), &ty::Opaque(b_def_id, _)) if a_def_id == b_def_id => {
|
||||||
infcx.commit_if_ok(|_| infcx.super_combine_tys(self, a, b)).or_else(|err| {
|
infcx.super_combine_tys(self, a, b).or_else(|err| {
|
||||||
self.tcx().sess.delay_span_bug(
|
self.tcx().sess.delay_span_bug(
|
||||||
self.delegate.span(),
|
self.delegate.span(),
|
||||||
"failure to relate an opaque to itself should result in an error later on",
|
"failure to relate an opaque to itself should result in an error later on",
|
||||||
|
|
10
src/test/ui/impl-trait/issue-103599.rs
Normal file
10
src/test/ui/impl-trait/issue-103599.rs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
// check-pass
|
||||||
|
|
||||||
|
trait T {}
|
||||||
|
|
||||||
|
fn wrap(x: impl T) -> impl T {
|
||||||
|
//~^ WARN function cannot return without recursing
|
||||||
|
wrap(wrap(x))
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
14
src/test/ui/impl-trait/issue-103599.stderr
Normal file
14
src/test/ui/impl-trait/issue-103599.stderr
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
warning: function cannot return without recursing
|
||||||
|
--> $DIR/issue-103599.rs:5:1
|
||||||
|
|
|
||||||
|
LL | fn wrap(x: impl T) -> impl T {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
||||||
|
LL |
|
||||||
|
LL | wrap(wrap(x))
|
||||||
|
| ------- recursive call site
|
||||||
|
|
|
||||||
|
= help: a `loop` may express intention better if this is on purpose
|
||||||
|
= note: `#[warn(unconditional_recursion)]` on by default
|
||||||
|
|
||||||
|
warning: 1 warning emitted
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue