Skip to content

Commit 294ef34

Browse files
committed
---
yaml --- r: 233641 b: refs/heads/beta c: 5e9008d h: refs/heads/master i: 233639: 61bac9c v: v3
1 parent 8a74e19 commit 294ef34

File tree

32 files changed

+644
-849
lines changed

32 files changed

+644
-849
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ refs/tags/0.9: 36870b185fc5f5486636d4515f0e22677493f225
2323
refs/tags/0.10: ac33f2b15782272ae348dbd7b14b8257b2148b5a
2424
refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
2525
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
26-
refs/heads/beta: 568b13e26cef2e65660508ed7062830b5ee9aa88
26+
refs/heads/beta: 5e9008dfb7be19a51855009f67b57738c7dea5d2
2727
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
2828
refs/heads/tmp: 370fe2786109360f7c35b8ba552b83b773dd71d6
2929
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f

branches/beta/src/doc/nomicon/coercions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ Coercion is allowed between the following types:
2222
for all pointer types (including smart pointers like Box and Rc). Unsize is
2323
only implemented automatically, and enables the following transformations:
2424

25-
* `[T; n]` => `[T]`
25+
* `[T, ..n]` => `[T]`
2626
* `T` => `Trait` where `T: Trait`
2727
* `Foo<..., T, ...>` => `Foo<..., U, ...>` where:
2828
* `T: Unsize<U>`

branches/beta/src/doc/nomicon/safe-unsafe-meaning.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ unsafe impl UnsafeOrd for MyType {
125125
But it's probably not the implementation you want.
126126

127127
Rust has traditionally avoided making traits unsafe because it makes Unsafe
128-
pervasive, which is not desirable. The reason Send and Sync are unsafe is because thread
128+
pervasive, which is not desirable. Send and Sync are unsafe is because thread
129129
safety is a *fundamental property* that unsafe code cannot possibly hope to defend
130130
against in the same way it would defend against a bad Ord implementation. The
131131
only way to possibly defend against thread-unsafety would be to *not use

branches/beta/src/doc/reference.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2073,7 +2073,6 @@ The following configurations must be defined by the implementation:
20732073
* `target_pointer_width = "..."`. Target pointer width in bits. This is set
20742074
to `"32"` for targets with 32-bit pointers, and likewise set to `"64"` for
20752075
64-bit pointers.
2076-
* `test`. Enabled when compiling the test harness (using the `--test` flag).
20772076
* `unix`. See `target_family`.
20782077
* `windows`. See `target_family`.
20792078

branches/beta/src/doc/trpl/concurrency.md

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -343,14 +343,12 @@ threads as a simple isolation mechanism:
343343
```rust
344344
use std::thread;
345345

346-
let handle = thread::spawn(move || {
346+
let result = thread::spawn(move || {
347347
panic!("oops!");
348-
});
349-
350-
let result = handle.join();
348+
}).join();
351349

352350
assert!(result.is_err());
353351
```
354352

355-
`Thread.join()` gives us a `Result` back, which allows us to check if the thread
353+
Our `Thread` gives us a `Result` back, which allows us to check if the thread
356354
has panicked or not.

branches/beta/src/doc/trpl/documentation.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ hello.rs:4 }
7373
```
7474

7575
This [unfortunate error](https://github.com/rust-lang/rust/issues/22547) is
76-
correct: documentation comments apply to the thing after them, and there's
77-
nothing after that last comment.
76+
correct: documentation comments apply to the thing after them, and there's no
77+
thing after that last comment.
7878

7979
[rc-new]: https://doc.rust-lang.org/nightly/std/rc/struct.Rc.html#method.new
8080

@@ -196,10 +196,10 @@ This will highlight according to whatever language you're showing off.
196196
If you're just showing plain text, choose `text`.
197197

198198
It's important to choose the correct annotation here, because `rustdoc` uses it
199-
in an interesting way: It can be used to actually test your examples in a
200-
library crate, so that they don't get out of date. If you have some C code but
201-
`rustdoc` thinks it's Rust because you left off the annotation, `rustdoc` will
202-
complain when trying to generate the documentation.
199+
in an interesting way: It can be used to actually test your examples, so that
200+
they don't get out of date. If you have some C code but `rustdoc` thinks it's
201+
Rust because you left off the annotation, `rustdoc` will complain when trying to
202+
generate the documentation.
203203

204204
## Documentation as tests
205205

@@ -377,8 +377,8 @@ $ rustdoc --test path/to/my/crate/root.rs
377377
$ cargo test
378378
```
379379

380-
That's right, `cargo test` tests embedded documentation too. **However,
381-
`cargo test` will not test binary crates, only library ones.** This is
380+
That's right, `cargo test` tests embedded documentation too. However,
381+
`cargo test` will not test binary crates, only library ones. This is
382382
due to the way `rustdoc` works: it links against the library to be tested,
383383
but with a binary, there’s nothing to link to.
384384

branches/beta/src/doc/trpl/glossary.md

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,12 +38,6 @@ let z = (8, 2, 6);
3838

3939
In the example above `x` and `y` have arity 2. `z` has arity 3.
4040

41-
### DST (Dynamically Sized Type)
42-
43-
A type without a statically known size or alignment. ([more info][link])
44-
45-
[link]: ../nomicon/exotic-sizes.html#dynamically-sized-types-(dsts)
46-
4741
### Expression
4842

4943
In computer programming, an expression is a combination of values, constants,

branches/beta/src/doc/trpl/testing.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -355,8 +355,8 @@ Let's finally check out that third section: documentation tests.
355355
Nothing is better than documentation with examples. Nothing is worse than
356356
examples that don't actually work, because the code has changed since the
357357
documentation has been written. To this end, Rust supports automatically
358-
running examples in your documentation (**note:** this only works in library
359-
crates, not binary crates). Here's a fleshed-out `src/lib.rs` with examples:
358+
running examples in your documentation. Here's a fleshed-out `src/lib.rs`
359+
with examples:
360360

361361
```rust,ignore
362362
//! The `adder` crate provides functions that add numbers to other numbers.

branches/beta/src/libcore/intrinsics.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,11 +247,11 @@ extern "rust-intrinsic" {
247247
/// ```
248248
/// use std::mem;
249249
///
250-
/// let array: &[u8] = unsafe { mem::transmute("Rust") };
251-
/// assert_eq!(array, [82, 117, 115, 116]);
250+
/// let v: &[u8] = unsafe { mem::transmute("L") };
251+
/// assert!(v == [76]);
252252
/// ```
253253
#[stable(feature = "rust1", since = "1.0.0")]
254-
pub fn transmute<T, U>(e: T) -> U;
254+
pub fn transmute<T,U>(e: T) -> U;
255255

256256
/// Gives the address for the return value of the enclosing function.
257257
///

branches/beta/src/libcoretest/char.rs

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -55,24 +55,28 @@ fn test_to_digit() {
5555

5656
#[test]
5757
fn test_to_lowercase() {
58-
fn lower(c: char) -> Vec<char> {
59-
c.to_lowercase().collect()
58+
fn lower(c: char) -> char {
59+
let mut it = c.to_lowercase();
60+
let c = it.next().unwrap();
61+
// As of Unicode version 7.0.0, `SpecialCasing.txt` has no lower-case mapping
62+
// to multiple code points.
63+
assert!(it.next().is_none());
64+
c
6065
}
61-
assert_eq!(lower('A'), ['a']);
62-
assert_eq!(lower('Ö'), ['ö']);
63-
assert_eq!(lower('ß'), ['ß']);
64-
assert_eq!(lower('Ü'), ['ü']);
65-
assert_eq!(lower('💩'), ['💩']);
66-
assert_eq!(lower('Σ'), ['σ']);
67-
assert_eq!(lower('Τ'), ['τ']);
68-
assert_eq!(lower('Ι'), ['ι']);
69-
assert_eq!(lower('Γ'), ['γ']);
70-
assert_eq!(lower('Μ'), ['μ']);
71-
assert_eq!(lower('Α'), ['α']);
72-
assert_eq!(lower('Σ'), ['σ']);
73-
assert_eq!(lower('Dž'), ['dž']);
74-
assert_eq!(lower('fi'), ['fi']);
75-
assert_eq!(lower('İ'), ['i', '\u{307}']);
66+
assert_eq!(lower('A'), 'a');
67+
assert_eq!(lower('Ö'), 'ö');
68+
assert_eq!(lower('ß'), 'ß');
69+
assert_eq!(lower('Ü'), 'ü');
70+
assert_eq!(lower('💩'), '💩');
71+
assert_eq!(lower('Σ'), 'σ');
72+
assert_eq!(lower('Τ'), 'τ');
73+
assert_eq!(lower('Ι'), 'ι');
74+
assert_eq!(lower('Γ'), 'γ');
75+
assert_eq!(lower('Μ'), 'μ');
76+
assert_eq!(lower('Α'), 'α');
77+
assert_eq!(lower('Σ'), 'σ');
78+
assert_eq!(lower('Dž'), 'dž');
79+
assert_eq!(lower('fi'), 'fi');
7680
}
7781

7882
#[test]

branches/beta/src/liblibc/lib.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -192,15 +192,14 @@ pub mod types {
192192
/// C. Use the unit type `()` or omit the return type instead.
193193
///
194194
/// For LLVM to recognize the void pointer type and by extension
195-
/// functions like malloc(), we need to have it represented as i8*
196-
/// in LLVM bitcode. The enum used here ensures this. We need two
197-
/// variants, because the compiler complains about the `repr`
198-
/// attribute otherwise.
195+
/// functions like malloc(), we need to have it represented as i8* in
196+
/// LLVM bitcode. The enum used here ensures this and prevents misuse
197+
/// of the "raw" type by only having private variants.. We need two
198+
/// variants, because the compiler complains about the repr attribute
199+
/// otherwise.
199200
#[repr(u8)]
200201
pub enum c_void {
201-
#[doc(hidden)]
202202
__variant1,
203-
#[doc(hidden)]
204203
__variant2,
205204
}
206205

branches/beta/src/librustc/lib.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ pub mod middle {
112112
pub mod check_static_recursion;
113113
pub mod check_loop;
114114
pub mod check_match;
115-
pub mod check_no_asm;
116115
pub mod check_rvalues;
117116
pub mod const_eval;
118117
pub mod dataflow;

branches/beta/src/librustc/middle/check_no_asm.rs

Lines changed: 0 additions & 41 deletions
This file was deleted.

branches/beta/src/librustc_back/target/mod.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,8 +168,6 @@ pub struct TargetOptions {
168168
/// currently only "gnu" is used to fall into LLVM. Unknown strings cause
169169
/// the system linker to be used.
170170
pub archive_format: String,
171-
/// Is asm!() allowed? Defaults to true.
172-
pub allow_asm: bool,
173171
/// Whether the target uses a custom unwind resumption routine.
174172
/// By default LLVM lowers `resume` instructions into calls to `_Unwind_Resume`
175173
/// defined in libgcc. If this option is enabled, the target must provide
@@ -219,7 +217,6 @@ impl Default for TargetOptions {
219217
custom_unwind_resume: false,
220218
lib_allocation_crate: "alloc_system".to_string(),
221219
exe_allocation_crate: "alloc_system".to_string(),
222-
allow_asm: true,
223220
}
224221
}
225222
}
@@ -313,7 +310,6 @@ impl Target {
313310
key!(no_compiler_rt, bool);
314311
key!(pre_link_args, list);
315312
key!(post_link_args, list);
316-
key!(allow_asm, bool);
317313

318314
base
319315
}

branches/beta/src/librustc_data_structures/transitive_relation.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ impl<T:Debug+PartialEq> TransitiveRelation<T> {
110110
/// (there are corresponding tests below, btw). In each case,
111111
/// the query is `postdom_upper_bound(a, b)`:
112112
///
113-
/// ```text
113+
/// ```
114114
/// // returns Some(x), which is also LUB
115115
/// a -> a1 -> x
116116
/// ^

branches/beta/src/librustc_driver/driver.rs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -563,9 +563,6 @@ pub fn phase_2_configure_and_expand(sess: &Session,
563563
time(time_passes, "checking that all macro invocations are gone", ||
564564
syntax::ext::expand::check_for_macros(&sess.parse_sess, &krate));
565565

566-
time(time_passes, "checking for inline asm in case the target doesn't support it", ||
567-
middle::check_no_asm::check_crate(sess, &krate));
568-
569566
// One final feature gating of the true AST that gets compiled
570567
// later, to make sure we've got everything (e.g. configuration
571568
// can insert new attributes via `cfg_attr`)

branches/beta/src/librustc_trans/trans/base.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -956,11 +956,6 @@ pub fn memcpy_ty<'blk, 'tcx>(bcx: Block<'blk, 'tcx>,
956956
t: Ty<'tcx>) {
957957
let _icx = push_ctxt("memcpy_ty");
958958
let ccx = bcx.ccx();
959-
960-
if type_is_zero_size(ccx, t) {
961-
return;
962-
}
963-
964959
if t.is_structural() {
965960
let llty = type_of::type_of(ccx, t);
966961
let llsz = llsize_of(ccx, llty);

branches/beta/src/librustdoc/clean/mod.rs

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -999,7 +999,6 @@ impl Clean<Method> for ast::MethodSig {
999999
values: inputs.clean(cx),
10001000
},
10011001
output: self.decl.output.clean(cx),
1002-
variadic: false,
10031002
attrs: Vec::new()
10041003
};
10051004
Method {
@@ -1033,7 +1032,6 @@ impl Clean<TyMethod> for ast::MethodSig {
10331032
values: inputs.clean(cx),
10341033
},
10351034
output: self.decl.output.clean(cx),
1036-
variadic: false,
10371035
attrs: Vec::new()
10381036
};
10391037
TyMethod {
@@ -1100,7 +1098,6 @@ impl Clean<Item> for doctree::Function {
11001098
pub struct FnDecl {
11011099
pub inputs: Arguments,
11021100
pub output: FunctionRetTy,
1103-
pub variadic: bool,
11041101
pub attrs: Vec<Attribute>,
11051102
}
11061103

@@ -1116,7 +1113,6 @@ impl Clean<FnDecl> for ast::FnDecl {
11161113
values: self.inputs.clean(cx),
11171114
},
11181115
output: self.output.clean(cx),
1119-
variadic: self.variadic,
11201116
attrs: Vec::new()
11211117
}
11221118
}
@@ -1145,7 +1141,6 @@ impl<'a, 'tcx> Clean<FnDecl> for (ast::DefId, &'a ty::PolyFnSig<'tcx>) {
11451141
FnDecl {
11461142
output: Return(sig.0.output.clean(cx)),
11471143
attrs: Vec::new(),
1148-
variadic: sig.0.variadic,
11491144
inputs: Arguments {
11501145
values: sig.0.inputs.iter().map(|t| {
11511146
Argument {

branches/beta/src/librustdoc/html/format.rs

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -579,11 +579,7 @@ impl fmt::Display for clean::FunctionRetTy {
579579

580580
impl fmt::Display for clean::FnDecl {
581581
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
582-
if self.variadic {
583-
write!(f, "({args}, ...){arrow}", args = self.inputs, arrow = self.output)
584-
} else {
585-
write!(f, "({args}){arrow}", args = self.inputs, arrow = self.output)
586-
}
582+
write!(f, "({args}){arrow}", args = self.inputs, arrow = self.output)
587583
}
588584
}
589585

branches/beta/src/libstd/num/f64.rs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,11 @@ impl f64 {
454454
#[stable(feature = "rust1", since = "1.0.0")]
455455
#[inline]
456456
pub fn sqrt(self) -> f64 {
457-
unsafe { intrinsics::sqrtf64(self) }
457+
if self < 0.0 {
458+
NAN
459+
} else {
460+
unsafe { intrinsics::sqrtf64(self) }
461+
}
458462
}
459463

460464
/// Returns `e^(self)`, (the exponential function).

0 commit comments

Comments
 (0)