Work around bug #2935 by unautounboxing.
This commit is contained in:
parent
be3b733c49
commit
4e9c475527
@ -217,7 +217,7 @@ fn consume_any_line_comment(rdr: string_reader)
|
||||
bump(rdr);
|
||||
}
|
||||
ret some({
|
||||
tok: token::DOC_COMMENT(rdr.interner.intern(@acc)),
|
||||
tok: token::DOC_COMMENT((*rdr.interner).intern(@acc)),
|
||||
sp: ast_util::mk_sp(start_chpos, rdr.chpos)
|
||||
});
|
||||
} else {
|
||||
@ -262,7 +262,7 @@ fn consume_block_comment(rdr: string_reader)
|
||||
bump(rdr);
|
||||
bump(rdr);
|
||||
ret some({
|
||||
tok: token::DOC_COMMENT(rdr.interner.intern(@acc)),
|
||||
tok: token::DOC_COMMENT((*rdr.interner).intern(@acc)),
|
||||
sp: ast_util::mk_sp(start_chpos, rdr.chpos)
|
||||
});
|
||||
}
|
||||
@ -395,11 +395,13 @@ fn scan_number(c: char, rdr: string_reader) -> token::token {
|
||||
if c == '3' && n == '2' {
|
||||
bump(rdr);
|
||||
bump(rdr);
|
||||
ret token::LIT_FLOAT(rdr.interner.intern(@num_str), ast::ty_f32);
|
||||
ret token::LIT_FLOAT((*rdr.interner).intern(@num_str),
|
||||
ast::ty_f32);
|
||||
} else if c == '6' && n == '4' {
|
||||
bump(rdr);
|
||||
bump(rdr);
|
||||
ret token::LIT_FLOAT(rdr.interner.intern(@num_str), ast::ty_f64);
|
||||
ret token::LIT_FLOAT((*rdr.interner).intern(@num_str),
|
||||
ast::ty_f64);
|
||||
/* FIXME (#2252): if this is out of range for either a
|
||||
32-bit or 64-bit float, it won't be noticed till the
|
||||
back-end. */
|
||||
@ -408,7 +410,7 @@ fn scan_number(c: char, rdr: string_reader) -> token::token {
|
||||
}
|
||||
}
|
||||
if is_float {
|
||||
ret token::LIT_FLOAT(rdr.interner.intern(@num_str), ast::ty_f);
|
||||
ret token::LIT_FLOAT((*rdr.interner).intern(@num_str), ast::ty_f);
|
||||
} else {
|
||||
if str::len(num_str) == 0u {
|
||||
rdr.fatal(~"no valid digits found for number");
|
||||
@ -456,7 +458,7 @@ fn next_token_inner(rdr: string_reader) -> token::token {
|
||||
let is_mod_name = c == ':' && nextch(rdr) == ':';
|
||||
|
||||
// FIXME: perform NFKC normalization here. (Issue #2253)
|
||||
ret token::IDENT(rdr.interner.intern(@accum_str), is_mod_name);
|
||||
ret token::IDENT((*rdr.interner).intern(@accum_str), is_mod_name);
|
||||
}
|
||||
if is_dec_digit(c) {
|
||||
ret scan_number(c, rdr);
|
||||
@ -620,7 +622,7 @@ fn next_token_inner(rdr: string_reader) -> token::token {
|
||||
}
|
||||
}
|
||||
bump(rdr);
|
||||
ret token::LIT_STR(rdr.interner.intern(@accum_str));
|
||||
ret token::LIT_STR((*rdr.interner).intern(@accum_str));
|
||||
}
|
||||
'-' {
|
||||
if nextch(rdr) == '>' {
|
||||
|
@ -42,5 +42,6 @@ impl <T: const copy> of interner<T> for hash_interner<T> {
|
||||
// failing to returning a value as items are interned. But for typestate,
|
||||
// where we first check a pred and then rely on it, ceasing to fail is ok.
|
||||
pure fn get(idx: uint) -> T { self.vect.get_elt(idx) }
|
||||
|
||||
fn len() -> uint { ret self.vect.len(); }
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user