Skip to content

Commit 92f454e

Browse files
committed
---
yaml --- r: 218335 b: refs/heads/tmp c: e333a57 h: refs/heads/master i: 218333: 497c3e8 218331: 84cbfc3 218327: 9bf68cf 218319: d00df14 218303: c3e674a v: v3
1 parent 18ab4a6 commit 92f454e

File tree

37 files changed

+370
-699
lines changed

37 files changed

+370
-699
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
2626
refs/heads/beta: ebf0c83cb9c6508e9564cb58337df2ad52b56430
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
28-
refs/heads/tmp: 66b9277b1364b130aed260ac219c1fe58eb02df2
28+
refs/heads/tmp: e333a57a1952bca66e8063f80d3b6915b90db06b
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
3030
refs/tags/homu-tmp: d0fdfbfb0d34f196f52b9d15215723c4785c4afa
3131
refs/tags/1.0.0-beta: 8cbb92b53468ee2b0c2d3eeb8567005953d40828

branches/tmp/src/compiletest/runtest.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1702,11 +1702,8 @@ fn run_codegen_test(config: &Config, props: &TestProps, testfile: &Path) {
17021702
}
17031703

17041704
fn charset() -> &'static str {
1705-
// FreeBSD 10.1 defaults to GDB 6.1.1 which doesn't support "auto" charset
1706-
if cfg!(target_os = "bitrig") {
1705+
if cfg!(any(target_os = "bitrig", target_os = "freebsd")) {
17071706
"auto"
1708-
} else if cfg!(target_os = "freebsd") {
1709-
"ISO-8859-1"
17101707
} else {
17111708
"UTF-8"
17121709
}

branches/tmp/src/doc/complement-design-faq.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ Second, it makes cost explicit. In general, the only safe way to have a
9999
non-exhaustive match would be to panic the thread if nothing is matched, though
100100
it could fall through if the type of the `match` expression is `()`. This sort
101101
of hidden cost and special casing is against the language's philosophy. It's
102-
easy to ignore all unspecified cases by using the `_` wildcard:
102+
easy to ignore certain cases by using the `_` wildcard:
103103

104104
```rust,ignore
105105
match val.do_something() {

branches/tmp/src/doc/trpl/guessing-game.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -360,12 +360,10 @@ rand="0.3.0"
360360
The `[dependencies]` section of `Cargo.toml` is like the `[package]` section:
361361
everything that follows it is part of it, until the next section starts.
362362
Cargo uses the dependencies section to know what dependencies on external
363-
crates you have, and what versions you require. In this case, we’ve specified version `0.3.0`,
364-
which Cargo understands to be any release that’s compatible with this specific version.
363+
crates you have, and what versions you require. In this case, we’ve used version `0.3.0`.
365364
Cargo understands [Semantic Versioning][semver], which is a standard for writing version
366-
numbers. If we wanted to use only `0.3.0` exactly, we could use `=0.3.0`. If we
367-
wanted to use the latest version we could use `*`; We could use a range of
368-
versions. [Cargo’s documentation][cargodoc] contains more details.
365+
numbers. If we wanted to use the latest version we could use `*` or we could use a range
366+
of versions. [Cargo’s documentation][cargodoc] contains more details.
369367

370368
[semver]: http://semver.org
371369
[cargodoc]: http://doc.crates.io/crates-io.html

branches/tmp/src/liballoc/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,5 +148,4 @@ pub fn oom() -> ! {
148148
// optimize it out).
149149
#[doc(hidden)]
150150
#[unstable(feature = "issue_14344_fixme")]
151-
#[cfg(stage0)]
152151
pub fn fixme_14344_be_sure_to_link_to_collections() {}

branches/tmp/src/libcollections/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,6 @@ pub mod btree_set {
138138
// FIXME(#14344) this shouldn't be necessary
139139
#[doc(hidden)]
140140
#[unstable(feature = "issue_14344_fixme")]
141-
#[cfg(stage0)]
142141
pub fn fixme_14344_be_sure_to_link_to_collections() {}
143142

144143
#[cfg(not(test))]

branches/tmp/src/libcollections/vec.rs

Lines changed: 21 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ use core::cmp::Ordering;
6767
use core::fmt;
6868
use core::hash::{self, Hash};
6969
use core::intrinsics::{arith_offset, assume};
70-
use core::iter::FromIterator;
70+
use core::iter::{repeat, FromIterator};
7171
use core::marker::PhantomData;
7272
use core::mem;
7373
use core::ops::{Index, IndexMut, Deref};
@@ -1106,35 +1106,12 @@ impl<T: Clone> Vec<T> {
11061106
let len = self.len();
11071107

11081108
if new_len > len {
1109-
self.extend_with_element(new_len - len, value);
1109+
self.extend(repeat(value).take(new_len - len));
11101110
} else {
11111111
self.truncate(new_len);
11121112
}
11131113
}
11141114

1115-
/// Extend the vector by `n` additional clones of `value`.
1116-
fn extend_with_element(&mut self, n: usize, value: T) {
1117-
self.reserve(n);
1118-
1119-
unsafe {
1120-
let len = self.len();
1121-
let mut ptr = self.as_mut_ptr().offset(len as isize);
1122-
// Write all elements except the last one
1123-
for i in 1..n {
1124-
ptr::write(ptr, value.clone());
1125-
ptr = ptr.offset(1);
1126-
// Increment the length in every step in case clone() panics
1127-
self.set_len(len + i);
1128-
}
1129-
1130-
if n > 0 {
1131-
// We can write the last element directly without cloning needlessly
1132-
ptr::write(ptr, value);
1133-
self.set_len(len + n);
1134-
}
1135-
}
1136-
}
1137-
11381115
/// Appends all elements in a slice to the `Vec`.
11391116
///
11401117
/// Iterates over the slice `other`, clones each element, and then appends
@@ -1317,9 +1294,25 @@ unsafe fn dealloc<T>(ptr: *mut T, len: usize) {
13171294
#[doc(hidden)]
13181295
#[stable(feature = "rust1", since = "1.0.0")]
13191296
pub fn from_elem<T: Clone>(elem: T, n: usize) -> Vec<T> {
1320-
let mut v = Vec::with_capacity(n);
1321-
v.extend_with_element(n, elem);
1322-
v
1297+
unsafe {
1298+
let mut v = Vec::with_capacity(n);
1299+
let mut ptr = v.as_mut_ptr();
1300+
1301+
// Write all elements except the last one
1302+
for i in 1..n {
1303+
ptr::write(ptr, Clone::clone(&elem));
1304+
ptr = ptr.offset(1);
1305+
v.set_len(i); // Increment the length in every step in case Clone::clone() panics
1306+
}
1307+
1308+
if n > 0 {
1309+
// We can write the last element directly without cloning needlessly
1310+
ptr::write(ptr, elem);
1311+
v.set_len(n);
1312+
}
1313+
1314+
v
1315+
}
13231316
}
13241317

13251318
////////////////////////////////////////////////////////////////////////////////

branches/tmp/src/libcore/fmt/mod.rs

Lines changed: 0 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -273,8 +273,6 @@ impl<'a> Display for Arguments<'a> {
273273
///
274274
/// Generally speaking, you should just `derive` a `Debug` implementation.
275275
///
276-
/// When used with the alternate format specifier `#?`, the output is pretty-printed.
277-
///
278276
/// For more information on formatters, see [the module-level documentation][module].
279277
///
280278
/// [module]: ../index.html
@@ -316,42 +314,13 @@ impl<'a> Display for Arguments<'a> {
316314
/// println!("The origin is: {:?}", origin);
317315
/// ```
318316
///
319-
/// This outputs:
320-
///
321-
/// ```text
322-
/// The origin is: Point { x: 0, y: 0 }
323-
/// ```
324-
///
325317
/// There are a number of `debug_*` methods on `Formatter` to help you with manual
326318
/// implementations, such as [`debug_struct`][debug_struct].
327319
///
328320
/// `Debug` implementations using either `derive` or the debug builder API
329321
/// on `Formatter` support pretty printing using the alternate flag: `{:#?}`.
330322
///
331323
/// [debug_struct]: ../std/fmt/struct.Formatter.html#method.debug_struct
332-
///
333-
/// Pretty printing with `#?`:
334-
///
335-
/// ```
336-
/// #[derive(Debug)]
337-
/// struct Point {
338-
/// x: i32,
339-
/// y: i32,
340-
/// }
341-
///
342-
/// let origin = Point { x: 0, y: 0 };
343-
///
344-
/// println!("The origin is: {:#?}", origin);
345-
/// ```
346-
///
347-
/// This outputs:
348-
///
349-
/// ```text
350-
/// The origin is: Point {
351-
/// x: 0,
352-
/// y: 0
353-
/// }
354-
/// ```
355324
#[stable(feature = "rust1", since = "1.0.0")]
356325
#[rustc_on_unimplemented = "`{Self}` cannot be formatted using `:?`; if it is \
357326
defined in your crate, add `#[derive(Debug)]` or \
@@ -410,8 +379,6 @@ pub trait Display {
410379
///
411380
/// The `Octal` trait should format its output as a number in base-8.
412381
///
413-
/// The alternate flag, `#`, adds a `0o` in front of the output.
414-
///
415382
/// For more information on formatters, see [the module-level documentation][module].
416383
///
417384
/// [module]: ../index.html
@@ -424,7 +391,6 @@ pub trait Display {
424391
/// let x = 42; // 42 is '52' in octal
425392
///
426393
/// assert_eq!(format!("{:o}", x), "52");
427-
/// assert_eq!(format!("{:#o}", x), "0o52");
428394
/// ```
429395
///
430396
/// Implementing `Octal` on a type:
@@ -457,8 +423,6 @@ pub trait Octal {
457423
///
458424
/// The `Binary` trait should format its output as a number in binary.
459425
///
460-
/// The alternate flag, `#`, adds a `0b` in front of the output.
461-
///
462426
/// For more information on formatters, see [the module-level documentation][module].
463427
///
464428
/// [module]: ../index.html
@@ -471,7 +435,6 @@ pub trait Octal {
471435
/// let x = 42; // 42 is '101010' in binary
472436
///
473437
/// assert_eq!(format!("{:b}", x), "101010");
474-
/// assert_eq!(format!("{:#b}", x), "0b101010");
475438
/// ```
476439
///
477440
/// Implementing `Binary` on a type:
@@ -505,8 +468,6 @@ pub trait Binary {
505468
/// The `LowerHex` trait should format its output as a number in hexidecimal, with `a` through `f`
506469
/// in lower case.
507470
///
508-
/// The alternate flag, `#`, adds a `0x` in front of the output.
509-
///
510471
/// For more information on formatters, see [the module-level documentation][module].
511472
///
512473
/// [module]: ../index.html
@@ -519,7 +480,6 @@ pub trait Binary {
519480
/// let x = 42; // 42 is '2a' in hex
520481
///
521482
/// assert_eq!(format!("{:x}", x), "2a");
522-
/// assert_eq!(format!("{:#x}", x), "0x2a");
523483
/// ```
524484
///
525485
/// Implementing `LowerHex` on a type:
@@ -553,8 +513,6 @@ pub trait LowerHex {
553513
/// The `UpperHex` trait should format its output as a number in hexidecimal, with `A` through `F`
554514
/// in upper case.
555515
///
556-
/// The alternate flag, `#`, adds a `0x` in front of the output.
557-
///
558516
/// For more information on formatters, see [the module-level documentation][module].
559517
///
560518
/// [module]: ../index.html
@@ -567,7 +525,6 @@ pub trait LowerHex {
567525
/// let x = 42; // 42 is '2A' in hex
568526
///
569527
/// assert_eq!(format!("{:X}", x), "2A");
570-
/// assert_eq!(format!("{:#X}", x), "0x2A");
571528
/// ```
572529
///
573530
/// Implementing `UpperHex` on a type:

branches/tmp/src/libcore/num/wrapping.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,16 @@ macro_rules! wrapping_impl {
119119
}
120120
}
121121

122+
#[stable(feature = "rust1", since = "1.3.0")]
123+
impl Div for Wrapping<$t> {
124+
type Output = Wrapping<$t>;
125+
126+
#[inline(always)]
127+
fn div(self, other: Wrapping<$t>) -> Wrapping<$t> {
128+
Wrapping(self.0 / other.0)
129+
}
130+
}
131+
122132
#[stable(feature = "rust1", since = "1.0.0")]
123133
impl Not for Wrapping<$t> {
124134
type Output = Wrapping<$t>;

branches/tmp/src/libcore/slice.rs

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1368,14 +1368,10 @@ pub fn mut_ref_slice<'a, A>(s: &'a mut A) -> &'a mut [A] {
13681368
///
13691369
/// The `len` argument is the number of **elements**, not the number of bytes.
13701370
///
1371-
/// # Unsafety
1372-
///
13731371
/// This function is unsafe as there is no guarantee that the given pointer is
13741372
/// valid for `len` elements, nor whether the lifetime inferred is a suitable
13751373
/// lifetime for the returned slice.
13761374
///
1377-
/// `p` must be non-null, even for zero-length slices.
1378-
///
13791375
/// # Caveat
13801376
///
13811377
/// The lifetime for the returned slice is inferred from its usage. To
@@ -1463,30 +1459,12 @@ pub mod bytes {
14631459
#[stable(feature = "rust1", since = "1.0.0")]
14641460
impl<A, B> PartialEq<[B]> for [A] where A: PartialEq<B> {
14651461
fn eq(&self, other: &[B]) -> bool {
1466-
if self.len() != other.len() {
1467-
return false;
1468-
}
1469-
1470-
for i in 0..self.len() {
1471-
if !self[i].eq(&other[i]) {
1472-
return false;
1473-
}
1474-
}
1475-
1476-
true
1462+
self.len() == other.len() &&
1463+
order::eq(self.iter(), other.iter())
14771464
}
14781465
fn ne(&self, other: &[B]) -> bool {
1479-
if self.len() != other.len() {
1480-
return true;
1481-
}
1482-
1483-
for i in 0..self.len() {
1484-
if self[i].ne(&other[i]) {
1485-
return true;
1486-
}
1487-
}
1488-
1489-
false
1466+
self.len() != other.len() ||
1467+
order::ne(self.iter(), other.iter())
14901468
}
14911469
}
14921470

branches/tmp/src/liblibc/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6431,7 +6431,6 @@ pub mod funcs {
64316431
}
64326432

64336433
#[doc(hidden)]
6434-
#[cfg(stage0)]
64356434
pub fn issue_14344_workaround() {} // FIXME #14344 force linkage to happen correctly
64366435

64376436
#[test] fn work_on_windows() { } // FIXME #10872 needed for a happy windows

branches/tmp/src/librustc/diagnostics.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,6 +1211,7 @@ register_diagnostics! {
12111211
E0138,
12121212
E0139,
12131213
E0264, // unknown external lang item
1214+
E0266, // expected item
12141215
E0269, // not all control paths return a value
12151216
E0270, // computation may converge in a function marked as diverging
12161217
E0272, // rustc_on_unimplemented attribute refers to non-existent type parameter

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2136,7 +2136,11 @@ fn encode_metadata_inner(wr: &mut Cursor<Vec<u8>>,
21362136
let mut rbml_w = Encoder::new(wr);
21372137

21382138
encode_crate_name(&mut rbml_w, &ecx.link_meta.crate_name);
2139-
encode_crate_triple(&mut rbml_w, &tcx.sess.opts.target_triple);
2139+
encode_crate_triple(&mut rbml_w,
2140+
&tcx.sess
2141+
.opts
2142+
.target_triple
2143+
);
21402144
encode_hash(&mut rbml_w, &ecx.link_meta.crate_hash);
21412145
encode_dylib_dependency_formats(&mut rbml_w, &ecx);
21422146

0 commit comments

Comments
 (0)