1
Fork 0

auto merge of #15107 : ipetkov/rust/tutorial-update, r=alexcrichton

This commit is contained in:
bors 2014-06-24 10:16:49 +00:00
commit 58bf8b2155

View file

@ -2522,7 +2522,7 @@ fn sendable_foo(f: Box<Foo + Send>) { /* ... */ }
fn shareable_bar<T: Share>(b: &Bar<T> + Share) { /* ... */ } fn shareable_bar<T: Share>(b: &Bar<T> + Share) { /* ... */ }
~~~ ~~~
When no colon is specified (such as the type `~Foo`), it is inferred that the When no colon is specified (such as the type `Box<Foo>`), it is inferred that the
value ascribes to no bounds. They must be added manually if any bounds are value ascribes to no bounds. They must be added manually if any bounds are
necessary for usage. necessary for usage.
@ -2579,7 +2579,7 @@ fn radius_times_area<T: Circle>(c: T) -> f64 {
Likewise, supertrait methods may also be called on trait objects. Likewise, supertrait methods may also be called on trait objects.
~~~ {.ignore} ~~~
use std::f64::consts::PI; use std::f64::consts::PI;
# trait Shape { fn area(&self) -> f64; } # trait Shape { fn area(&self) -> f64; }
# trait Circle : Shape { fn radius(&self) -> f64; } # trait Circle : Shape { fn radius(&self) -> f64; }
@ -2587,9 +2587,10 @@ use std::f64::consts::PI;
# struct CircleStruct { center: Point, radius: f64 } # struct CircleStruct { center: Point, radius: f64 }
# impl Circle for CircleStruct { fn radius(&self) -> f64 { (self.area() / PI).sqrt() } } # impl Circle for CircleStruct { fn radius(&self) -> f64 { (self.area() / PI).sqrt() } }
# impl Shape for CircleStruct { fn area(&self) -> f64 { PI * square(self.radius) } } # impl Shape for CircleStruct { fn area(&self) -> f64 { PI * square(self.radius) } }
# fn square(x: f64) -> f64 { x * x }
let concrete = ~CircleStruct{center:Point{x:3.0,y:4.0},radius:5.0}; let concrete = box CircleStruct{center:Point{x:3.0,y:4.0},radius:5.0};
let mycircle: ~Circle = concrete as ~Circle; let mycircle: Box<Circle> = concrete as Box<Circle>;
let nonsense = mycircle.radius() * mycircle.area(); let nonsense = mycircle.radius() * mycircle.area();
~~~ ~~~