Content-Length: 25599 | pFad | https://doc.rust-lang.org/std/pin/../default/../rc/../../../std/../error_codes/./././E0398.html

E0398 - Error codes index

Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Error code E0398

Note: this error code is no longer emitted by the compiler.

In Rust 1.3, the default object lifetime bounds are expected to change, as described in RFC 1156. You are getting a warning because the compiler thinks it is possible that this change will cause a compilation error in your code. It is possible, though unlikely, that this is a false alarm.

The heart of the change is that where &'a Box<SomeTrait> used to default to &'a Box<SomeTrait+'a>, it now defaults to &'a Box<SomeTrait+'static> (here, SomeTrait is the name of some trait type). Note that the only types which are affected are references to boxes, like &Box<SomeTrait> or &[Box<SomeTrait>]. More common types like &SomeTrait or Box<SomeTrait> are unaffected.

To silence this warning, edit your code to use an explicit bound. Most of the time, this means that you will want to change the signature of a function that you are calling. For example, if the error is reported on a call like foo(x), and foo is defined as follows:

#![allow(unused)]
fn main() {
trait SomeTrait {}
fn foo(arg: &Box<SomeTrait>) { /* ... */ }
}

You might change it to:

#![allow(unused)]
fn main() {
trait SomeTrait {}
fn foo<'a>(arg: &'a Box<SomeTrait+'a>) { /* ... */ }
}

This explicitly states that you expect the trait object SomeTrait to contain references (with a maximum lifetime of 'a).









ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: https://doc.rust-lang.org/std/pin/../default/../rc/../../../std/../error_codes/./././E0398.html

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy