Skip to content

Commit 089cfb1

Browse files
committed
---
yaml --- r: 60201 b: refs/heads/master c: d807f00 h: refs/heads/master i: 60199: 8680d0c v: v3
1 parent c0ad071 commit 089cfb1

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 7d4bb90e76207f3715126562fd50193fda97ff49
2+
refs/heads/master: d807f00bfded3804d5f3d01e522dfa086871f8ed
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 2d28d645422c1617be58c8ca7ad9a457264ca850
55
refs/heads/try: c50a9d5b664478e533ba1d1d353213d70c8ad589

trunk/src/libcore/to_str.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ The `ToStr` trait for converting to strings
1515
*/
1616

1717
use str;
18+
use hashmap::HashMap;
19+
use container::Map;
20+
use hash::Hash;
21+
use cmp::Eq;
1822

1923
pub trait ToStr {
2024
fn to_str(&self) -> ~str;
@@ -46,6 +50,26 @@ impl<A:ToStr> ToStr for (A,) {
4650
}
4751
}
4852

53+
impl<A:ToStr+Hash+Eq, B:ToStr+Hash+Eq> ToStr for HashMap<A, B> {
54+
#[inline(always)]
55+
fn to_str(&self) -> ~str {
56+
let mut acc = ~"{", first = true;
57+
for self.each |key, value| {
58+
if first {
59+
first = false;
60+
}
61+
else {
62+
str::push_str(&mut acc, ~", ");
63+
}
64+
str::push_str(&mut acc, key.to_str());
65+
str::push_str(&mut acc, ~" : ");
66+
str::push_str(&mut acc, value.to_str());
67+
}
68+
str::push_char(&mut acc, '}');
69+
acc
70+
}
71+
}
72+
4973
impl<A:ToStr,B:ToStr> ToStr for (A, B) {
5074
#[inline(always)]
5175
fn to_str(&self) -> ~str {
@@ -149,4 +173,16 @@ mod tests {
149173
assert!((~[~[], ~[1], ~[1, 1]]).to_str() ==
150174
~"[[], [1], [1, 1]]");
151175
}
176+
177+
#[test]
178+
fn test_hashmap() {
179+
let mut table: HashMap<int, int> = HashMap::new();
180+
let mut empty: HashMap<int, int> = HashMap::new();
181+
182+
table.insert(3, 4);
183+
table.insert(1, 2);
184+
185+
assert!(table.to_str() == ~"{1 : 2, 3 : 4}");
186+
assert!(empty.to_str() == ~"{}");
187+
}
152188
}

trunk/src/librustc/middle/resolve.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1909,6 +1909,7 @@ pub impl Resolver {
19091909
}
19101910

19111911
if self.unresolved_imports == prev_unresolved_imports {
1912+
self.session.err(~"failed to resolve imports");
19121913
self.report_unresolved_imports(module_root);
19131914
break;
19141915
}

0 commit comments

Comments
 (0)