Skip to content

Commit a506d4c

Browse files
committed
Fallout from stabilization.
1 parent 092ba6a commit a506d4c

File tree

49 files changed

+126
-125
lines changed

Some content is hidden

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

49 files changed

+126
-125
lines changed

src/compiletest/header.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,7 @@ pub fn parse_name_value_directive(line: &str, directive: &str)
332332
let keycolon = format!("{}:", directive);
333333
match line.find_str(keycolon.as_slice()) {
334334
Some(colon) => {
335-
let value = line.slice(colon + keycolon.len(),
336-
line.len()).to_string();
335+
let value = line[(colon + keycolon.len()) .. line.len()].to_string();
337336
debug!("{}: {}", directive, value);
338337
Some(value)
339338
}

src/compiletest/runtest.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -862,7 +862,7 @@ fn check_debugger_output(debugger_run_result: &ProcRes, check_lines: &[String])
862862
break;
863863
}
864864
Some(i) => {
865-
rest = rest.slice_from(i + frag.len());
865+
rest = &rest[(i + frag.len())..];
866866
}
867867
}
868868
first = false;
@@ -1045,7 +1045,7 @@ fn scan_until_char(haystack: &str, needle: char, idx: &mut uint) -> bool {
10451045
if *idx >= haystack.len() {
10461046
return false;
10471047
}
1048-
let opt = haystack.slice_from(*idx).find(needle);
1048+
let opt = haystack[(*idx)..].find(needle);
10491049
if opt.is_none() {
10501050
return false;
10511051
}

src/doc/intro.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -485,9 +485,9 @@ fn main() {
485485
Thread::spawn(move || {
486486
let mut array = number.lock().unwrap();
487487
488-
(*array)[i] += 1;
488+
array[i as usize] += 1;
489489
490-
println!("numbers[{}] is {}", i, (*array)[i]);
490+
println!("numbers[{}] is {}", i, array[i as usize]);
491491
});
492492
}
493493
}

src/libcollections/btree/node.rs

+10-11
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use core::prelude::*;
2121
use core::borrow::BorrowFrom;
2222
use core::cmp::Ordering::{Greater, Less, Equal};
2323
use core::iter::Zip;
24-
use core::ops::{Deref, DerefMut};
24+
use core::ops::{Deref, DerefMut, Index, IndexMut};
2525
use core::ptr::Unique;
2626
use core::{slice, mem, ptr, cmp, num, raw};
2727
use alloc::heap;
@@ -1487,7 +1487,7 @@ impl<K, V, E, Impl> AbsTraversal<Impl>
14871487

14881488
macro_rules! node_slice_impl {
14891489
($NodeSlice:ident, $Traversal:ident,
1490-
$as_slices_internal:ident, $slice_from:ident, $slice_to:ident, $iter:ident) => {
1490+
$as_slices_internal:ident, $index:ident, $iter:ident) => {
14911491
impl<'a, K: Ord + 'a, V: 'a> $NodeSlice<'a, K, V> {
14921492
/// Performs linear search in a slice. Returns a tuple of (index, is_exact_match).
14931493
fn search_linear<Q: ?Sized>(&self, key: &Q) -> (uint, bool)
@@ -1521,10 +1521,10 @@ macro_rules! node_slice_impl {
15211521
edges: if !self.has_edges {
15221522
self.edges
15231523
} else {
1524-
self.edges.$slice_from(pos)
1524+
self.edges.$index(&(pos ..))
15251525
},
1526-
keys: self.keys.slice_from(pos),
1527-
vals: self.vals.$slice_from(pos),
1526+
keys: &self.keys[pos ..],
1527+
vals: self.vals.$index(&(pos ..)),
15281528
head_is_edge: !pos_is_kv,
15291529
tail_is_edge: self.tail_is_edge,
15301530
}
@@ -1550,10 +1550,10 @@ macro_rules! node_slice_impl {
15501550
edges: if !self.has_edges {
15511551
self.edges
15521552
} else {
1553-
self.edges.$slice_to(pos + 1)
1553+
self.edges.$index(&(.. (pos + 1)))
15541554
},
1555-
keys: self.keys.slice_to(pos),
1556-
vals: self.vals.$slice_to(pos),
1555+
keys: &self.keys[..pos],
1556+
vals: self.vals.$index(&(.. pos)),
15571557
head_is_edge: self.head_is_edge,
15581558
tail_is_edge: !pos_is_kv,
15591559
}
@@ -1583,6 +1583,5 @@ macro_rules! node_slice_impl {
15831583
}
15841584
}
15851585

1586-
node_slice_impl!(NodeSlice, Traversal, as_slices_internal, slice_from, slice_to, iter);
1587-
node_slice_impl!(MutNodeSlice, MutTraversal, as_slices_internal_mut, slice_from_mut,
1588-
slice_to_mut, iter_mut);
1586+
node_slice_impl!(NodeSlice, Traversal, as_slices_internal, index, iter);
1587+
node_slice_impl!(MutNodeSlice, MutTraversal, as_slices_internal_mut, index_mut, iter_mut);

src/libcollections/ring_buf.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -578,7 +578,7 @@ impl<T> RingBuf<T> {
578578

579579
if contiguous {
580580
let (empty, buf) = buf.split_at_mut(0);
581-
(buf.slice_mut(tail, head), empty)
581+
(&mut buf[tail .. head], empty)
582582
} else {
583583
let (mid, right) = buf.split_at_mut(tail);
584584
let (left, _) = mid.split_at_mut(head);

src/libcollections/slice.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -686,7 +686,7 @@ impl<T> SliceExt for [T] {
686686

687687
#[inline]
688688
fn move_from(&mut self, mut src: Vec<T>, start: uint, end: uint) -> uint {
689-
for (a, b) in self.iter_mut().zip(src.slice_mut(start, end).iter_mut()) {
689+
for (a, b) in self.iter_mut().zip(src[start .. end].iter_mut()) {
690690
mem::swap(a, b);
691691
}
692692
cmp::min(self.len(), end-start)

src/libcollections/str.rs

+16-10
Original file line numberDiff line numberDiff line change
@@ -752,21 +752,15 @@ pub trait StrExt: Index<FullRange, Output = str> {
752752

753753
/// Deprecated: use `s[a .. b]` instead.
754754
#[deprecated = "use slice notation [a..b] instead"]
755-
fn slice(&self, begin: uint, end: uint) -> &str {
756-
core_str::StrExt::slice(&self[], begin, end)
757-
}
755+
fn slice(&self, begin: uint, end: uint) -> &str;
758756

759757
/// Deprecated: use `s[a..]` instead.
760758
#[deprecated = "use slice notation [a..] instead"]
761-
fn slice_from(&self, begin: uint) -> &str {
762-
core_str::StrExt::slice_from(&self[], begin)
763-
}
759+
fn slice_from(&self, begin: uint) -> &str;
764760

765761
/// Deprecated: use `s[..a]` instead.
766762
#[deprecated = "use slice notation [..a] instead"]
767-
fn slice_to(&self, end: uint) -> &str {
768-
core_str::StrExt::slice_to(&self[], end)
769-
}
763+
fn slice_to(&self, end: uint) -> &str;
770764

771765
/// Returns a slice of the string from the character range
772766
/// [`begin`..`end`).
@@ -1304,7 +1298,19 @@ pub trait StrExt: Index<FullRange, Output = str> {
13041298
}
13051299

13061300
#[stable]
1307-
impl StrExt for str {}
1301+
impl StrExt for str {
1302+
fn slice(&self, begin: uint, end: uint) -> &str {
1303+
&self[begin..end]
1304+
}
1305+
1306+
fn slice_from(&self, begin: uint) -> &str {
1307+
&self[begin..]
1308+
}
1309+
1310+
fn slice_to(&self, end: uint) -> &str {
1311+
&self[..end]
1312+
}
1313+
}
13081314

13091315
#[cfg(test)]
13101316
mod tests {

src/libcore/fmt/float.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ pub fn float_to_str_bytes_common<T: Float, U, F>(
179179
_ => ()
180180
}
181181

182-
buf.slice_to_mut(end).reverse();
182+
buf[..end].reverse();
183183

184184
// Remember start of the fractional digits.
185185
// Points one beyond end of buf if none get generated,
@@ -316,7 +316,7 @@ pub fn float_to_str_bytes_common<T: Float, U, F>(
316316

317317
impl<'a> fmt::Writer for Filler<'a> {
318318
fn write_str(&mut self, s: &str) -> fmt::Result {
319-
slice::bytes::copy_memory(self.buf.slice_from_mut(*self.end),
319+
slice::bytes::copy_memory(&mut self.buf[(*self.end)..],
320320
s.as_bytes());
321321
*self.end += s.len();
322322
Ok(())

src/librand/chacha.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ impl<'a> SeedableRng<&'a [u32]> for ChaChaRng {
174174
// reset state
175175
self.init(&[0u32; KEY_WORDS]);
176176
// set key in place
177-
let key = self.state.slice_mut(4, 4+KEY_WORDS);
177+
let key = &mut self.state[4 .. 4+KEY_WORDS];
178178
for (k, s) in key.iter_mut().zip(seed.iter()) {
179179
*k = *s;
180180
}
@@ -292,4 +292,3 @@ mod test {
292292
}
293293
}
294294
}
295-

src/librbml/io.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ impl Writer for SeekableMemWriter {
103103

104104
// Do the necessary writes
105105
if left.len() > 0 {
106-
slice::bytes::copy_memory(self.buf.slice_from_mut(self.pos), left);
106+
slice::bytes::copy_memory(&mut self.buf[self.pos..], left);
107107
}
108108
if right.len() > 0 {
109109
self.buf.push_all(right);

src/libregex/re.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -459,7 +459,7 @@ impl<'t> Captures<'t> {
459459
pub fn at(&self, i: uint) -> Option<&'t str> {
460460
match self.pos(i) {
461461
None => None,
462-
Some((s, e)) => Some(self.text.slice(s, e))
462+
Some((s, e)) => Some(&self.text[s.. e])
463463
}
464464
}
465465

src/librustc/metadata/cstore.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ impl MetadataBlob {
242242
((slice[2] as u32) << 8) |
243243
((slice[3] as u32) << 0)) as uint;
244244
if len + 4 <= slice.len() {
245-
slice.slice(4, len + 4)
245+
&slice[4.. len + 4]
246246
} else {
247247
&[] // corrupt or old metadata
248248
}

src/librustc/metadata/loader.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -392,11 +392,11 @@ impl<'a> Context<'a> {
392392
};
393393
let (hash, rlib) = if file.starts_with(&rlib_prefix[]) &&
394394
file.ends_with(".rlib") {
395-
(file.slice(rlib_prefix.len(), file.len() - ".rlib".len()),
395+
(&file[(rlib_prefix.len()) .. (file.len() - ".rlib".len())],
396396
true)
397397
} else if file.starts_with(dylib_prefix.as_slice()) &&
398398
file.ends_with(dypair.1.as_slice()) {
399-
(file.slice(dylib_prefix.len(), file.len() - dypair.1.len()),
399+
(&file[(dylib_prefix.len()) .. (file.len() - dypair.1.len())],
400400
false)
401401
} else {
402402
return FileDoesntMatch

src/librustc/middle/cfg/construct.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,7 @@ impl<'a, 'tcx> CFGBuilder<'a, 'tcx> {
424424
}
425425

426426
ast::ExprMethodCall(_, _, ref args) => {
427-
self.call(expr, pred, &*args[0], args.slice_from(1).iter().map(|e| &**e))
427+
self.call(expr, pred, &*args[0], args[1..].iter().map(|e| &**e))
428428
}
429429

430430
ast::ExprIndex(ref l, ref r) |

src/librustc/middle/dataflow.rs

+15-15
Original file line numberDiff line numberDiff line change
@@ -118,17 +118,17 @@ impl<'a, 'tcx, O:DataFlowOperator> pprust::PpAnn for DataFlowContext<'a, 'tcx, O
118118
assert!(self.bits_per_id > 0);
119119
let cfgidx = to_cfgidx_or_die(id, &self.nodeid_to_index);
120120
let (start, end) = self.compute_id_range(cfgidx);
121-
let on_entry = self.on_entry.slice(start, end);
121+
let on_entry = &self.on_entry[start.. end];
122122
let entry_str = bits_to_string(on_entry);
123123

124-
let gens = self.gens.slice(start, end);
124+
let gens = &self.gens[start.. end];
125125
let gens_str = if gens.iter().any(|&u| u != 0) {
126126
format!(" gen: {}", bits_to_string(gens))
127127
} else {
128128
"".to_string()
129129
};
130130

131-
let kills = self.kills.slice(start, end);
131+
let kills = &self.kills[start .. end];
132132
let kills_str = if kills.iter().any(|&u| u != 0) {
133133
format!(" kill: {}", bits_to_string(kills))
134134
} else {
@@ -232,7 +232,7 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
232232

233233
let cfgidx = to_cfgidx_or_die(id, &self.nodeid_to_index);
234234
let (start, end) = self.compute_id_range(cfgidx);
235-
let gens = self.gens.slice_mut(start, end);
235+
let gens = &mut self.gens[start.. end];
236236
set_bit(gens, bit);
237237
}
238238

@@ -245,7 +245,7 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
245245

246246
let cfgidx = to_cfgidx_or_die(id, &self.nodeid_to_index);
247247
let (start, end) = self.compute_id_range(cfgidx);
248-
let kills = self.kills.slice_mut(start, end);
248+
let kills = &mut self.kills[start.. end];
249249
set_bit(kills, bit);
250250
}
251251

@@ -256,9 +256,9 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
256256
assert!(self.bits_per_id > 0);
257257

258258
let (start, end) = self.compute_id_range(cfgidx);
259-
let gens = self.gens.slice(start, end);
259+
let gens = &self.gens[start.. end];
260260
bitwise(bits, gens, &Union);
261-
let kills = self.kills.slice(start, end);
261+
let kills = &self.kills[start.. end];
262262
bitwise(bits, kills, &Subtract);
263263

264264
debug!("{} apply_gen_kill(cfgidx={:?}, bits={}) [after]",
@@ -304,7 +304,7 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
304304
}
305305

306306
let (start, end) = self.compute_id_range(cfgidx);
307-
let on_entry = self.on_entry.slice(start, end);
307+
let on_entry = &self.on_entry[start.. end];
308308
let temp_bits;
309309
let slice = match e {
310310
Entry => on_entry,
@@ -336,7 +336,7 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
336336

337337
let cfgidx = to_cfgidx_or_die(id, &self.nodeid_to_index);
338338
let (start, end) = self.compute_id_range(cfgidx);
339-
let gens = self.gens.slice(start, end);
339+
let gens = &self.gens[start.. end];
340340
debug!("{} each_gen_bit(id={}, gens={})",
341341
self.analysis_name, id, bits_to_string(gens));
342342
self.each_bit(gens, f)
@@ -396,15 +396,15 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
396396
cfg.graph.each_edge(|_edge_index, edge| {
397397
let flow_exit = edge.source();
398398
let (start, end) = self.compute_id_range(flow_exit);
399-
let mut orig_kills = self.kills.slice(start, end).to_vec();
399+
let mut orig_kills = self.kills[start.. end].to_vec();
400400

401401
let mut changed = false;
402402
for &node_id in edge.data.exiting_scopes.iter() {
403403
let opt_cfg_idx = self.nodeid_to_index.get(&node_id).map(|&i|i);
404404
match opt_cfg_idx {
405405
Some(cfg_idx) => {
406406
let (start, end) = self.compute_id_range(cfg_idx);
407-
let kills = self.kills.slice(start, end);
407+
let kills = &self.kills[start.. end];
408408
if bitwise(orig_kills.as_mut_slice(), kills, &Union) {
409409
changed = true;
410410
}
@@ -418,7 +418,7 @@ impl<'a, 'tcx, O:DataFlowOperator> DataFlowContext<'a, 'tcx, O> {
418418
}
419419

420420
if changed {
421-
let bits = self.kills.slice_mut(start, end);
421+
let bits = &mut self.kills[start.. end];
422422
debug!("{} add_kills_from_flow_exits flow_exit={:?} bits={} [before]",
423423
self.analysis_name, flow_exit, mut_bits_to_string(bits));
424424
bits.clone_from_slice(&orig_kills[]);
@@ -487,7 +487,7 @@ impl<'a, 'b, 'tcx, O:DataFlowOperator> PropagationContext<'a, 'b, 'tcx, O> {
487487
let (start, end) = self.dfcx.compute_id_range(node_index);
488488

489489
// Initialize local bitvector with state on-entry.
490-
in_out.clone_from_slice(self.dfcx.on_entry.slice(start, end));
490+
in_out.clone_from_slice(&self.dfcx.on_entry[start.. end]);
491491

492492
// Compute state on-exit by applying transfer function to
493493
// state on-entry.
@@ -528,13 +528,13 @@ impl<'a, 'b, 'tcx, O:DataFlowOperator> PropagationContext<'a, 'b, 'tcx, O> {
528528
let (start, end) = self.dfcx.compute_id_range(cfgidx);
529529
let changed = {
530530
// (scoping mutable borrow of self.dfcx.on_entry)
531-
let on_entry = self.dfcx.on_entry.slice_mut(start, end);
531+
let on_entry = &mut self.dfcx.on_entry[start.. end];
532532
bitwise(on_entry, pred_bits, &self.dfcx.oper)
533533
};
534534
if changed {
535535
debug!("{} changed entry set for {:?} to {}",
536536
self.dfcx.analysis_name, cfgidx,
537-
bits_to_string(self.dfcx.on_entry.slice(start, end)));
537+
bits_to_string(&self.dfcx.on_entry[start.. end]));
538538
self.changed = true;
539539
}
540540
}

src/librustc/middle/infer/region_inference/mod.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -609,8 +609,7 @@ impl<'a, 'tcx> RegionVarBindings<'a, 'tcx> {
609609
pub fn vars_created_since_snapshot(&self, mark: &RegionSnapshot)
610610
-> Vec<RegionVid>
611611
{
612-
self.undo_log.borrow()
613-
.slice_from(mark.length)
612+
self.undo_log.borrow()[mark.length..]
614613
.iter()
615614
.filter_map(|&elt| match elt {
616615
AddVar(vid) => Some(vid),
@@ -637,7 +636,7 @@ impl<'a, 'tcx> RegionVarBindings<'a, 'tcx> {
637636
debug!("result_index={}, r={:?}", result_index, r);
638637

639638
for undo_entry in
640-
self.undo_log.borrow().slice_from(mark.length).iter()
639+
self.undo_log.borrow()[mark.length..].iter()
641640
{
642641
match undo_entry {
643642
&AddConstraint(ConstrainVarSubVar(a, b)) => {

src/librustc/middle/subst.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -373,12 +373,12 @@ impl<T> VecPerParamSpace<T> {
373373

374374
pub fn get_slice<'a>(&'a self, space: ParamSpace) -> &'a [T] {
375375
let (start, limit) = self.limits(space);
376-
self.content.slice(start, limit)
376+
&self.content[start.. limit]
377377
}
378378

379379
pub fn get_mut_slice<'a>(&'a mut self, space: ParamSpace) -> &'a mut [T] {
380380
let (start, limit) = self.limits(space);
381-
self.content.slice_mut(start, limit)
381+
&mut self.content[start.. limit]
382382
}
383383

384384
pub fn opt_get<'a>(&'a self,

0 commit comments

Comments
 (0)