Skip to content

Commit 357a267

Browse files
author
Jakub Wieczorek
committed
---
yaml --- r: 153039 b: refs/heads/try2 c: 6b6edf4 h: refs/heads/master i: 153037: 8d073b8 153035: b188539 153031: 22b698d 153023: acb9424 v: v3
1 parent 197916a commit 357a267

File tree

8 files changed

+114
-528
lines changed

8 files changed

+114
-528
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: 00f9ff2b41ffd1f1c187533570d979018724852a
8+
refs/heads/try2: 6b6edf4702be1a3c984e894cfb568b63ca224a26
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/doc/rust.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2155,8 +2155,6 @@ These are functions:
21552155

21562156
* `str_eq`
21572157
: Compare two strings (`&str`) for equality.
2158-
* `uniq_str_eq`
2159-
: Compare two owned strings (`String`) for equality.
21602158
* `strdup_uniq`
21612159
: Return a new unique string
21622160
containing a copy of the contents of a unique string.

branches/try2/src/libcore/num/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -586,14 +586,14 @@ macro_rules! int_impl {
586586
fn rotate_left(self, n: uint) -> $T {
587587
// Protect against undefined behaviour for over-long bit shifts
588588
let n = n % $BITS;
589-
(self << n) | (self >> (($BITS - n) % $BITS))
589+
(self << n) | (self >> ($BITS - n))
590590
}
591591

592592
#[inline]
593593
fn rotate_right(self, n: uint) -> $T {
594594
// Protect against undefined behaviour for over-long bit shifts
595595
let n = n % $BITS;
596-
(self >> n) | (self << (($BITS - n) % $BITS))
596+
(self >> n) | (self << ($BITS - n))
597597
}
598598

599599
#[inline]

branches/try2/src/libcoretest/num/int_macros.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -114,15 +114,6 @@ mod tests {
114114
assert_eq!(_1.rotate_left(124), _1);
115115
assert_eq!(_0.rotate_right(124), _0);
116116
assert_eq!(_1.rotate_right(124), _1);
117-
118-
// Rotating by 0 should have no effect
119-
assert_eq!(A.rotate_left(0), A);
120-
assert_eq!(B.rotate_left(0), B);
121-
assert_eq!(C.rotate_left(0), C);
122-
// Rotating by a multiple of word size should also have no effect
123-
assert_eq!(A.rotate_left(64), A);
124-
assert_eq!(B.rotate_left(64), B);
125-
assert_eq!(C.rotate_left(64), C);
126117
}
127118

128119
#[test]

branches/try2/src/libcoretest/num/uint_macros.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,15 +74,6 @@ mod tests {
7474
assert_eq!(_1.rotate_left(124), _1);
7575
assert_eq!(_0.rotate_right(124), _0);
7676
assert_eq!(_1.rotate_right(124), _1);
77-
78-
// Rotating by 0 should have no effect
79-
assert_eq!(A.rotate_left(0), A);
80-
assert_eq!(B.rotate_left(0), B);
81-
assert_eq!(C.rotate_left(0), C);
82-
// Rotating by a multiple of word size should also have no effect
83-
assert_eq!(A.rotate_left(64), A);
84-
assert_eq!(B.rotate_left(64), B);
85-
assert_eq!(C.rotate_left(64), C);
8677
}
8778

8879
#[test]

branches/try2/src/librustc/middle/check_match.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@ impl fmt::Show for Matrix {
7474
}
7575
}
7676

77-
struct MatchCheckCtxt<'a> {
78-
tcx: &'a ty::ctxt
77+
pub struct MatchCheckCtxt<'a> {
78+
pub tcx: &'a ty::ctxt
7979
}
8080

8181
#[deriving(Clone, PartialEq)]
82-
enum Constructor {
82+
pub enum Constructor {
8383
/// The constructor of all patterns that don't vary by constructor,
8484
/// e.g. struct patterns and fixed-length arrays.
8585
Single,
@@ -492,9 +492,9 @@ fn is_useful_specialized(cx: &MatchCheckCtxt, &Matrix(ref m): &Matrix, v: &[Gc<P
492492
ctor: Constructor, lty: ty::t, witness: WitnessPreference) -> Usefulness {
493493
let arity = constructor_arity(cx, &ctor, lty);
494494
let matrix = Matrix(m.iter().filter_map(|r| {
495-
specialize(cx, r.as_slice(), &ctor, arity)
495+
specialize(cx, r.as_slice(), &ctor, 0u, arity)
496496
}).collect());
497-
match specialize(cx, v, &ctor, arity) {
497+
match specialize(cx, v, &ctor, 0u, arity) {
498498
Some(v) => is_useful(cx, &matrix, v.as_slice(), witness),
499499
None => NotUseful
500500
}
@@ -580,7 +580,7 @@ fn is_wild(cx: &MatchCheckCtxt, p: Gc<Pat>) -> bool {
580580
///
581581
/// For instance, a tuple pattern (_, 42u, Some([])) has the arity of 3.
582582
/// A struct pattern's arity is the number of fields it contains, etc.
583-
fn constructor_arity(cx: &MatchCheckCtxt, ctor: &Constructor, ty: ty::t) -> uint {
583+
pub fn constructor_arity(cx: &MatchCheckCtxt, ctor: &Constructor, ty: ty::t) -> uint {
584584
match ty::get(ty).sty {
585585
ty::ty_tup(ref fs) => fs.len(),
586586
ty::ty_box(_) | ty::ty_uniq(_) => 1u,
@@ -628,11 +628,11 @@ fn range_covered_by_constructor(ctor: &Constructor,
628628
/// different patterns.
629629
/// Structure patterns with a partial wild pattern (Foo { a: 42, .. }) have their missing
630630
/// fields filled with wild patterns.
631-
fn specialize(cx: &MatchCheckCtxt, r: &[Gc<Pat>],
632-
constructor: &Constructor, arity: uint) -> Option<Vec<Gc<Pat>>> {
631+
pub fn specialize(cx: &MatchCheckCtxt, r: &[Gc<Pat>],
632+
constructor: &Constructor, col: uint, arity: uint) -> Option<Vec<Gc<Pat>>> {
633633
let &Pat {
634634
id: pat_id, node: ref node, span: pat_span
635-
} = &(*raw_pat(r[0]));
635+
} = &(*raw_pat(r[col]));
636636
let head: Option<Vec<Gc<Pat>>> = match node {
637637
&PatWild =>
638638
Some(Vec::from_elem(arity, wild())),
@@ -776,7 +776,7 @@ fn specialize(cx: &MatchCheckCtxt, r: &[Gc<Pat>],
776776
None
777777
}
778778
};
779-
head.map(|head| head.append(r.tail()))
779+
head.map(|head| head.append(r.slice_to(col)).append(r.slice_from(col + 1)))
780780
}
781781

782782
fn default(cx: &MatchCheckCtxt, r: &[Gc<Pat>]) -> Option<Vec<Gc<Pat>>> {

branches/try2/src/librustc/middle/lang_items.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,6 @@ lets_do_this! {
248248
OrdTraitLangItem, "ord", ord_trait;
249249

250250
StrEqFnLangItem, "str_eq", str_eq_fn;
251-
UniqStrEqFnLangItem, "uniq_str_eq", uniq_str_eq_fn;
252251

253252
// A number of failure-related lang items. The `fail_` item corresponds to
254253
// divide-by-zero and various failure cases with `match`. The

0 commit comments

Comments
 (0)