Skip to content

Commit 8e77cc3

Browse files
committed
---
yaml --- r: 42971 b: refs/heads/try c: 80cd485 h: refs/heads/master i: 42969: 0936581 42967: 0e9891e v: v3
1 parent 7488238 commit 8e77cc3

File tree

6 files changed

+91
-73
lines changed

6 files changed

+91
-73
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 19dfec2aaf746535de1521f68421f9980dbf25de
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 2f46b763da2c098913884f101b6d71d69af41b49
5-
refs/heads/try: 61827a70205c0be48badf09eced0e0d5dc6a4e02
5+
refs/heads/try: 80cd485b494556c6bcdc3793acfa52bcd8faab8d
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: a810c03263670238bccd64cabb12a23a46e3a278

branches/try/src/librustc/middle/ty.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2435,7 +2435,7 @@ pub fn type_structurally_contains_uniques(cx: ctxt, ty: t) -> bool {
24352435
24362436
pub fn type_is_integral(ty: t) -> bool {
24372437
match get(ty).sty {
2438-
ty_infer(IntVar(_)) | ty_int(_) | ty_uint(_) | ty_bool => true,
2438+
ty_infer(IntVar(_)) | ty_int(_) | ty_uint(_) => true,
24392439
_ => false
24402440
}
24412441
}

branches/try/src/libstd/bitv.rs

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ impl BigBitv {
156156
fn each_storage(op: fn(v: &mut uint) -> bool) {
157157
for uint::range(0, self.storage.len()) |i| {
158158
let mut w = self.storage[i];
159-
let b = !op(&mut w);
159+
let b = op(&mut w);
160160
self.storage[i] = w;
161161
if !b { break; }
162162
}
@@ -981,6 +981,24 @@ mod tests {
981981
assert !b1[40];
982982
assert !b1[80];
983983
}
984+
985+
#[test]
986+
pub fn test_small_clear() {
987+
let b = Bitv(14, true);
988+
b.clear();
989+
for b.ones |i| {
990+
die!(fmt!("found 1 at %?", i));
991+
}
992+
}
993+
994+
#[test]
995+
pub fn test_big_clear() {
996+
let b = Bitv(140, true);
997+
b.clear();
998+
for b.ones |i| {
999+
die!(fmt!("found 1 at %?", i));
1000+
}
1001+
}
9841002
}
9851003

9861004
//

branches/try/src/libsyntax/ext/tt/transcribe.rs

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,7 @@ type tt_frame = @{
3939
up: tt_frame_up,
4040
};
4141

42-
pub type tt_reader = @tt_reader_;
43-
pub type tt_reader_ = {
42+
pub type tt_reader = @{
4443
sp_diag: span_handler,
4544
interner: @ident_interner,
4645
mut cur: tt_frame,
@@ -88,7 +87,7 @@ pure fn dup_tt_frame(&&f: tt_frame) -> tt_frame {
8887
}
8988
}
9089

91-
pub pure fn dup_tt_reader(r: &tt_reader_) -> tt_reader {
90+
pub pure fn dup_tt_reader(&&r: tt_reader) -> tt_reader {
9291
@{sp_diag: r.sp_diag, interner: r.interner,
9392
mut cur: dup_tt_frame(r.cur),
9493
interpolations: r.interpolations,
@@ -97,7 +96,7 @@ pub pure fn dup_tt_reader(r: &tt_reader_) -> tt_reader {
9796
}
9897

9998

100-
pure fn lookup_cur_matched_by_matched(r: &tt_reader_,
99+
pure fn lookup_cur_matched_by_matched(r: tt_reader,
101100
start: @named_match) -> @named_match {
102101
pure fn red(+ad: @named_match, idx: &uint) -> @named_match {
103102
match *ad {
@@ -111,15 +110,15 @@ pure fn lookup_cur_matched_by_matched(r: &tt_reader_,
111110
vec::foldl(start, r.repeat_idx, red)
112111
}
113112

114-
fn lookup_cur_matched(r: &tt_reader_, name: ident) -> @named_match {
113+
fn lookup_cur_matched(r: tt_reader, name: ident) -> @named_match {
115114
lookup_cur_matched_by_matched(r, r.interpolations.get(&name))
116115
}
117116
enum lis {
118117
lis_unconstrained, lis_constraint(uint, ident), lis_contradiction(~str)
119118
}
120119

121-
fn lockstep_iter_size(t: token_tree, r: &tt_reader_) -> lis {
122-
fn lis_merge(lhs: lis, rhs: lis, r: &tt_reader_) -> lis {
120+
fn lockstep_iter_size(t: token_tree, r: tt_reader) -> lis {
121+
fn lis_merge(lhs: lis, rhs: lis, r: tt_reader) -> lis {
123122
match lhs {
124123
lis_unconstrained => rhs,
125124
lis_contradiction(_) => lhs,
@@ -151,7 +150,7 @@ fn lockstep_iter_size(t: token_tree, r: &tt_reader_) -> lis {
151150
}
152151

153152

154-
pub fn tt_next_token(r: &tt_reader_) -> TokenAndSpan {
153+
pub fn tt_next_token(&&r: tt_reader) -> TokenAndSpan {
155154
let ret_val = TokenAndSpan { tok: r.cur_tok, sp: r.cur_span };
156155
while r.cur.idx >= r.cur.readme.len() {
157156
/* done with this set; pop or repeat? */
@@ -200,26 +199,25 @@ pub fn tt_next_token(r: &tt_reader_) -> TokenAndSpan {
200199
return ret_val;
201200
}
202201
tt_seq(sp, ref tts, ref sep, zerok) => {
203-
match lockstep_iter_size(tt_seq(sp, (*tts), (*sep), zerok), r) {
204-
lis_unconstrained => {
205-
r.sp_diag.span_fatal(
202+
match lockstep_iter_size(tt_seq(sp, (*tts), (*sep), zerok), r) {
203+
lis_unconstrained => {
204+
r.sp_diag.span_fatal(
206205
sp, /* blame macro writer */
207-
~"attempted to repeat an expression \
208-
containing no syntax \
209-
variables matched as repeating at this depth");
210-
}
211-
lis_contradiction(ref msg) => {
212-
/* FIXME #2887 blame macro invoker instead*/
213-
r.sp_diag.span_fatal(sp, (*msg));
214-
}
215-
lis_constraint(len, _) => {
216-
if len == 0 {
217-
if !zerok {
206+
~"attempted to repeat an expression containing no syntax \
207+
variables matched as repeating at this depth");
208+
}
209+
lis_contradiction(ref msg) => {
210+
/* FIXME #2887 blame macro invoker instead*/
211+
r.sp_diag.span_fatal(sp, (*msg));
212+
}
213+
lis_constraint(len, _) => {
214+
if len == 0 {
215+
if !zerok {
218216
r.sp_diag.span_fatal(sp, /* FIXME #2887 blame invoker
219-
*/
217+
*/
220218
~"this must repeat at least \
221-
once");
222-
}
219+
once");
220+
}
223221

224222
r.cur.idx += 1u;
225223
return tt_next_token(r);

branches/try/src/libsyntax/parse/lexer.rs

Lines changed: 44 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -24,25 +24,24 @@ use core::either;
2424
use core::str;
2525
use core::u64;
2626

27-
pub use ext::tt::transcribe::{tt_reader, tt_reader_, new_tt_reader};
27+
pub use ext::tt::transcribe::{tt_reader, new_tt_reader};
2828

29-
//use std;
29+
use std;
3030

3131
pub trait reader {
32-
fn is_eof(&self) -> bool;
33-
fn next_token(&self) -> TokenAndSpan;
34-
fn fatal(&self,~str) -> !;
35-
fn span_diag(&self) -> span_handler;
36-
pure fn interner(&self) -> @token::ident_interner;
37-
fn peek(&self) -> TokenAndSpan;
38-
fn dup(&self) -> reader;
32+
fn is_eof() -> bool;
33+
fn next_token() -> TokenAndSpan;
34+
fn fatal(~str) -> !;
35+
fn span_diag() -> span_handler;
36+
pure fn interner() -> @token::ident_interner;
37+
fn peek() -> TokenAndSpan;
38+
fn dup() -> reader;
3939
}
4040

4141
#[deriving_eq]
4242
pub struct TokenAndSpan {tok: token::Token, sp: span}
4343

44-
pub type string_reader = @string_reader_;
45-
pub type string_reader_ = {
44+
pub type string_reader = @{
4645
span_diagnostic: span_handler,
4746
src: @~str,
4847
// The absolute offset within the codemap of the next character to read
@@ -91,7 +90,7 @@ pub fn new_low_level_string_reader(span_diagnostic: span_handler,
9190
// duplicating the string reader is probably a bad idea, in
9291
// that using them will cause interleaved pushes of line
9392
// offsets to the underlying filemap...
94-
fn dup_string_reader(r: &string_reader_) -> string_reader {
93+
fn dup_string_reader(&&r: string_reader) -> string_reader {
9594
@{span_diagnostic: r.span_diagnostic, src: r.src,
9695
mut pos: r.pos,
9796
mut last_pos: r.last_pos,
@@ -100,28 +99,28 @@ fn dup_string_reader(r: &string_reader_) -> string_reader {
10099
mut peek_tok: r.peek_tok, mut peek_span: r.peek_span}
101100
}
102101

103-
impl string_reader_: reader {
104-
fn is_eof(&self) -> bool { is_eof(self) }
102+
impl string_reader: reader {
103+
fn is_eof() -> bool { is_eof(self) }
105104
// return the next token. EFFECT: advances the string_reader.
106-
fn next_token(&self) -> TokenAndSpan {
105+
fn next_token() -> TokenAndSpan {
107106
let ret_val = TokenAndSpan {tok: self.peek_tok, sp: self.peek_span};
108107
string_advance_token(self);
109108
return ret_val;
110109
}
111-
fn fatal(&self, m: ~str) -> ! {
110+
fn fatal(m: ~str) -> ! {
112111
self.span_diagnostic.span_fatal(copy self.peek_span, m)
113112
}
114-
fn span_diag(&self) -> span_handler { self.span_diagnostic }
115-
pure fn interner(&self) -> @token::ident_interner { self.interner }
116-
fn peek(&self) -> TokenAndSpan {
113+
fn span_diag() -> span_handler { self.span_diagnostic }
114+
pure fn interner() -> @token::ident_interner { self.interner }
115+
fn peek() -> TokenAndSpan {
117116
TokenAndSpan {tok: self.peek_tok, sp: self.peek_span}
118117
}
119-
fn dup(&self) -> reader { dup_string_reader(self) as reader }
118+
fn dup() -> reader { dup_string_reader(self) as reader }
120119
}
121120

122-
pub impl tt_reader_: reader {
123-
fn is_eof(&self) -> bool { self.cur_tok == token::EOF }
124-
fn next_token(&self) -> TokenAndSpan {
121+
pub impl tt_reader: reader {
122+
fn is_eof() -> bool { self.cur_tok == token::EOF }
123+
fn next_token() -> TokenAndSpan {
125124
/* weird resolve bug: if the following `if`, or any of its
126125
statements are removed, we get resolution errors */
127126
if false {
@@ -130,19 +129,19 @@ pub impl tt_reader_: reader {
130129
}
131130
tt_next_token(self)
132131
}
133-
fn fatal(&self, m: ~str) -> ! {
132+
fn fatal(m: ~str) -> ! {
134133
self.sp_diag.span_fatal(copy self.cur_span, m);
135134
}
136-
fn span_diag(&self) -> span_handler { self.sp_diag }
137-
pure fn interner(&self) -> @token::ident_interner { self.interner }
138-
fn peek(&self) -> TokenAndSpan {
135+
fn span_diag() -> span_handler { self.sp_diag }
136+
pure fn interner() -> @token::ident_interner { self.interner }
137+
fn peek() -> TokenAndSpan {
139138
TokenAndSpan { tok: self.cur_tok, sp: self.cur_span }
140139
}
141-
fn dup(&self) -> reader { dup_tt_reader(self) as reader }
140+
fn dup() -> reader { dup_tt_reader(self) as reader }
142141
}
143142

144143
// EFFECT: advance peek_tok and peek_span to refer to the next token.
145-
fn string_advance_token(r: &string_reader_) {
144+
fn string_advance_token(&&r: string_reader) {
146145
match (consume_whitespace_and_comments(r)) {
147146
Some(comment) => {
148147
r.peek_tok = comment.tok;
@@ -160,11 +159,11 @@ fn string_advance_token(r: &string_reader_) {
160159
}
161160
}
162161

163-
fn byte_offset(rdr: &string_reader_) -> BytePos {
162+
fn byte_offset(rdr: string_reader) -> BytePos {
164163
(rdr.pos - rdr.filemap.start_pos)
165164
}
166165

167-
pub fn get_str_from(rdr: &string_reader_, start: BytePos) -> ~str {
166+
pub fn get_str_from(rdr: string_reader, start: BytePos) -> ~str {
168167
unsafe {
169168
// I'm pretty skeptical about this subtraction. What if there's a
170169
// multi-byte character before the mark?
@@ -175,7 +174,7 @@ pub fn get_str_from(rdr: &string_reader_, start: BytePos) -> ~str {
175174

176175
// EFFECT: advance the StringReader by one character. If a newline is
177176
// discovered, add it to the FileMap's list of line start offsets.
178-
pub fn bump(rdr: &string_reader_) {
177+
pub fn bump(rdr: string_reader) {
179178
rdr.last_pos = rdr.pos;
180179
let current_byte_offset = byte_offset(rdr).to_uint();;
181180
if current_byte_offset < (*rdr.src).len() {
@@ -199,10 +198,10 @@ pub fn bump(rdr: &string_reader_) {
199198
rdr.curr = -1 as char;
200199
}
201200
}
202-
pub fn is_eof(rdr: &string_reader_) -> bool {
201+
pub fn is_eof(rdr: string_reader) -> bool {
203202
rdr.curr == -1 as char
204203
}
205-
pub fn nextch(rdr: &string_reader_) -> char {
204+
pub fn nextch(rdr: string_reader) -> char {
206205
let offset = byte_offset(rdr).to_uint();
207206
if offset < (*rdr.src).len() {
208207
return str::char_at(*rdr.src, offset);
@@ -247,7 +246,7 @@ fn is_bin_digit(c: char) -> bool { return c == '0' || c == '1'; }
247246

248247
// EFFECT: eats whitespace and comments.
249248
// returns a Some(sugared-doc-attr) if one exists, None otherwise.
250-
fn consume_whitespace_and_comments(rdr: &string_reader_)
249+
fn consume_whitespace_and_comments(rdr: string_reader)
251250
-> Option<TokenAndSpan> {
252251
while is_whitespace(rdr.curr) { bump(rdr); }
253252
return consume_any_line_comment(rdr);
@@ -256,7 +255,7 @@ fn consume_whitespace_and_comments(rdr: &string_reader_)
256255
// PRECONDITION: rdr.curr is not whitespace
257256
// EFFECT: eats any kind of comment.
258257
// returns a Some(sugared-doc-attr) if one exists, None otherwise
259-
fn consume_any_line_comment(rdr: &string_reader_)
258+
fn consume_any_line_comment(rdr: string_reader)
260259
-> Option<TokenAndSpan> {
261260
if rdr.curr == '/' {
262261
match nextch(rdr) {
@@ -299,7 +298,7 @@ fn consume_any_line_comment(rdr: &string_reader_)
299298
}
300299

301300
// might return a sugared-doc-attr
302-
fn consume_block_comment(rdr: &string_reader_)
301+
fn consume_block_comment(rdr: string_reader)
303302
-> Option<TokenAndSpan> {
304303

305304
// block comments starting with "/**" or "/*!" are doc-comments
@@ -338,7 +337,7 @@ fn consume_block_comment(rdr: &string_reader_)
338337
return consume_whitespace_and_comments(rdr);
339338
}
340339

341-
fn scan_exponent(rdr: &string_reader_) -> Option<~str> {
340+
fn scan_exponent(rdr: string_reader) -> Option<~str> {
342341
let mut c = rdr.curr;
343342
let mut rslt = ~"";
344343
if c == 'e' || c == 'E' {
@@ -356,7 +355,7 @@ fn scan_exponent(rdr: &string_reader_) -> Option<~str> {
356355
} else { return None::<~str>; }
357356
}
358357

359-
fn scan_digits(rdr: &string_reader_, radix: uint) -> ~str {
358+
fn scan_digits(rdr: string_reader, radix: uint) -> ~str {
360359
let mut rslt = ~"";
361360
loop {
362361
let c = rdr.curr;
@@ -371,7 +370,7 @@ fn scan_digits(rdr: &string_reader_, radix: uint) -> ~str {
371370
};
372371
}
373372

374-
fn scan_number(c: char, rdr: &string_reader_) -> token::Token {
373+
fn scan_number(c: char, rdr: string_reader) -> token::Token {
375374
let mut num_str, base = 10u, c = c, n = nextch(rdr);
376375
if c == '0' && n == 'x' {
377376
bump(rdr);
@@ -480,7 +479,7 @@ fn scan_number(c: char, rdr: &string_reader_) -> token::Token {
480479
}
481480
}
482481

483-
fn scan_numeric_escape(rdr: &string_reader_, n_hex_digits: uint) -> char {
482+
fn scan_numeric_escape(rdr: string_reader, n_hex_digits: uint) -> char {
484483
let mut accum_int = 0, i = n_hex_digits;
485484
while i != 0u {
486485
let n = rdr.curr;
@@ -495,7 +494,7 @@ fn scan_numeric_escape(rdr: &string_reader_, n_hex_digits: uint) -> char {
495494
return accum_int as char;
496495
}
497496

498-
fn next_token_inner(rdr: &string_reader_) -> token::Token {
497+
fn next_token_inner(rdr: string_reader) -> token::Token {
499498
let mut accum_str = ~"";
500499
let mut c = rdr.curr;
501500
if (c >= 'a' && c <= 'z')
@@ -520,7 +519,7 @@ fn next_token_inner(rdr: &string_reader_) -> token::Token {
520519
if is_dec_digit(c) {
521520
return scan_number(c, rdr);
522521
}
523-
fn binop(rdr: &string_reader_, op: token::binop) -> token::Token {
522+
fn binop(rdr: string_reader, op: token::binop) -> token::Token {
524523
bump(rdr);
525524
if rdr.curr == '=' {
526525
bump(rdr);
@@ -713,7 +712,7 @@ fn next_token_inner(rdr: &string_reader_) -> token::Token {
713712
}
714713
}
715714

716-
fn consume_whitespace(rdr: &string_reader_) {
715+
fn consume_whitespace(rdr: string_reader) {
717716
while is_whitespace(rdr.curr) && !is_eof(rdr) { bump(rdr); }
718717
}
719718

@@ -724,7 +723,7 @@ pub mod test {
724723
use util::interner;
725724
use diagnostic;
726725
use util::testing::{check_equal, check_equal_ptr};
727-
#[tetst] fn t1 () {
726+
#[test] fn t1 () {
728727
let teststr =
729728
@~"/* my source file */
730729
fn main() { io::println(~\"zebra\"); }\n";

0 commit comments

Comments
 (0)