Skip to content

Alias-relate goals emitted by generalizer weakens inference #13

Closed
@compiler-errors

Description

@compiler-errors
trait Mk {
    type Assoc;
}

fn mk<T: Mk>(t: T) -> T::Assoc {
    todo!()
}

fn foo<S: Mk + Default>() {
    let x = Default::default();
    let y = mk<_ /* ?z */>(x);
    let x: S = x;
}

Assigning <?z.1 as Mk>::Assoc to ?y.0 generalizes ?z.1 to ?a.0. We then alias-eq <?z.1 as Mk>::Assoc = <?a.0 as Mk>::Assoc, which stalls out.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions