Merge pull request #33 from markuskobler/master

Fixing build errors with latest rust
This commit is contained in:
Alex Crichton 2014-11-22 11:23:35 -06:00
commit 1e35b00109
2 changed files with 23 additions and 19 deletions

View file

@ -257,7 +257,7 @@ impl<'a> Parser<'a> {
Some((pos, 'f')) => self.boolean(pos), Some((pos, 'f')) => self.boolean(pos),
Some((pos, '[')) => self.array(pos), Some((pos, '[')) => self.array(pos),
Some((pos, '-')) => self.number_or_datetime(pos), Some((pos, '-')) => self.number_or_datetime(pos),
Some((pos, ch)) if ch.is_digit() => self.number_or_datetime(pos), Some((pos, ch)) if ch.is_digit(10) => self.number_or_datetime(pos),
_ => { _ => {
let mut it = self.cur.clone(); let mut it = self.cur.clone();
let lo = it.next().map(|p| p.val0()).unwrap_or(self.input.len()); let lo = it.next().map(|p| p.val0()).unwrap_or(self.input.len());
@ -309,7 +309,9 @@ impl<'a> Parser<'a> {
Some((_, '\r')) if multiline => ret.push('\n'), Some((_, '\r')) if multiline => ret.push('\n'),
Some((pos, ch)) if ch < '\u001f' => { Some((pos, ch)) if ch < '\u001f' => {
let mut escaped = String::new(); let mut escaped = String::new();
ch.escape_default(|c| escaped.push(c)); for c in ch.escape_default() {
escaped.push(c);
}
self.errors.push(ParserError { self.errors.push(ParserError {
lo: pos, lo: pos,
hi: pos + 1, hi: pos + 1,
@ -393,7 +395,9 @@ impl<'a> Parser<'a> {
} }
Some((pos, ch)) => { Some((pos, ch)) => {
let mut escaped = String::new(); let mut escaped = String::new();
ch.escape_default(|c| escaped.push(c)); for c in ch.escape_default() {
escaped.push(c);
}
let next_pos = me.next_pos(); let next_pos = me.next_pos();
me.errors.push(ParserError { me.errors.push(ParserError {
lo: pos, lo: pos,
@ -456,7 +460,7 @@ impl<'a> Parser<'a> {
let mut is_float = false; let mut is_float = false;
loop { loop {
match self.cur.clone().next() { match self.cur.clone().next() {
Some((_, ch)) if ch.is_digit() => { self.cur.next(); } Some((_, ch)) if ch.is_digit(10) => { self.cur.next(); }
Some((_, '.')) if !is_float => { Some((_, '.')) if !is_float => {
is_float = true; is_float = true;
self.cur.next(); self.cur.next();
@ -527,25 +531,25 @@ impl<'a> Parser<'a> {
} }
let mut it = date.as_slice().chars(); let mut it = date.as_slice().chars();
let mut valid = true; let mut valid = true;
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c == '-').unwrap_or(false); valid = valid && it.next().map(|c| c == '-').unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c == '-').unwrap_or(false); valid = valid && it.next().map(|c| c == '-').unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c == 'T').unwrap_or(false); valid = valid && it.next().map(|c| c == 'T').unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c == ':').unwrap_or(false); valid = valid && it.next().map(|c| c == ':').unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c == ':').unwrap_or(false); valid = valid && it.next().map(|c| c == ':').unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c.is_digit()).unwrap_or(false); valid = valid && it.next().map(|c| c.is_digit(10)).unwrap_or(false);
valid = valid && it.next().map(|c| c == 'Z').unwrap_or(false); valid = valid && it.next().map(|c| c == 'Z').unwrap_or(false);
if valid { if valid {
Some(Datetime(date.clone())) Some(Datetime(date.clone()))

View file

@ -34,7 +34,7 @@ fn to_json(toml: Value) -> json::Json {
Some(&Table(..)) => true, Some(&Table(..)) => true,
_ => false, _ => false,
}; };
let json = json::List(arr.into_iter().map(to_json).collect()); let json = json::Array(arr.into_iter().map(to_json).collect());
if is_table {json} else {doit("array", json)} if is_table {json} else {doit("array", json)}
} }
Table(table) => json::Object(table.into_iter().map(|(k, v)| { Table(table) => json::Object(table.into_iter().map(|(k, v)| {