Skip to content

Commit 4811a1d

Browse files
committed
---
yaml --- r: 82695 b: refs/heads/auto c: 48499c7 h: refs/heads/master i: 82693: 9f2795b 82691: e0e21f7 82687: e6af581 v: v3
1 parent 10b799b commit 4811a1d

File tree

34 files changed

+928
-595
lines changed

34 files changed

+928
-595
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0
1313
refs/tags/release-0.3.1: 495bae036dfe5ec6ceafd3312b4dca48741e845b
1414
refs/tags/release-0.4: e828ea2080499553b97dfe33b3f4d472b4562ad7
1515
refs/tags/release-0.5: 7e3bcfbf21278251ee936ad53e92e9b719702d73
16-
refs/heads/auto: c1d64297f071ea166ffbe5aea4fa5f94da3b3622
16+
refs/heads/auto: 48499c7494d47f505a640157816cea2690b8d407
1717
refs/heads/servo: af82457af293e2a842ba6b7759b70288da276167
1818
refs/tags/release-0.6: b4ebcfa1812664df5e142f0134a5faea3918544c
1919
refs/tags/0.1: b19db808c2793fe2976759b85a355c3ad8c8b336

branches/auto/.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
*.cpp rust
55
*.h rust
66
*.rs rust
7+
src/etc/pkg/rust-logo.ico binary
78
src/rt/msvc/* -whitespace
89
src/rt/vg/* -whitespace
910
src/rt/linenoise/* -whitespace

branches/auto/RELEASES.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
Version 0.8 (October 2013)
1+
Version 0.8 (September 2013)
22
--------------------------
33

4-
* ~2100 changes, numerous bugfixes
4+
* ~2200 changes, numerous bugfixes
55

66
* Language
77
* The `for` loop syntax has changed to work with the `Iterator` trait.

branches/auto/src/etc/emacs/rust-mode.el

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,6 @@
127127
(defconst rust-mode-keywords
128128
'("as"
129129
"break"
130-
"continue"
131130
"do"
132131
"else" "enum" "extern"
133132
"false" "fn" "for"

branches/auto/src/etc/gedit/share/gtksourceview-3.0/language-specs/rust.lang

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
<keyword>assert</keyword>
4040
<keyword>break</keyword>
4141
<keyword>const</keyword>
42-
<keyword>continue</keyword>
4342
<keyword>do</keyword>
4443
<keyword>drop</keyword>
4544
<keyword>else</keyword>

branches/auto/src/etc/kate/rust.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
<list name="keywords">
1919
<item> as </item>
2020
<item> break </item>
21-
<item> continue </item>
2221
<item> do </item>
2322
<item> drop </item>
2423
<item> else </item>
2 Bytes
Binary file not shown.

branches/auto/src/etc/vim/syntax/rust.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ syn keyword rustOperator as
1818

1919
syn match rustAssert "\<assert\(\w\)*!" contained
2020
syn match rustFail "\<fail\(\w\)*!" contained
21-
syn keyword rustKeyword break continue do extern
21+
syn keyword rustKeyword break do extern
2222
syn keyword rustKeyword in if impl let log
2323
syn keyword rustKeyword for impl let log
2424
syn keyword rustKeyword loop mod once priv pub

branches/auto/src/libextra/bitv.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -523,7 +523,7 @@ impl Bitv {
523523
* with the most significant bits of each byte coming first. Each
524524
* bit becomes true if equal to 1 or false if equal to 0.
525525
*/
526-
pub fn from_utf8(bytes: &[u8]) -> Bitv {
526+
pub fn from_bytes(bytes: &[u8]) -> Bitv {
527527
from_fn(bytes.len() * 8, |i| {
528528
let b = bytes[i / 8] as uint;
529529
let offset = i % 8;
@@ -1275,8 +1275,8 @@ mod tests {
12751275
}
12761276
12771277
#[test]
1278-
fn test_from_utf8() {
1279-
let bitv = from_utf8([0b10110110, 0b00000000, 0b11111111]);
1278+
fn test_from_bytes() {
1279+
let bitv = from_bytes([0b10110110, 0b00000000, 0b11111111]);
12801280
let str = ~"10110110" + "00000000" + "11111111";
12811281
assert_eq!(bitv.to_str(), str);
12821282
}
@@ -1302,7 +1302,7 @@ mod tests {
13021302
#[test]
13031303
fn test_to_bools() {
13041304
let bools = ~[false, false, true, false, false, true, true, false];
1305-
assert_eq!(from_utf8([0b00100110]).to_bools(), bools);
1305+
assert_eq!(from_bytes([0b00100110]).to_bools(), bools);
13061306
}
13071307
13081308
#[test]

branches/auto/src/libextra/crypto/md5.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ static C4: [u32, ..16] = [
156156

157157

158158
/// The MD5 Digest algorithm
159-
struct Md5 {
159+
pub struct Md5 {
160160
priv length_bytes: u64,
161161
priv buffer: FixedBuffer64,
162162
priv state: Md5State,

branches/auto/src/libextra/crypto/sha2.rs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,8 @@ impl Engine512 {
230230
}
231231

232232

233-
struct Sha512 {
233+
/// The SHA-512 hash algorithm
234+
pub struct Sha512 {
234235
priv engine: Engine512
235236
}
236237

@@ -282,7 +283,8 @@ static H512: [u64, ..8] = [
282283
];
283284

284285

285-
struct Sha384 {
286+
/// The SHA-384 hash algorithm
287+
pub struct Sha384 {
286288
priv engine: Engine512
287289
}
288290

@@ -332,7 +334,8 @@ static H384: [u64, ..8] = [
332334
];
333335

334336

335-
struct Sha512Trunc256 {
337+
/// The SHA-512 hash algorithm with digest truncated to 256 bits
338+
pub struct Sha512Trunc256 {
336339
priv engine: Engine512
337340
}
338341

@@ -380,7 +383,8 @@ static H512_TRUNC_256: [u64, ..8] = [
380383
];
381384

382385

383-
struct Sha512Trunc224 {
386+
/// The SHA-512 hash algorithm with digest truncated to 224 bits
387+
pub struct Sha512Trunc224 {
384388
priv engine: Engine512
385389
}
386390

@@ -635,7 +639,8 @@ impl Engine256 {
635639
}
636640

637641

638-
struct Sha256 {
642+
/// The SHA-256 hash algorithm
643+
pub struct Sha256 {
639644
priv engine: Engine256
640645
}
641646

@@ -687,7 +692,8 @@ static H256: [u32, ..8] = [
687692
];
688693

689694

690-
struct Sha224 {
695+
/// The SHA-224 hash algorithm
696+
pub struct Sha224 {
691697
priv engine: Engine256
692698
}
693699

branches/auto/src/libextra/ringbuf.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,19 @@ impl<T> RingBuf<T> {
143143
}
144144
}
145145

146+
/// Swap elements at indices `i` and `j`
147+
///
148+
/// `i` and `j` may be equal.
149+
///
150+
/// Fails if there is no element with the given index
151+
pub fn swap(&mut self, i: uint, j: uint) {
152+
assert!(i < self.len());
153+
assert!(j < self.len());
154+
let ri = self.raw_index(i);
155+
let rj = self.raw_index(j);
156+
self.elts.swap(ri, rj);
157+
}
158+
146159
/// Return index in underlying vec for a given logical element index
147160
fn raw_index(&self, idx: uint) -> uint {
148161
raw_index(self.lo, self.elts.len(), idx)
@@ -604,6 +617,14 @@ mod tests {
604617
assert_eq!(d.elts.capacity(), 64);
605618
}
606619

620+
#[test]
621+
fn test_swap() {
622+
let mut d: RingBuf<int> = range(0, 5).collect();
623+
d.pop_front();
624+
d.swap(0, 3);
625+
assert_eq!(d.iter().map(|&x|x).collect::<~[int]>(), ~[4, 2, 3, 1]);
626+
}
627+
607628
#[test]
608629
fn test_iter() {
609630
let mut d = RingBuf::new();

branches/auto/src/libextra/url.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use std::to_bytes;
2121
use std::uint;
2222

2323
#[deriving(Clone, Eq)]
24-
struct Url {
24+
pub struct Url {
2525
scheme: ~str,
2626
user: Option<UserInfo>,
2727
host: ~str,
@@ -32,7 +32,7 @@ struct Url {
3232
}
3333

3434
#[deriving(Clone, Eq)]
35-
struct UserInfo {
35+
pub struct UserInfo {
3636
user: ~str,
3737
pass: Option<~str>
3838
}

branches/auto/src/librustc/metadata/decoder.rs

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -564,19 +564,19 @@ impl<'self> EachItemContext<'self> {
564564
}
565565
}
566566

567-
let mut continue_ = (self.callback)(*self.path_builder, def_like, vis);
567+
let mut continue = (self.callback)(*self.path_builder, def_like, vis);
568568

569569
let family = item_family(doc);
570570
if family == ForeignMod {
571571
// These are unnamed; pop the name now.
572572
self.pop_name(old_len)
573573
}
574574

575-
if continue_ {
575+
if continue {
576576
// Recurse if necessary.
577577
match family {
578578
Mod | ForeignMod | Trait | Impl => {
579-
continue_ = self.each_item_of_module(def_id);
579+
continue = self.each_item_of_module(def_id);
580580
}
581581
ImmStatic | MutStatic | Struct | UnsafeFn | Fn | ForeignFn |
582582
UnsafeStaticMethod | StaticMethod | Type | ForeignType |
@@ -589,7 +589,7 @@ impl<'self> EachItemContext<'self> {
589589
self.pop_name(old_len)
590590
}
591591

592-
continue_
592+
continue
593593
}
594594

595595
fn each_item_of_module(&mut self, def_id: ast::DefId) -> bool {
@@ -612,7 +612,7 @@ impl<'self> EachItemContext<'self> {
612612
}
613613

614614
fn each_child_of_module_or_crate(&mut self, item_doc: ebml::Doc) -> bool {
615-
let mut continue_ = true;
615+
let mut continue = true;
616616

617617
// Iterate over all children.
618618
do reader::tagged_docs(item_doc, tag_mod_child) |child_info_doc| {
@@ -654,16 +654,16 @@ impl<'self> EachItemContext<'self> {
654654
// Process this item.
655655

656656
let vis = item_visibility(child_item_doc);
657-
continue_ = self.process_item_and_pop_name(child_item_doc,
657+
continue = self.process_item_and_pop_name(child_item_doc,
658658
child_def_id,
659659
old_len,
660660
vis);
661661
}
662662
}
663-
continue_
663+
continue
664664
};
665665

666-
if !continue_ {
666+
if !continue {
667667
return false
668668
}
669669

@@ -705,18 +705,18 @@ impl<'self> EachItemContext<'self> {
705705
match maybe_find_item(def_id.node, other_crates_items) {
706706
None => { self.pop_name(old_len); }
707707
Some(reexported_item_doc) => {
708-
continue_ = self.process_item_and_pop_name(
708+
continue = self.process_item_and_pop_name(
709709
reexported_item_doc,
710710
def_id,
711711
old_len,
712712
ast::public);
713713
}
714714
}
715715

716-
continue_
716+
continue
717717
};
718718

719-
continue_
719+
continue
720720
}
721721
}
722722

branches/auto/src/librustc/metadata/encoder.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -521,12 +521,12 @@ fn encode_reexported_static_methods(ecx: &EncodeContext,
521521
/// * For newtype structs, iterates through the node ID of the constructor.
522522
fn each_auxiliary_node_id(item: @item, callback: &fn(NodeId) -> bool)
523523
-> bool {
524-
let mut continue_ = true;
524+
let mut continue = true;
525525
match item.node {
526526
item_enum(ref enum_def, _) => {
527527
for variant in enum_def.variants.iter() {
528-
continue_ = callback(variant.node.id);
529-
if !continue_ {
528+
continue = callback(variant.node.id);
529+
if !continue {
530530
break
531531
}
532532
}
@@ -537,15 +537,15 @@ fn each_auxiliary_node_id(item: @item, callback: &fn(NodeId) -> bool)
537537
Some(ctor_id) if struct_def.fields.len() > 0 &&
538538
struct_def.fields[0].node.kind ==
539539
ast::unnamed_field => {
540-
continue_ = callback(ctor_id);
540+
continue = callback(ctor_id);
541541
}
542542
_ => {}
543543
}
544544
}
545545
_ => {}
546546
}
547547

548-
continue_
548+
continue
549549
}
550550

551551
fn encode_reexports(ecx: &EncodeContext,

branches/auto/src/librustc/middle/trans/controlflow.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use syntax::ast;
2525
use syntax::ast::Name;
2626
use syntax::ast_util;
2727
use syntax::codemap::Span;
28+
use syntax::visit::Visitor;
2829

2930
pub fn trans_block(bcx: @mut Block, b: &ast::Block, dest: expr::Dest) -> @mut Block {
3031
let _icx = push_ctxt("trans_block");
@@ -64,12 +65,22 @@ pub fn trans_if(bcx: @mut Block,
6465
// Drop branches that are known to be impossible
6566
if is_const(cond_val) && !is_undef(cond_val) {
6667
if const_to_uint(cond_val) == 1 {
68+
match els {
69+
Some(elexpr) => {
70+
let mut trans = TransItemVisitor { ccx: bcx.fcx.ccx };
71+
trans.visit_expr(elexpr, ());
72+
}
73+
None => {}
74+
}
6775
// if true { .. } [else { .. }]
6876
return do with_scope(bcx, thn.info(), "if_true_then") |bcx| {
6977
let bcx_out = trans_block(bcx, thn, dest);
7078
trans_block_cleanups(bcx_out, block_cleanups(bcx))
7179
}
7280
} else {
81+
let mut trans = TransItemVisitor { ccx: bcx.fcx.ccx } ;
82+
trans.visit_block(thn, ());
83+
7384
match els {
7485
// if false { .. } else { .. }
7586
Some(elexpr) => {

branches/auto/src/librustc/middle/typeck/check/method.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,7 @@ impl<'self> LookupContext<'self> {
372372
// to a trait and its supertraits.
373373
fn get_method_index(&self,
374374
trait_ref: @TraitRef,
375-
subtrait_id: ast::DefId,
375+
subtrait: @TraitRef,
376376
n_method: uint) -> uint {
377377
let tcx = self.tcx();
378378

@@ -382,15 +382,14 @@ impl<'self> LookupContext<'self> {
382382
// we find the trait the method came from, counting up the
383383
// methods from them.
384384
let mut method_count = 0;
385-
do ty::each_bound_trait_and_supertraits(tcx, &[trait_ref])
385+
do ty::each_bound_trait_and_supertraits(tcx, &[subtrait])
386386
|bound_ref| {
387-
if bound_ref.def_id == subtrait_id { false }
387+
if bound_ref.def_id == trait_ref.def_id { false }
388388
else {
389389
method_count += ty::trait_methods(tcx, bound_ref.def_id).len();
390390
true
391391
}
392392
};
393-
394393
return method_count + n_method;
395394
}
396395

@@ -418,9 +417,9 @@ impl<'self> LookupContext<'self> {
418417
let trait_ref = @TraitRef { def_id: did, substs: rcvr_substs.clone() };
419418

420419
do self.push_inherent_candidates_from_bounds_inner(&[trait_ref])
421-
|trait_ref, m, method_num, _bound_num| {
420+
|new_trait_ref, m, method_num, _bound_num| {
422421
let vtable_index =
423-
self.get_method_index(trait_ref, trait_ref.def_id, method_num);
422+
self.get_method_index(new_trait_ref, trait_ref, method_num);
424423
// We need to fix up the transformed self type.
425424
let transformed_self_ty =
426425
self.construct_transformed_self_ty_for_object(

0 commit comments

Comments
 (0)