Skip to content

Higher ranked lifetimes cannot cross type boundaries #28721

Closed
@Diggsey

Description

@Diggsey

This currently does not compile:

struct Message<'a> {
    data: &'a u32,
}

struct Handler<T>(Option<Box<Fn(T)>>);

struct Cfg {
    handler: for<'a> Handler<Message<'a>>, // error: `Handler` is not a trait [E0404]
}

This precludes a lot of useful patterns.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-lifetimesArea: Lifetimes / regions

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions