I'm surprised by the ambiguity shown in the last example. Shouldn't the concrete return type for an impl Into<u32>
be completely inaccessible outside of the function? Otherwise it would allow to introduce breaking changes without changing a function API.
But in this case, how would it be possible that impl_trait().into()
is an u16
?