we now get 2 extra mismatched type errors
These new errors actually seem a *tad* clearer than the old one, so that's good, but now there are 3. Maybe call it a wash?
This commit is contained in:
parent
0e47a4a9d3
commit
0d8f3b3628
|
@ -38,6 +38,8 @@ impl<'a> Publisher<'a> for MyStruct<'a> {
|
|||
fn subscribe(&mut self, t : Box<Subscriber<Input=<Self as Publisher>::Output> + 'a>) {
|
||||
// Not obvious, but there is an implicit lifetime here -------^
|
||||
//~^^ ERROR cannot infer
|
||||
//~| ERROR mismatched types
|
||||
//~| ERROR mismatched types
|
||||
//
|
||||
// The fact that `Publisher` is using an implicit lifetime is
|
||||
// what was causing the debruijn accounting to be off, so
|
||||
|
|
|
@ -1,10 +1,72 @@
|
|||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-20831-debruijn.rs:38:5
|
||||
|
|
||||
LL | / fn subscribe(&mut self, t : Box<Subscriber<Input=<Self as Publisher>::Output> + 'a>) {
|
||||
LL | | // Not obvious, but there is an implicit lifetime here -------^
|
||||
LL | | //~^^ ERROR cannot infer
|
||||
LL | | //~| ERROR mismatched types
|
||||
... |
|
||||
LL | | self.sub = t;
|
||||
LL | | }
|
||||
| |_____^ lifetime mismatch
|
||||
|
|
||||
= note: expected type `'a`
|
||||
found type ``
|
||||
note: the anonymous lifetime #2 defined on the method body at 38:5...
|
||||
--> $DIR/issue-20831-debruijn.rs:38:5
|
||||
|
|
||||
LL | / fn subscribe(&mut self, t : Box<Subscriber<Input=<Self as Publisher>::Output> + 'a>) {
|
||||
LL | | // Not obvious, but there is an implicit lifetime here -------^
|
||||
LL | | //~^^ ERROR cannot infer
|
||||
LL | | //~| ERROR mismatched types
|
||||
... |
|
||||
LL | | self.sub = t;
|
||||
LL | | }
|
||||
| |_____^
|
||||
note: ...does not necessarily outlive the lifetime 'a as defined on the impl at 36:6
|
||||
--> $DIR/issue-20831-debruijn.rs:36:6
|
||||
|
|
||||
LL | impl<'a> Publisher<'a> for MyStruct<'a> {
|
||||
| ^^
|
||||
|
||||
error[E0308]: mismatched types
|
||||
--> $DIR/issue-20831-debruijn.rs:38:5
|
||||
|
|
||||
LL | / fn subscribe(&mut self, t : Box<Subscriber<Input=<Self as Publisher>::Output> + 'a>) {
|
||||
LL | | // Not obvious, but there is an implicit lifetime here -------^
|
||||
LL | | //~^^ ERROR cannot infer
|
||||
LL | | //~| ERROR mismatched types
|
||||
... |
|
||||
LL | | self.sub = t;
|
||||
LL | | }
|
||||
| |_____^ lifetime mismatch
|
||||
|
|
||||
= note: expected type `'a`
|
||||
found type ``
|
||||
note: the lifetime 'a as defined on the impl at 36:6...
|
||||
--> $DIR/issue-20831-debruijn.rs:36:6
|
||||
|
|
||||
LL | impl<'a> Publisher<'a> for MyStruct<'a> {
|
||||
| ^^
|
||||
note: ...does not necessarily outlive the anonymous lifetime #2 defined on the method body at 38:5
|
||||
--> $DIR/issue-20831-debruijn.rs:38:5
|
||||
|
|
||||
LL | / fn subscribe(&mut self, t : Box<Subscriber<Input=<Self as Publisher>::Output> + 'a>) {
|
||||
LL | | // Not obvious, but there is an implicit lifetime here -------^
|
||||
LL | | //~^^ ERROR cannot infer
|
||||
LL | | //~| ERROR mismatched types
|
||||
... |
|
||||
LL | | self.sub = t;
|
||||
LL | | }
|
||||
| |_____^
|
||||
|
||||
error[E0495]: cannot infer an appropriate lifetime for lifetime parameter `'a` due to conflicting requirements
|
||||
--> $DIR/issue-20831-debruijn.rs:38:5
|
||||
|
|
||||
LL | / fn subscribe(&mut self, t : Box<Subscriber<Input=<Self as Publisher>::Output> + 'a>) {
|
||||
LL | | // Not obvious, but there is an implicit lifetime here -------^
|
||||
LL | | //~^^ ERROR cannot infer
|
||||
LL | | //
|
||||
LL | | //~| ERROR mismatched types
|
||||
... |
|
||||
LL | | self.sub = t;
|
||||
LL | | }
|
||||
|
@ -16,7 +78,7 @@ note: first, the lifetime cannot outlive the anonymous lifetime #2 defined on th
|
|||
LL | / fn subscribe(&mut self, t : Box<Subscriber<Input=<Self as Publisher>::Output> + 'a>) {
|
||||
LL | | // Not obvious, but there is an implicit lifetime here -------^
|
||||
LL | | //~^^ ERROR cannot infer
|
||||
LL | | //
|
||||
LL | | //~| ERROR mismatched types
|
||||
... |
|
||||
LL | | self.sub = t;
|
||||
LL | | }
|
||||
|
@ -30,6 +92,7 @@ LL | impl<'a> Publisher<'a> for MyStruct<'a> {
|
|||
expected Publisher<'_>
|
||||
found Publisher<'_>
|
||||
|
||||
error: aborting due to previous error
|
||||
error: aborting due to 3 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0495`.
|
||||
Some errors occurred: E0308, E0495.
|
||||
For more information about an error, try `rustc --explain E0308`.
|
||||
|
|
Loading…
Reference in New Issue