Skip to content

Commit

Permalink
Let inherent associated types constrain opaque types during projection
Browse files Browse the repository at this point in the history
  • Loading branch information
oli-obk committed Apr 19, 2024
1 parent 07d0d7c commit dadece0
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
2 changes: 1 addition & 1 deletion compiler/rustc_trait_selection/src/traits/project.rs
Original file line number Diff line number Diff line change
Expand Up @@ -641,7 +641,7 @@ pub fn compute_inherent_assoc_ty_args<'a, 'b, 'tcx>(
);
}

match selcx.infcx.at(&cause, param_env).eq(DefineOpaqueTypes::No, impl_ty, self_ty) {
match selcx.infcx.at(&cause, param_env).eq(DefineOpaqueTypes::Yes, impl_ty, self_ty) {
Ok(mut ok) => obligations.append(&mut ok.obligations),
Err(_) => {
tcx.dcx().span_bug(
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//@ check-pass

#![feature(inherent_associated_types, type_alias_impl_trait)]
#![allow(incomplete_features)]

struct Foo<T>(T);

impl Foo<i32> {
type Assoc = u32;
}

type Tait = impl Sized;

fn bar(_: Tait) {
let x: Foo<Tait>::Assoc = 42;
}

fn main() {}

0 comments on commit dadece0

Please sign in to comment.