Skip to content

Commit 2a2eceb

Browse files
committed
---
yaml --- r: 105079 b: refs/heads/snap-stage3 c: f0f5072 h: refs/heads/master i: 105077: 4d45133 105075: c8df2fc 105071: 7f73f6b v: v3
1 parent f4020a7 commit 2a2eceb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1320
-135
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 62f1d68439dcfd509eaca29887afa97f22938373
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: bc37b8fde5626f5405c8424a9fa59bf622013eb3
4+
refs/heads/snap-stage3: f0f5072566549e8da327849036c1ac9b85c9c4bf
55
refs/heads/try: db814977d07bd798feb24f6b74c00800ef458a13
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/src/compiletest/runtest.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -337,7 +337,7 @@ fn run_debuginfo_test(config: &config, props: &TestProps, testfile: &Path) {
337337
}
338338
}
339339

340-
if tool_path.is_empty() {
340+
if tool_path.equals(&~"") {
341341
fatal(~"cannot found android cross path");
342342
}
343343

branches/snap-stage3/src/driver/driver.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11+
#[no_uv]; // remove this after stage0
12+
#[allow(attribute_usage)]; // remove this after stage0
13+
extern crate native; // remove this after stage0
14+
1115
#[cfg(rustdoc)]
1216
extern crate this = "rustdoc";
1317

branches/snap-stage3/src/libarena/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
html_root_url = "http://static.rust-lang.org/doc/master")];
2525
#[allow(missing_doc)];
2626
#[feature(managed_boxes)];
27+
#[allow(deprecated_owned_vector)]; // NOTE: remove after stage0
2728

2829
extern crate collections;
2930

branches/snap-stage3/src/libcollections/btree.rs

Lines changed: 44 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,16 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for BTree<K, V> {
9494

9595
impl<K: TotalOrd, V: TotalEq> Eq for BTree<K, V> {
9696
fn eq(&self, other: &BTree<K, V>) -> bool {
97-
self.root.cmp(&other.root) == Equal
97+
self.equals(other)
9898
}
9999
}
100100

101-
impl<K: TotalOrd, V: TotalEq> TotalEq for BTree<K, V> {}
101+
impl<K: TotalOrd, V: TotalEq> TotalEq for BTree<K, V> {
102+
///Testing equality on BTrees by comparing the root.
103+
fn equals(&self, other: &BTree<K, V>) -> bool {
104+
self.root.cmp(&other.root) == Equal
105+
}
106+
}
102107

103108
impl<K: TotalOrd, V: TotalEq> Ord for BTree<K, V> {
104109
fn lt(&self, other: &BTree<K, V>) -> bool {
@@ -199,6 +204,14 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for Node<K, V> {
199204

200205
impl<K: TotalOrd, V: TotalEq> Eq for Node<K, V> {
201206
fn eq(&self, other: &Node<K, V>) -> bool {
207+
self.equals(other)
208+
}
209+
}
210+
211+
impl<K: TotalOrd, V: TotalEq> TotalEq for Node<K, V> {
212+
///Returns whether two nodes are equal based on the keys of each element.
213+
///Two nodes are equal if all of their keys are the same.
214+
fn equals(&self, other: &Node<K, V>) -> bool{
202215
match *self{
203216
BranchNode(ref branch) => {
204217
if other.is_leaf() {
@@ -219,8 +232,6 @@ impl<K: TotalOrd, V: TotalEq> Eq for Node<K, V> {
219232
}
220233
}
221234

222-
impl<K: TotalOrd, V: TotalEq> TotalEq for Node<K, V> {}
223-
224235
impl<K: TotalOrd, V: TotalEq> Ord for Node<K, V> {
225236
fn lt(&self, other: &Node<K, V>) -> bool {
226237
self.cmp(other) == Less
@@ -394,11 +405,16 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for Leaf<K, V> {
394405

395406
impl<K: TotalOrd, V: TotalEq> Eq for Leaf<K, V> {
396407
fn eq(&self, other: &Leaf<K, V>) -> bool {
397-
self.elts == other.elts
408+
self.equals(other)
398409
}
399410
}
400411

401-
impl<K: TotalOrd, V: TotalEq> TotalEq for Leaf<K, V> {}
412+
impl<K: TotalOrd, V: TotalEq> TotalEq for Leaf<K, V> {
413+
///Implementation of equals function for leaves that compares LeafElts.
414+
fn equals(&self, other: &Leaf<K, V>) -> bool {
415+
self.elts.equals(&other.elts)
416+
}
417+
}
402418

403419
impl<K: TotalOrd, V: TotalEq> Ord for Leaf<K, V> {
404420
fn lt(&self, other: &Leaf<K, V>) -> bool {
@@ -623,11 +639,16 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for Branch<K, V> {
623639

624640
impl<K: TotalOrd, V: TotalEq> Eq for Branch<K, V> {
625641
fn eq(&self, other: &Branch<K, V>) -> bool {
626-
self.elts == other.elts
642+
self.equals(other)
627643
}
628644
}
629645

630-
impl<K: TotalOrd, V: TotalEq> TotalEq for Branch<K, V> {}
646+
impl<K: TotalOrd, V: TotalEq> TotalEq for Branch<K, V> {
647+
///Equals function for Branches--compares all the elements in each branch
648+
fn equals(&self, other: &Branch<K, V>) -> bool {
649+
self.elts.equals(&other.elts)
650+
}
651+
}
631652

632653
impl<K: TotalOrd, V: TotalEq> Ord for Branch<K, V> {
633654
fn lt(&self, other: &Branch<K, V>) -> bool {
@@ -691,11 +712,16 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for LeafElt<K, V> {
691712

692713
impl<K: TotalOrd, V: TotalEq> Eq for LeafElt<K, V> {
693714
fn eq(&self, other: &LeafElt<K, V>) -> bool {
694-
self.key == other.key && self.value == other.value
715+
self.equals(other)
695716
}
696717
}
697718

698-
impl<K: TotalOrd, V: TotalEq> TotalEq for LeafElt<K, V> {}
719+
impl<K: TotalOrd, V: TotalEq> TotalEq for LeafElt<K, V> {
720+
///TotalEq for LeafElts
721+
fn equals(&self, other: &LeafElt<K, V>) -> bool {
722+
self.key.equals(&other.key) && self.value.equals(&other.value)
723+
}
724+
}
699725

700726
impl<K: TotalOrd, V: TotalEq> Ord for LeafElt<K, V> {
701727
fn lt(&self, other: &LeafElt<K, V>) -> bool {
@@ -740,11 +766,16 @@ impl<K: Clone + TotalOrd, V: Clone> Clone for BranchElt<K, V> {
740766

741767
impl<K: TotalOrd, V: TotalEq> Eq for BranchElt<K, V>{
742768
fn eq(&self, other: &BranchElt<K, V>) -> bool {
743-
self.key == other.key && self.value == other.value
769+
self.equals(other)
744770
}
745771
}
746772

747-
impl<K: TotalOrd, V: TotalEq> TotalEq for BranchElt<K, V>{}
773+
impl<K: TotalOrd, V: TotalEq> TotalEq for BranchElt<K, V>{
774+
///TotalEq for BranchElts
775+
fn equals(&self, other: &BranchElt<K, V>) -> bool {
776+
self.key.equals(&other.key)&&self.value.equals(&other.value)
777+
}
778+
}
748779

749780
impl<K: TotalOrd, V: TotalEq> Ord for BranchElt<K, V> {
750781
fn lt(&self, other: &BranchElt<K, V>) -> bool {
@@ -869,7 +900,7 @@ mod test_btree {
869900
fn btree_clone_test() {
870901
let b = BTree::new(1, ~"abc", 2);
871902
let b2 = b.clone();
872-
assert!(b.root == b2.root)
903+
assert!(b.root.equals(&b2.root))
873904
}
874905
875906
//Tests the BTree's cmp() method when one node is "less than" another.

branches/snap-stage3/src/libcollections/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
html_root_url = "http://static.rust-lang.org/doc/master")];
2222

2323
#[feature(macro_rules, managed_boxes, default_type_params, phase)];
24+
#[allow(deprecated_owned_vector)]; // NOTE: remove after stage0
2425

2526
extern crate rand;
2627

branches/snap-stage3/src/libgreen/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,7 @@
174174
// NB this does *not* include globs, please keep it that way.
175175
#[feature(macro_rules, phase)];
176176
#[allow(visible_private_types)];
177+
#[allow(deprecated_owned_vector)]; // NOTE: remove after stage0
177178

178179
#[cfg(test)] #[phase(syntax, link)] extern crate log;
179180
extern crate rand;

branches/snap-stage3/src/libnative/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
html_root_url = "http://static.rust-lang.org/doc/master")];
5151
#[deny(unused_result, unused_must_use)];
5252
#[allow(non_camel_case_types)];
53+
#[allow(deprecated_owned_vector)]; // NOTE: remove after stage0
5354

5455
// NB this crate explicitly does *not* allow glob imports, please seriously
5556
// consider whether they're needed before adding that feature here (the

branches/snap-stage3/src/libnum/bigint.rs

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,15 @@ pub struct BigUint {
9292

9393
impl Eq for BigUint {
9494
#[inline]
95-
fn eq(&self, other: &BigUint) -> bool {
95+
fn eq(&self, other: &BigUint) -> bool { self.equals(other) }
96+
}
97+
98+
impl TotalEq for BigUint {
99+
#[inline]
100+
fn equals(&self, other: &BigUint) -> bool {
96101
match self.cmp(other) { Equal => true, _ => false }
97102
}
98103
}
99-
impl TotalEq for BigUint {}
100104

101105
impl Ord for BigUint {
102106
#[inline]
@@ -848,9 +852,31 @@ fn get_radix_base(radix: uint) -> (uint, uint) {
848852
}
849853

850854
/// A Sign is a `BigInt`'s composing element.
851-
#[deriving(Eq, Ord, TotalEq, TotalOrd, Clone, Show)]
855+
#[deriving(Eq, Clone, Show)]
852856
pub enum Sign { Minus, Zero, Plus }
853857

858+
impl Ord for Sign {
859+
#[inline]
860+
fn lt(&self, other: &Sign) -> bool {
861+
match self.cmp(other) { Less => true, _ => false}
862+
}
863+
}
864+
865+
impl TotalEq for Sign {
866+
#[inline]
867+
fn equals(&self, other: &Sign) -> bool { *self == *other }
868+
}
869+
impl TotalOrd for Sign {
870+
#[inline]
871+
fn cmp(&self, other: &Sign) -> Ordering {
872+
match (*self, *other) {
873+
(Minus, Minus) | (Zero, Zero) | (Plus, Plus) => Equal,
874+
(Minus, Zero) | (Minus, Plus) | (Zero, Plus) => Less,
875+
_ => Greater
876+
}
877+
}
878+
}
879+
854880
impl Neg<Sign> for Sign {
855881
/// Negate Sign value.
856882
#[inline]
@@ -872,13 +898,16 @@ pub struct BigInt {
872898

873899
impl Eq for BigInt {
874900
#[inline]
875-
fn eq(&self, other: &BigInt) -> bool {
901+
fn eq(&self, other: &BigInt) -> bool { self.equals(other) }
902+
}
903+
904+
impl TotalEq for BigInt {
905+
#[inline]
906+
fn equals(&self, other: &BigInt) -> bool {
876907
match self.cmp(other) { Equal => true, _ => false }
877908
}
878909
}
879910

880-
impl TotalEq for BigInt {}
881-
882911
impl Ord for BigInt {
883912
#[inline]
884913
fn lt(&self, other: &BigInt) -> bool {

branches/snap-stage3/src/libnum/rational.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,20 +147,20 @@ macro_rules! cmp_impl {
147147
cmp_impl!(impl $imp, $($method -> bool),+)
148148
};
149149
// return something other than a Ratio<T>
150-
(impl $imp:ident, $($method:ident -> $res:ty),*) => {
150+
(impl $imp:ident, $($method:ident -> $res:ty),+) => {
151151
impl<T: Mul<T,T> + $imp> $imp for Ratio<T> {
152152
$(
153153
#[inline]
154154
fn $method(&self, other: &Ratio<T>) -> $res {
155155
(self.numer * other.denom). $method (&(self.denom*other.numer))
156156
}
157-
)*
157+
)+
158158
}
159159
};
160160
}
161161
cmp_impl!(impl Eq, eq, ne)
162+
cmp_impl!(impl TotalEq, equals)
162163
cmp_impl!(impl Ord, lt, gt, le, ge)
163-
cmp_impl!(impl TotalEq, )
164164
cmp_impl!(impl TotalOrd, cmp -> cmp::Ordering)
165165

166166
/* Arithmetic */

branches/snap-stage3/src/librand/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ println!("{:?}", tuple_ptr)
7171
html_root_url = "http://static.rust-lang.org/doc/master")];
7272

7373
#[feature(macro_rules, managed_boxes, phase)];
74+
#[allow(deprecated_owned_vector)]; // NOTE: remove after stage0
7475

7576
#[cfg(test)]
7677
#[phase(syntax, link)] extern crate log;

branches/snap-stage3/src/librustc/back/link.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -937,16 +937,18 @@ fn link_rlib<'a>(sess: &'a Session,
937937
// For LTO purposes, the bytecode of this library is also inserted
938938
// into the archive.
939939
let bc = obj_filename.with_extension("bc");
940+
let bc_deflated = obj_filename.with_extension("bc.deflate");
940941
match fs::File::open(&bc).read_to_end().and_then(|data| {
941-
fs::File::create(&bc).write(flate::deflate_bytes(data).as_slice())
942+
fs::File::create(&bc_deflated).write(flate::deflate_bytes(data).as_slice())
942943
}) {
943944
Ok(()) => {}
944945
Err(e) => {
945946
sess.err(format!("failed to compress bytecode: {}", e));
946947
sess.abort_if_errors()
947948
}
948949
}
949-
a.add_file(&bc, false);
950+
a.add_file(&bc_deflated, false);
951+
remove(sess, &bc_deflated);
950952
if !sess.opts.cg.save_temps &&
951953
!sess.opts.output_types.contains(&OutputTypeBitcode) {
952954
remove(sess, &bc);

branches/snap-stage3/src/librustc/back/lto.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,9 +52,9 @@ pub fn run(sess: &session::Session, llmod: ModuleRef,
5252

5353
let archive = ArchiveRO::open(&path).expect("wanted an rlib");
5454
debug!("reading {}", name);
55-
let bc = time(sess.time_passes(), format!("read {}.bc", name), (), |_|
56-
archive.read(format!("{}.bc", name)));
57-
let bc = bc.expect("missing bytecode in archive!");
55+
let bc = time(sess.time_passes(), format!("read {}.bc.deflate", name), (), |_|
56+
archive.read(format!("{}.bc.deflate", name)));
57+
let bc = bc.expect("missing compressed bytecode in archive!");
5858
let bc = time(sess.time_passes(), format!("inflate {}.bc", name), (), |_|
5959
flate::inflate_bytes(bc));
6060
let ptr = bc.as_slice().as_ptr();

branches/snap-stage3/src/librustc/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ This API is completely unstable and subject to change.
3030
#[allow(deprecated)];
3131
#[feature(macro_rules, globs, struct_variant, managed_boxes, quote,
3232
default_type_params, phase)];
33+
#[allow(deprecated_owned_vector)]; // NOTE: remove after stage0
3334

3435
extern crate flate;
3536
extern crate arena;

branches/snap-stage3/src/librustuv/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ via `close` and `delete` methods.
4242
#[feature(macro_rules)];
4343
#[deny(unused_result, unused_must_use)];
4444
#[allow(visible_private_types)];
45+
#[allow(deprecated_owned_vector)]; // NOTE: remove after stage0
4546

4647
#[cfg(test)] extern crate green;
4748
#[cfg(test)] extern crate realrustuv = "rustuv";

branches/snap-stage3/src/libserialize/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ Core encoding and decoding interfaces.
2222
html_favicon_url = "http://www.rust-lang.org/favicon.ico",
2323
html_root_url = "http://static.rust-lang.org/doc/master")];
2424
#[feature(macro_rules, managed_boxes, default_type_params, phase)];
25+
#[allow(deprecated_owned_vector)]; // NOTE: remove after stage0
2526

2627
// test harness access
2728
#[cfg(test)]

0 commit comments

Comments
 (0)