diff --git a/src/doc/reference.md b/src/doc/reference.md index fdb45c32a1d60..e905ed917d7fd 100644 --- a/src/doc/reference.md +++ b/src/doc/reference.md @@ -1501,7 +1501,29 @@ have an implementation for `Shape`. Multiple supertraits are separated by `+`, `trait Circle : Shape + PartialEq { }`. In an implementation of `Circle` for a given type `T`, methods can refer to `Shape` methods, since the typechecker checks that any type with an implementation of `Circle` also has an -implementation of `Shape`. +implementation of `Shape`: + +```rust +struct Foo; + +trait Shape { fn area(&self) -> f64; } +trait Circle : Shape { fn radius(&self) -> f64; } +# impl Shape for Foo { +# fn area(&self) -> f64 { +# 0.0 +# } +# } +impl Circle for Foo { + fn radius(&self) -> f64 { + println!("calling area: {}", self.area()); + + 0.0 + } +} + +let c = Foo; +c.radius(); +``` In type-parameterized functions, methods of the supertrait may be called on values of subtrait-bound type parameters. Referring to the previous example of diff --git a/src/libstd/fs.rs b/src/libstd/fs.rs index 62490bb9d08a9..a903452d54074 100644 --- a/src/libstd/fs.rs +++ b/src/libstd/fs.rs @@ -855,6 +855,8 @@ pub fn rename, Q: AsRef>(from: P, to: Q) -> io::Result<()> /// Note that if `from` and `to` both point to the same file, then the file /// will likely get truncated by this operation. /// +/// On success, the total number of bytes copied is returned. +/// /// # Errors /// /// This function will return an error in the following situations, but is not