blob: 47cde451e26ac795185cd299877419e32bbf63fd [file] [log] [blame]
#![feature(lang_items)]
#[lang = "sized"]
pub trait Sized {}
pub enum Option<T> {
None,
Some(T),
}
pub enum Result<T, E> {
Ok(T),
Err(E),
}
pub trait TryFrom<T> {
type Error;
fn try_from(value: T) -> Result<Self, Self::Error>;
}
pub trait From<T> {
fn from(_: T) -> Self;
}
impl<T> From<T> for T {
fn from(t: T) -> T {
t
}
}
impl<T, U> TryFrom<U> for T
where
T: From<U>,
{
type Error = !;
fn try_from(value: U) -> Result<Self, Self::Error> {
Result::Ok(T::from(value))
}
}
pub fn test(n: usize) {
let _a = <usize>::try_from(n);
}