Move binder for dyn to each list item

This commit is contained in:
Jack Huey 2020-12-11 15:02:46 -05:00
parent aec0fc58ad
commit 42b267d221

View File

@ -480,17 +480,19 @@ fn assert_assignable<'tcx>(
// fn(&T) -> for<'l> fn(&'l T) is allowed // fn(&T) -> for<'l> fn(&'l T) is allowed
} }
(&ty::Dynamic(from_traits, _), &ty::Dynamic(to_traits, _)) => { (&ty::Dynamic(from_traits, _), &ty::Dynamic(to_traits, _)) => {
let from_traits = fx for (from, to) in from_traits.iter().zip(to_traits) {
let from = fx
.tcx .tcx
.normalize_erasing_late_bound_regions(ParamEnv::reveal_all(), from_traits); .normalize_erasing_late_bound_regions(ParamEnv::reveal_all(), from);
let to_traits = fx let to = fx
.tcx .tcx
.normalize_erasing_late_bound_regions(ParamEnv::reveal_all(), to_traits); .normalize_erasing_late_bound_regions(ParamEnv::reveal_all(), to);
assert_eq!( assert_eq!(
from_traits, to_traits, from, to,
"Can't write trait object of incompatible traits {:?} to place with traits {:?}\n\n{:#?}", "Can't write trait object of incompatible traits {:?} to place with traits {:?}\n\n{:#?}",
from_traits, to_traits, fx, from_traits, to_traits, fx,
); );
}
// dyn for<'r> Trait<'r> -> dyn Trait<'_> is allowed // dyn for<'r> Trait<'r> -> dyn Trait<'_> is allowed
} }
_ => { _ => {