Don’t use type Error = ! for target-dependant TryFrom impls.
Instead, expose apparently-fallible conversions in cases where the implementation happens to be infallible for a given target. Having an associated type / return type in a public API change based on the target is a portability hazard.
This commit is contained in:
@@ -3681,7 +3681,7 @@ macro_rules! try_from_unbounded {
|
|||||||
($source:ty, $($target:ty),*) => {$(
|
($source:ty, $($target:ty),*) => {$(
|
||||||
#[unstable(feature = "try_from", issue = "33417")]
|
#[unstable(feature = "try_from", issue = "33417")]
|
||||||
impl TryFrom<$source> for $target {
|
impl TryFrom<$source> for $target {
|
||||||
type Error = !;
|
type Error = TryFromIntError;
|
||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn try_from(value: $source) -> Result<Self, Self::Error> {
|
fn try_from(value: $source) -> Result<Self, Self::Error> {
|
||||||
|
|||||||
Reference in New Issue
Block a user