1
Fork 0

impl From<Infallible> for TryFromIntError.

This commit is contained in:
Jimmy Cuadra 2017-09-01 01:57:05 -07:00
parent 36c0ff8690
commit 93a56cdacd
2 changed files with 17 additions and 2 deletions

View file

@ -12,7 +12,7 @@
#![stable(feature = "rust1", since = "1.0.0")]
use convert::TryFrom;
use convert::{Infallible, TryFrom};
use fmt;
use intrinsics;
use str::FromStr;
@ -2503,6 +2503,13 @@ impl fmt::Display for TryFromIntError {
}
}
#[unstable(feature = "try_from", issue = "33417")]
impl From<Infallible> for TryFromIntError {
fn from(_: Infallible) -> TryFromIntError {
TryFromIntError(())
}
}
// no possible bounds violation
macro_rules! try_from_unbounded {
($source:ty, $($target:ty),*) => {$(

View file

@ -8,10 +8,11 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
use core::convert::TryFrom;
use core::convert::{TryFrom, TryInto};
use core::cmp::PartialEq;
use core::fmt::Debug;
use core::marker::Copy;
use core::num::TryFromIntError;
use core::ops::{Add, Sub, Mul, Div, Rem};
use core::option::Option;
use core::option::Option::{Some, None};
@ -134,6 +135,13 @@ fn test_empty() {
assert_eq!("".parse::<u8>().ok(), None);
}
#[test]
fn test_infallible_try_from_int_error() {
let func = |x: i8| -> Result<i32, TryFromIntError> { Ok(x.try_into()?) };
assert!(func(0).is_ok());
}
macro_rules! test_impl_from {
($fn_name: ident, $Small: ty, $Large: ty) => {
#[test]