mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 23:04:33 +00:00
Let inherent associated types constrain opaque types during projection
This commit is contained in:
parent
07d0d7ce3f
commit
dadece067e
@ -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),
|
Ok(mut ok) => obligations.append(&mut ok.obligations),
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
tcx.dcx().span_bug(
|
tcx.dcx().span_bug(
|
||||||
|
@ -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() {}
|
Loading…
Reference in New Issue
Block a user