#[lang="fn"]
#[unstable(feature = "core",
reason = "uncertain about variadic generics, input versus associated types")]
-#[cfg(stage0)]
-pub trait Fn<Args,Output> {
- /// This is called when the call operator is used.
- extern "rust-call" fn call(&self, args: Args) -> Output;
-}
-
-/// A version of the call operator that takes a mutable receiver.
-#[lang="fn_mut"]
-#[unstable(feature = "core",
- reason = "uncertain about variadic generics, input versus associated types")]
-#[cfg(stage0)]
-pub trait FnMut<Args,Output> {
- /// This is called when the call operator is used.
- extern "rust-call" fn call_mut(&mut self, args: Args) -> Output;
-}
-
-/// A version of the call operator that takes a by-value receiver.
-#[lang="fn_once"]
-#[unstable(feature = "core",
- reason = "uncertain about variadic generics, input versus associated types")]
-#[cfg(stage0)]
-pub trait FnOnce<Args,Output> {
- /// This is called when the call operator is used.
- extern "rust-call" fn call_once(self, args: Args) -> Output;
-}
-
-#[cfg(stage0)]
-impl<F: ?Sized, A, R> FnMut<A, R> for F
- where F : Fn<A, R>
-{
- extern "rust-call" fn call_mut(&mut self, args: A) -> R {
- self.call(args)
- }
-}
-
-#[cfg(stage0)]
-impl<F,A,R> FnOnce<A,R> for F
- where F : FnMut<A,R>
-{
- extern "rust-call" fn call_once(mut self, args: A) -> R {
- self.call_mut(args)
- }
-}
-
-/// A version of the call operator that takes an immutable receiver.
-#[lang="fn"]
-#[unstable(feature = "core",
- reason = "uncertain about variadic generics, input versus associated types")]
-#[cfg(not(stage0))]
pub trait Fn<Args> {
type Output;
#[lang="fn_mut"]
#[unstable(feature = "core",
reason = "uncertain about variadic generics, input versus associated types")]
-#[cfg(not(stage0))]
pub trait FnMut<Args> {
type Output;
#[lang="fn_once"]
#[unstable(feature = "core",
reason = "uncertain about variadic generics, input versus associated types")]
-#[cfg(not(stage0))]
pub trait FnOnce<Args> {
type Output;
extern "rust-call" fn call_once(self, args: Args) -> Self::Output;
}
-#[cfg(not(stage0))]
impl<F: ?Sized, A> FnMut<A> for F
where F : Fn<A>
{
}
}
-#[cfg(not(stage0))]
impl<F,A> FnOnce<A> for F
where F : FnMut<A>
{
+S 2015-01-28 a45e117
+ freebsd-x86_64 08a3ce7331fd1a52466acc0598cf745a009f86f6
+ linux-i386 66e36a3461c12e2102a7f7f241d1b0e242c704d0
+ linux-x86_64 0ae2f5da9913cfa211a367de77d5faa2ff798918
+ macos-i386 d1a6776f00bf5091d73816d46c7fca8617575bd8
+ macos-x86_64 cd4d7659b93e2341316cef4b7c5c9b50d23c6bbf
+ winnt-i386 14859dde2eb57f8c54989852ae6f807e66576338
+ winnt-x86_64 693c0d1068debe5781e89e0d9efee85825eeae6c
+
S 2015-01-27 7774359
freebsd-x86_64 63623b632d4f9c33ad3b3cfaeebf8e2dd8395c96
linux-i386 937b0b126aade54dc2c7198cad67f40d711b64ba