#[allow(non_snake_case)]
impl FamousDefs<'_, '_> {
- pub const FIXTURE: &'static str = r#"//- /libcore.rs crate:core
-pub mod convert {
- pub trait From<T> {
- fn from(t: T) -> Self;
- }
-}
-
-pub mod default {
- pub trait Default {
- fn default() -> Self;
- }
-}
-
-pub mod iter {
- pub use self::traits::{collect::IntoIterator, iterator::Iterator};
- mod traits {
- pub(crate) mod iterator {
- use crate::option::Option;
- pub trait Iterator {
- type Item;
- fn next(&mut self) -> Option<Self::Item>;
- fn by_ref(&mut self) -> &mut Self {
- self
- }
- fn take(self, n: usize) -> crate::iter::Take<Self> {
- crate::iter::Take { inner: self }
- }
- }
-
- impl<I: Iterator> Iterator for &mut I {
- type Item = I::Item;
- fn next(&mut self) -> Option<I::Item> {
- (**self).next()
- }
- }
- }
- pub(crate) mod collect {
- pub trait IntoIterator {
- type Item;
- }
- }
- }
-
- pub use self::sources::*;
- pub(crate) mod sources {
- use super::Iterator;
- use crate::option::Option::{self, *};
- pub struct Repeat<A> {
- element: A,
- }
-
- pub fn repeat<T>(elt: T) -> Repeat<T> {
- Repeat { element: elt }
- }
-
- impl<A> Iterator for Repeat<A> {
- type Item = A;
-
- fn next(&mut self) -> Option<A> {
- None
- }
- }
- }
-
- pub use self::adapters::*;
- pub(crate) mod adapters {
- use super::Iterator;
- use crate::option::Option::{self, *};
- pub struct Take<I> { pub(crate) inner: I }
- impl<I> Iterator for Take<I> where I: Iterator {
- type Item = <I as Iterator>::Item;
- fn next(&mut self) -> Option<<I as Iterator>::Item> {
- None
- }
- }
- }
-}
-
-pub mod option {
- pub enum Option<T> { None, Some(T)}
-}
-
-pub mod prelude {
- pub use crate::{convert::From, iter::{IntoIterator, Iterator}, option::Option::{self, *}, default::Default};
-}
-#[prelude_import]
-pub use prelude::*;
-"#;
+ pub const FIXTURE: &'static str = include_str!("helpers/famous_defs_fixture.rs");
pub fn core(&self) -> Option<Crate> {
self.find_crate("core")
--- /dev/null
+//- /libcore.rs crate:core
+pub mod convert {
+ pub trait From<T> {
+ fn from(t: T) -> Self;
+ }
+}
+
+pub mod default {
+ pub trait Default {
+ fn default() -> Self;
+ }
+}
+
+pub mod iter {
+ pub use self::traits::{collect::IntoIterator, iterator::Iterator};
+ mod traits {
+ pub(crate) mod iterator {
+ use crate::option::Option;
+ pub trait Iterator {
+ type Item;
+ fn next(&mut self) -> Option<Self::Item>;
+ fn by_ref(&mut self) -> &mut Self {
+ self
+ }
+ fn take(self, n: usize) -> crate::iter::Take<Self> {
+ crate::iter::Take { inner: self }
+ }
+ }
+
+ impl<I: Iterator> Iterator for &mut I {
+ type Item = I::Item;
+ fn next(&mut self) -> Option<I::Item> {
+ (**self).next()
+ }
+ }
+ }
+ pub(crate) mod collect {
+ pub trait IntoIterator {
+ type Item;
+ }
+ }
+ }
+
+ pub use self::sources::*;
+ pub(crate) mod sources {
+ use super::Iterator;
+ use crate::option::Option::{self, *};
+ pub struct Repeat<A> {
+ element: A,
+ }
+
+ pub fn repeat<T>(elt: T) -> Repeat<T> {
+ Repeat { element: elt }
+ }
+
+ impl<A> Iterator for Repeat<A> {
+ type Item = A;
+
+ fn next(&mut self) -> Option<A> {
+ None
+ }
+ }
+ }
+
+ pub use self::adapters::*;
+ pub(crate) mod adapters {
+ use super::Iterator;
+ use crate::option::Option::{self, *};
+ pub struct Take<I> {
+ pub(crate) inner: I,
+ }
+ impl<I> Iterator for Take<I>
+ where
+ I: Iterator,
+ {
+ type Item = <I as Iterator>::Item;
+ fn next(&mut self) -> Option<<I as Iterator>::Item> {
+ None
+ }
+ }
+ }
+}
+
+pub mod ops {
+ #[lang = "fn"]
+ pub trait Fn<Args>: FnMut<Args> {
+ extern "rust-call" fn call(&self, args: Args) -> Self::Output;
+ }
+
+ #[lang = "fn_mut"]
+ pub trait FnMut<Args>: FnOnce<Args> {
+ extern "rust-call" fn call_mut(&mut self, args: Args) -> Self::Output;
+ }
+ #[lang = "fn_once"]
+ pub trait FnOnce<Args> {
+ #[lang = "fn_once_output"]
+ type Output;
+ extern "rust-call" fn call_once(self, args: Args) -> Self::Output;
+ }
+}
+
+pub mod option {
+ pub enum Option<T> {
+ None,
+ Some(T),
+ }
+}
+
+pub mod prelude {
+ pub use crate::{
+ convert::From,
+ default::Default,
+ iter::{IntoIterator, Iterator},
+ ops::{Fn, FnMut, FnOnce},
+ option::Option::{self, *},
+ };
+}
+#[prelude_import]
+pub use prelude::*;