about summary refs log tree commit diff
path: root/src/librustsyntax/parse
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2012-04-15 04:02:25 -0700
committerBrian Anderson <banderson@mozilla.com>2012-04-15 04:02:25 -0700
commit4b4f0643157f6eda24ebaad3bdcf06ef2a3cad93 (patch)
treec351a436863e8b2f670f545b4ab2c48d2a6c19cd /src/librustsyntax/parse
parent2319c2d1ba81cf85aaadd809afc1367f7b217757 (diff)
downloadrust-4b4f0643157f6eda24ebaad3bdcf06ef2a3cad93.tar.gz
rust-4b4f0643157f6eda24ebaad3bdcf06ef2a3cad93.zip
syntax: lexer doesn't need to store the src length
Diffstat (limited to 'src/librustsyntax/parse')
-rw-r--r--src/librustsyntax/parse/lexer.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/librustsyntax/parse/lexer.rs b/src/librustsyntax/parse/lexer.rs
index 0414e11ab31..d5c1c776c0e 100644
--- a/src/librustsyntax/parse/lexer.rs
+++ b/src/librustsyntax/parse/lexer.rs
@@ -7,7 +7,6 @@ export reader, new_reader, next_token, is_whitespace;
 type reader = @{
     span_diagnostic: diagnostic::span_handler,
     src: @str,
-    len: uint,
     mut col: uint,
     mut pos: uint,
     mut curr: char,
@@ -25,12 +24,12 @@ impl reader for reader {
         ret str::slice(*self.src, start - 1u, self.pos - 1u);
     }
     fn next() -> char {
-        if self.pos < self.len {
+        if self.pos < (*self.src).len() {
             ret str::char_at(*self.src, self.pos);
         } else { ret -1 as char; }
     }
     fn bump() {
-        if self.pos < self.len {
+        if self.pos < (*self.src).len() {
             self.col += 1u;
             self.chpos += 1u;
             if self.curr == '\n' {
@@ -59,12 +58,11 @@ impl reader for reader {
 fn new_reader(span_diagnostic: diagnostic::span_handler,
               filemap: codemap::filemap,
               itr: @interner::interner<str>) -> reader {
-    let r = @{span_diagnostic: span_diagnostic,
-              src: filemap.src, len: str::len(*filemap.src),
+    let r = @{span_diagnostic: span_diagnostic, src: filemap.src,
               mut col: 0u, mut pos: 0u, mut curr: -1 as char,
               mut chpos: filemap.start_pos.ch, mut strs: [],
               filemap: filemap, interner: itr};
-    if r.pos < r.len {
+    if r.pos < (*filemap.src).len() {
         let next = str::char_range_at(*r.src, r.pos);
         r.pos = next.next;
         r.curr = next.ch;