Skip to content

Combination of TAIT and ATB does not allow projection (unsatisfied bound) #63591

Closed
@Centril

Description

@Centril

This should pass but does not:

// check-pass

#![feature(associated_type_bounds)]
#![feature(type_alias_impl_trait)]

fn main() {}

trait Bar { type Assoc; }

trait Thing {
    type Out;
    fn func() -> Self::Out;
}

struct AssocIsCopy;
impl Bar for AssocIsCopy { type Assoc = u8; }

impl Thing for AssocIsCopy {
    type Out = impl Bar<Assoc: Copy>;

    fn func() -> Self::Out {
        AssocIsCopy
        //~^ ERROR the trait bound `<AssocIsCopy as Bar>::Assoc: std::marker::Copy` is not satisfied
    }
}

cc @alexreg @varkor @nikomatsakis

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-bugCategory: This is a bug.F-associated_type_bounds`#![feature(associated_type_bounds)]`F-type_alias_impl_trait`#[feature(type_alias_impl_trait)]`T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions