Ah ok, I'm back to being confused again then!
Is this right:
If Foo is a struct then Box<Foo> is static dispatch. If Foo is a trait Box<dyn Foo> is dynamic dispatch, but then so is Box<Foo> - but that is the regrettable point. So from now on, if Foo is a trait we should be writing Box<dyn Foo>, which is largely syntactic sugar to make the situation more clear?
I don't fully understand what the release notes are saying about using impl Trait. When would you use Box<impl Foo> vs Box<dyn Foo>?
Re:Announcing Rust 1.27
by steveklabnik on Thursday June 21, 2018 @06:35PM
(#17369828)
You are right.
It’s not that you would use Box<impl Foo>, but when taking about the two features, it’s easier to compare them, as they’re actually distinct syntactically.
Illustrating the need to dump the old unqualified syntax.