diff options
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/comments.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/parse/eval.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/parse/lexer.rs | 14 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 31 | ||||
| -rw-r--r-- | src/libsyntax/parse/token.rs | 2 |
5 files changed, 17 insertions, 34 deletions
diff --git a/src/libsyntax/parse/comments.rs b/src/libsyntax/parse/comments.rs index e05887d28b4..aa3e808f63e 100644 --- a/src/libsyntax/parse/comments.rs +++ b/src/libsyntax/parse/comments.rs @@ -275,7 +275,7 @@ fn gather_comments_and_literals(span_diagnostic: diagnostic::span_handler, srdr: io::reader) -> {cmnts: ~[cmnt], lits: ~[lit]} { let src = @str::from_bytes(srdr.read_whole_stream()); - let itr = @interner::mk::<@str>( + let itr = @interner::mk::<@str/~>( |x| str::hash(*x), |x,y| str::eq(*x, *y) ); diff --git a/src/libsyntax/parse/eval.rs b/src/libsyntax/parse/eval.rs index 883aedb75a6..54a2abf20c9 100644 --- a/src/libsyntax/parse/eval.rs +++ b/src/libsyntax/parse/eval.rs @@ -78,7 +78,7 @@ fn parse_companion_mod(cx: ctx, prefix: str, suffix: option<str>) } } -fn cdir_path_opt(id: ast::ident, attrs: ~[ast::attribute]) -> @str { +fn cdir_path_opt(id: ast::ident, attrs: ~[ast::attribute]) -> @str/~ { alt ::attr::first_attr_value_str_by_name(attrs, "path") { some(d) { ret d; diff --git a/src/libsyntax/parse/lexer.rs b/src/libsyntax/parse/lexer.rs index b3ba35dea2e..d7f9fc12840 100644 --- a/src/libsyntax/parse/lexer.rs +++ b/src/libsyntax/parse/lexer.rs @@ -14,20 +14,20 @@ iface reader { fn next_token() -> {tok: token::token, sp: span}; fn fatal(str) -> !; fn span_diag() -> span_handler; - fn interner() -> @interner<@str>; + fn interner() -> @interner<@str/~>; fn peek() -> {tok: token::token, sp: span}; fn dup() -> reader; } type string_reader = @{ span_diagnostic: span_handler, - src: @str, + src: @str/~, mut col: uint, mut pos: uint, mut curr: char, mut chpos: uint, filemap: codemap::filemap, - interner: @interner<@str>, + interner: @interner<@str/~>, /* cached: */ mut peek_tok: token::token, mut peek_span: span @@ -35,7 +35,7 @@ type string_reader = @{ fn new_string_reader(span_diagnostic: span_handler, filemap: codemap::filemap, - itr: @interner<@str>) -> string_reader { + itr: @interner<@str/~>) -> string_reader { let r = new_low_level_string_reader(span_diagnostic, filemap, itr); string_advance_token(r); /* fill in peek_* */ ret r; @@ -44,7 +44,7 @@ fn new_string_reader(span_diagnostic: span_handler, /* For comments.rs, which hackily pokes into 'pos' and 'curr' */ fn new_low_level_string_reader(span_diagnostic: span_handler, filemap: codemap::filemap, - itr: @interner<@str>) + itr: @interner<@str/~>) -> string_reader { let r = @{span_diagnostic: span_diagnostic, src: filemap.src, mut col: 0u, mut pos: 0u, mut curr: -1 as char, @@ -79,7 +79,7 @@ impl string_reader_as_reader of reader for string_reader { self.span_diagnostic.span_fatal(copy self.peek_span, m) } fn span_diag() -> span_handler { self.span_diagnostic } - fn interner() -> @interner<@str> { self.interner } + fn interner() -> @interner<@str/~> { self.interner } fn peek() -> {tok: token::token, sp: span} { {tok: self.peek_tok, sp: self.peek_span} } @@ -101,7 +101,7 @@ impl tt_reader_as_reader of reader for tt_reader { self.sp_diag.span_fatal(copy self.cur_span, m); } fn span_diag() -> span_handler { self.sp_diag } - fn interner() -> @interner<@str> { self.interner } + fn interner() -> @interner<@str/~> { self.interner } fn peek() -> {tok: token::token, sp: span} { { tok: self.cur_tok, sp: self.cur_span } } diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index f4681ba2619..9d8458c9c60 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -230,7 +230,7 @@ class parser { fn warn(m: str) { self.sess.span_diagnostic.span_warn(copy self.span, m) } - fn get_str(i: token::str_num) -> @str { + fn get_str(i: token::str_num) -> @str/~ { interner::get(*self.reader.interner(), i) } fn get_id() -> node_id { next_node_id(self.sess) } @@ -394,7 +394,7 @@ class parser { } } - fn region_from_name(s: option<@str>) -> @region { + fn region_from_name(s: option<@str/~>) -> @region { let r = alt s { some (string) { re_named(string) } none { re_anon } @@ -461,22 +461,10 @@ class parser { } } else if self.token == token::AT { self.bump(); - // HACK: turn @[...] into a @-evec - alt self.parse_mt() { - {ty: t @ @{node: ty_vec(_), _}, mutbl: m_imm} { - ty_vstore(t, vstore_box) - } - mt { ty_box(mt) } - } + ty_box(self.parse_mt()) } else if self.token == token::TILDE { self.bump(); - // HACK: turn ~[...] into a ~-evec - alt self.parse_mt() { - {ty: t @ @{node: ty_vec(_), _}, mutbl: m_imm} { - ty_vstore(t, vstore_uniq) - } - mt { ty_uniq(mt) } - } + ty_uniq(self.parse_mt()) } else if self.token == token::BINOP(token::STAR) { self.bump(); ty_ptr(self.parse_mt()) @@ -506,13 +494,8 @@ class parser { } else if self.token == token::BINOP(token::AND) { self.bump(); let region = self.parse_region_dot(); - // HACK: turn &a.[...] into a &a-evec - alt self.parse_mt() { - {ty: t @ @{node: ty_vec(_), _}, mutbl: m_imm} { - ty_vstore(t, vstore_slice(region)) - } - mt { ty_rptr(region, mt) } - } + let mt = self.parse_mt(); + ty_rptr(region, mt) } else if self.eat_keyword("pure") { self.parse_ty_fn(ast::pure_fn) } else if self.eat_keyword("unsafe") { @@ -2742,7 +2725,7 @@ class parser { config: self.cfg}); } - fn parse_str() -> @str { + fn parse_str() -> @str/~ { alt copy self.token { token::LIT_STR(s) { self.bump(); self.get_str(s) } _ { diff --git a/src/libsyntax/parse/token.rs b/src/libsyntax/parse/token.rs index bcfb9289086..2c7b14cfe11 100644 --- a/src/libsyntax/parse/token.rs +++ b/src/libsyntax/parse/token.rs @@ -115,7 +115,7 @@ fn binop_to_str(o: binop) -> str { } } -fn to_str(in: interner<@str>, t: token) -> str { +fn to_str(in: interner<@str/~>, t: token) -> str { alt t { EQ { "=" } LT { "<" } |
