Skip to content

Commit 49c5fa0

Browse files
committed
---
yaml --- r: 42750 b: refs/heads/try c: 810eeef h: refs/heads/master v: v3
1 parent d452822 commit 49c5fa0

File tree

4 files changed

+13
-16
lines changed

4 files changed

+13
-16
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 19dfec2aaf746535de1521f68421f9980dbf25de
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 2f46b763da2c098913884f101b6d71d69af41b49
5-
refs/heads/try: 20af4d73616a0abebb1a26aa4cc26f1c240e66e5
5+
refs/heads/try: 810eeef444d0f0b56d6fdc44dbfa10e7f155bd0a
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: a810c03263670238bccd64cabb12a23a46e3a278

branches/try/doc/tutorial-borrowed-ptr.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ rejected by the compiler):
302302
fn example3() -> int {
303303
let mut x = ~X {f: 3};
304304
let y = &x.f;
305-
x = ~X {f: 4}; // Error reported here.
305+
x = ~{f: 4}; // Error reported here.
306306
*y
307307
}
308308
~~~
@@ -366,14 +366,12 @@ Things get trickier when the unique box is not uniquely owned by the
366366
stack frame, or when there is no way for the compiler to determine the
367367
box's owner. Consider a program like this:
368368

369-
~~~ {.xfail-test}
369+
~~~
370370
struct R { g: int }
371371
struct S { mut f: ~R }
372-
fn example5a(x: @S, callback: @fn()) -> int {
372+
fn example5a(x: @S ...) -> int {
373373
let y = &x.f.g; // Error reported here.
374374
...
375-
callback();
376-
...
377375
# return 0;
378376
}
379377
~~~

branches/try/doc/tutorial.md

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2015,7 +2015,7 @@ the method name with the trait name.
20152015
The compiler will use type inference to decide which implementation to call.
20162016

20172017
~~~~
2018-
trait Shape { static fn new(area: float) -> self; }
2018+
# trait Shape { static fn new(area: float) -> self; }
20192019
# use float::consts::pi;
20202020
# use float::sqrt;
20212021
struct Circle { radius: float }
@@ -2211,15 +2211,11 @@ Likewise, supertrait methods may also be called on trait objects.
22112211
~~~ {.xfail-test}
22122212
# trait Shape { fn area(&self) -> float; }
22132213
# trait Circle : Shape { fn radius(&self) -> float; }
2214-
# use float::consts::pi;
2215-
# use float::sqrt;
2216-
# struct Point { x: float, y: float }
2217-
# struct CircleStruct { center: Point, radius: float }
2218-
# impl CircleStruct: Circle { fn radius(&self) -> float { sqrt(self.area() / pi) } }
2219-
# impl CircleStruct: Shape { fn area(&self) -> float { pi * square(self.radius) } }
2214+
# impl int: Shape { fn area(&self) -> float { 0.0 } }
2215+
# impl int: Circle { fn radius(&self) -> float { 0.0 } }
2216+
# let mycircle = 0;
22202217
2221-
let concrete = @CircleStruct{center:Point{x:3f,y:4f},radius:5f};
2222-
let mycircle: Circle = concrete as @Circle;
2218+
let mycircle: Circle = @mycircle as @Circle;
22232219
let nonsense = mycircle.radius() * mycircle.area();
22242220
~~~
22252221

branches/try/src/libcore/hashmap.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,14 +220,17 @@ pub mod linear {
220220
},
221221
};
222222

223+
/* re-inserting buckets may cause changes in size, so remember what
224+
our new size is ahead of time before we start insertions */
225+
let size = self.size - 1;
223226
idx = self.next_bucket(idx, len_buckets);
224227
while self.buckets[idx].is_some() {
225228
let mut bucket = None;
226229
bucket <-> self.buckets[idx];
227230
self.insert_opt_bucket(bucket);
228231
idx = self.next_bucket(idx, len_buckets);
229232
}
230-
self.size -= 1;
233+
self.size = size;
231234

232235
value
233236
}

0 commit comments

Comments
 (0)