Commit Graph

62751 Commits

Author SHA1 Message Date
bors 5e122f59ba Auto merge of #40967 - alexcrichton:old-osx, r=brson
travis: Compile OSX releases with Xcode 7

Unfortunately what we're using right now, Xcode 8.2, cannot compile LLVM for OSX
10.7. We've done this historically and Gecko would like to maintain this
compabitiliby. This commit moves our release builders for OSX to using Xcode 7
which can compile LLVM for 10.7.

The builders running tests continue to use Xcode 8.2, however, because the LLDB
version with Xcode 7, 350, is blacklisted in running our LLDB tests. To continue
running LLDB tests we'll stick with Xcode 8.2.
2017-04-01 05:56:08 +00:00
bors 2f1652870f Auto merge of #40972 - frewsxcv:rollup, r=frewsxcv
Rollup of 6 pull requests

- Successful merges: #40703, #40728, #40763, #40871, #40935, #40947
- Failed merges:
2017-03-31 23:23:49 +00:00
Corey Farwell 54b3f6aa21 Rollup merge of #40947 - stjepang:test-sort-random-cmp, r=alexcrichton
Test sort algorithms using a random cmp function

This ensures that sorting using a broken comparison function doesn't panic nor fail in some other way (especially not segfault).

r? @alexcrichton
2017-03-31 16:48:29 -04:00
Corey Farwell c9a9d7acaf Rollup merge of #40935 - donniebishop:str_boilerplate_docs, r=steveklabnik
Modify str Structs descriptions

References #29375. Modified descriptions of multiple structs to be more in line with structs found under [`std::iter`](https://doc.rust-lang.org/std/iter/#structs), such as [`Chain`](https://doc.rust-lang.org/std/iter/struct.Chain.html) and [`Enumerate`](https://doc.rust-lang.org/std/iter/struct.Enumerate.html)
2017-03-31 16:48:28 -04:00
Corey Farwell c5082fe801 Rollup merge of #40871 - projektir:atomic_links, r=steveklabnik
Adding links for Atomics docs #29377

r? @steveklabnik

This should be good for `std::sync::atomic`. The other pages still need more (examples, etc.).
2017-03-31 16:48:27 -04:00
Corey Farwell 6edab01499 Rollup merge of #40763 - pirate:patch-2, r=steveklabnik
Add helpful hint in io docs about how ? is not allowed in main()

This is my effort to help alleviate the confusion caused by the error message:
```rust
error[E0277]: the trait bound `(): std::ops::Carrier` is not satisfied
  --> hello_world.rs:72:5
   |
72 |     io::stdin().read_line(&mut d_input)?;
   |     ------------------------------------
   |     |
   |     the trait `std::ops::Carrier` is not implemented for `()`
   |     in this macro invocation
   |
   = note: required by `std::ops::Carrier::from_error`

error: aborting due to previous error
```
This has been discussed at length in https://github.com/rust-lang/rust/issues/35946, but I figured it would be helpful to mention in the docs.
Reading user input is one of the first things beginners will look up in the docs, so my thinking was they'd see this warning here and not have to deal with the [tricky error message](https://blog.rust-lang.org/2017/03/02/lang-ergonomics.html).

If you think this isn't the right place to put this in the docs, that's understandable, I'm open to suggestions for putting it elsewhere or removing it entirely.
2017-03-31 16:48:26 -04:00
Corey Farwell c6e2512705 Rollup merge of #40728 - topecongiro:stabilize, r=arielb1
Make overlapping_inherent_impls lint a hard error

Closes #36889.
2017-03-31 16:48:25 -04:00
Corey Farwell efc2ae8e59 Rollup merge of #40703 - GuillaumeGomez:pointer-docs, r=steveklabnik
Add missing urls in ptr docs

r? @rust-lang/docs
2017-03-31 16:48:24 -04:00
Alex Crichton 3076155674 travis: Compile OSX releases with Xcode 7
Unfortunately what we're using right now, Xcode 8.2, cannot compile LLVM for OSX
10.7. We've done this historically and Gecko would like to maintain this
compabitiliby. This commit moves our release builders for OSX to using Xcode 7
which can compile LLVM for 10.7.

The builders running tests continue to use Xcode 8.2, however, because the LLDB
version with Xcode 7, 350, is blacklisted in running our LLDB tests. To continue
running LLDB tests we'll stick with Xcode 8.2.
2017-03-31 11:19:36 -07:00
bors 40feadb966 Auto merge of #40950 - frewsxcv:rollup, r=frewsxcv
Rollup of 10 pull requests

- Successful merges: #40694, #40842, #40869, #40888, #40898, #40904, #40925, #40928, #40929, #40934
- Failed merges:
2017-03-31 16:04:18 +00:00
Corey Farwell c34f533a85 Rollup merge of #40934 - SamWhited:improve_write_writeln_docs, r=steveklabnik
Improve the docs for the write and writeln macros

This change reduces duplication by linking the documentation for
`writeln!` to `write!`. It also restructures the `write!` documentation
to read in a more logical manner (I hope; feedback would be welcome).

Updates #29329, #29381
2017-03-31 11:43:39 -04:00
Corey Farwell d36b24d8bf Rollup merge of #40929 - bluss:full-reverse, r=alexcrichton
Implement all PartialOrd methods for Reverse

When making a forwarding wrapper we must in general forward all methods,
so that we use the type's own `lt` for example instead of the default.

Example important case: f32's partial_cmp does several operations but
its lt is a primitive.

Follow up on #40720
2017-03-31 11:43:38 -04:00
Corey Farwell c650ed8ee7 Rollup merge of #40928 - GAJaloyan:patch-2, r=eddyb
adding debug in consume_body function

When in debug_assertions=true mode, the function consume_body lacks some debug output, which makes it harder to follow the control flow. This commit adds this needed debug.
2017-03-31 11:43:37 -04:00
Corey Farwell 4af41b4789 Rollup merge of #40925 - DaseinPhaos:patch-5, r=steveklabnik
Add missing link in unstable-book

add link to specialization's tracking issue
2017-03-31 11:43:36 -04:00
Corey Farwell fe34818606 Rollup merge of #40904 - rap2hpoutre:patch-1, r=steveklabnik
Add example to std::process::abort

This is a first step in order to complete this issue: https://github.com/rust-lang/rust/issues/29370
I submitted this PR with the help of @steveklabnik More info here: https://github.com/rust-lang/rust/issues/29370#issuecomment-290089330

It's my first PR on Rust, I'm learning how to contribute: Should I ping someone? I will post another PR with a more complicated example soon, I prefer send it separately (cause maybe I made some mistakes).
2017-03-31 11:43:35 -04:00
Corey Farwell 5f1bb8f2d0 Rollup merge of #40898 - MaloJaffre:remove-unused-feature, r=alexcrichton
Remove unused feature from error index generator

Remove feature `rustdoc`.
2017-03-31 11:43:34 -04:00
Corey Farwell 488a7b3945 Rollup merge of #40888 - wesleywiser:rustdoc_src_sidebar, r=GuillaumeGomez
Make the rustdoc sidebar white on `src` pages

Fixes #40724
2017-03-31 11:43:33 -04:00
Corey Farwell 7ccd0b994f Rollup merge of #40869 - ctjhoa:master, r=steveklabnik
Improve os::linux documentation (#29367)

Improve `os::linux` documentation according to #29367

r? @steveklabnik
2017-03-31 11:43:32 -04:00
Corey Farwell eeb075af25 Rollup merge of #40842 - Mic92:RawFd, r=aturon
Implement AsRawFd/IntoRawFd for RawFd

This is useful to build os abstraction like the nix crate does.
It allows to define functions, which accepts generic arguments
of data structures convertible to RawFd, including RawFd itself.
For example:

```
fn write<FD: AsRawFd>(fd: FD, buf: &[u8]) -> Result<usize>
write(file, buf);
```
instead of:
```
fn write(fd: RawFd, buf: &[u8]) -> Result<usize>
write(file.as_raw_fd(), buf);
```

cc @kamalmarhubi
2017-03-31 11:43:31 -04:00
Corey Farwell d2128fd166 Rollup merge of #40694 - frewsxcv:unstable-book-checker, r=steveklabnik
Sync all unstable features with Unstable Book; add tidy lint.

Add a tidy lint that checks for...

* Unstable Book sections with no corresponding SUMMARY.md links
* unstable features that don't have Unstable Book sections
* Unstable Book sections that don't have corresponding unstable features
2017-03-31 11:43:30 -04:00
Corey Farwell eef2a9598b Sync all unstable features with Unstable Book; add tidy lint.
Add a tidy lint that checks for...

* Unstable Book sections with no corresponding SUMMARY.md links
* unstable features that don't have Unstable Book sections
* Unstable Book sections that don't have corresponding unstable features
2017-03-31 11:40:44 -04:00
Stjepan Glavina 0e2d3d41bb Test sort algorithms using a random cmp function 2017-03-31 17:00:24 +02:00
bors a9329d3aa3 Auto merge of #40737 - nagisa:safe-slicing-strs, r=BurntSushi
Checked slicing for strings

cc https://github.com/rust-lang/rust/issues/39932
2017-03-31 11:13:20 +00:00
bors 474f7a91ee Auto merge of #40620 - laumann:slash-in-diagnostics-path, r=BurntSushi
Replace hardcoded forward slash with path::MAIN_SEPARATOR

Fixes #40149
2017-03-31 03:22:39 +00:00
Donnie Bishop 3b396217b5 Remove parentheses in method references 2017-03-30 18:33:23 -04:00
Donnie Bishop c4b11d19b8 Revert SplitWhitespace's description
Original headline of SplitWhitespace's description is more descriptive as to what it contains and iterates over.
2017-03-30 16:46:16 -04:00
Donnie Bishop a4a7166fd5 Modify SplitWhitespace's description 2017-03-30 16:36:06 -04:00
Donnie Bishop 5d14ccbc96 Modify EncodeUtf16's description 2017-03-30 16:35:19 -04:00
Donnie Bishop 17b4884d3c Modify Chars' description 2017-03-30 15:51:49 -04:00
Donnie Bishop 41e0498586 Modify CharIndices' description 2017-03-30 15:46:41 -04:00
Sam Whited b03edb4a02 Improve the docs for the write and writeln macros
This change reduces duplication by linking the documentation for
`writeln!` to `write!`. It also restructures the `write!` documentation
to read in a more logical manner.

Updates #29329, #29381
2017-03-30 14:40:10 -05:00
Donnie Bishop 0f5cf54246 Modify Bytes' description 2017-03-30 15:40:05 -04:00
Donnie Bishop 9d4b486b84 Modify Lines' description 2017-03-30 15:36:50 -04:00
bors 5c94997b6b Auto merge of #40524 - alexcrichton:update-bootstrap, r=alexcrichton
rustbuild: Update bootstrap compiler

Now that we've also updated cargo's release process this commit also changes the
download location of Cargo from Cargos archives back to the static.r-l.o
archives. This should ensure that the Cargo download is the exact Cargo paired
with the rustc that we release.
2017-03-30 17:10:11 +00:00
Ulrik Sverdrup 6fda0fe891 cmp: Implement all PartialOrd methods for Reverse
When making a forwarding wrapper we must in general forward all methods,
so that we use the type's own `lt` for example instead of the default.

Example important case: f32's partial_cmp does several operations but
its lt is a primitive.
2017-03-30 17:29:19 +02:00
GAJaloyan ea28196214 removing trailing whitespaces 2017-03-30 17:02:51 +02:00
GAJaloyan f82705403f adding debug in consume_body function
When in debug_assertions=true mode, the function consume_body lacks some debug output, which makes it harder to follow the control flow. This commit adds this needed debug.
2017-03-30 16:31:16 +02:00
bors 7ae95e5489 Auto merge of #40224 - nikomatsakis:issue-39808, r=eddyb
change the strategy for diverging types

The new strategy is as follows. First, the `!` type is assigned
in two cases:

- a block with a diverging statement and no tail expression (e.g.,
  `{return;}`);
- any expression with the type `!` is considered diverging.

Second, we track when we are in a diverging state, and we permit a value
of any type to be coerced **into** `!` if the expression that produced
it is diverging. This means that `fn foo() -> ! { panic!(); 22 }`
type-checks, even though the block has a type of `usize`.

Finally, coercions **from** the `!` type to any other are always
permitted.

Fixes #39808.
Fixes #39984.
2017-03-30 14:20:20 +00:00
Luxko 8804a4a6d9 Add missing link in unstable-book
add link to specialization's tracking issue
2017-03-30 20:36:07 +08:00
Niko Matsakis 2414222b17 remove comments that were tripping up pretty printer 2017-03-30 08:18:03 -04:00
Niko Matsakis 744f666445 fix error message for issue-10176.rs 2017-03-30 08:18:03 -04:00
Niko Matsakis fb99d87c46 update UI test
We no longer give suggestions; this is presumably related to the changes
I made in coercion. However, those suggestions appear to be wrong
anyhow!
2017-03-30 08:18:02 -04:00
Niko Matsakis e97fc5247a kill the graphviz-flowgraph tests
They are so annoying to update, and haven't caught any bugs afaik.
2017-03-30 08:18:02 -04:00
Niko Matsakis 1b5768df4e document `diverges` more correctly 2017-03-30 08:18:02 -04:00
Niko Matsakis 8450add8be fix `X as !` behavior 2017-03-30 08:18:02 -04:00
Niko Matsakis 7eeddb4093 add test illustrating current "coerce to `!`" behavior 2017-03-30 08:18:02 -04:00
Niko Matsakis 8c6156e1d1 have coercion supply back the target type
The `try_coerce` method coerces from a source to a target
type, possibly inserting adjustments. It should guarantee
that the post-adjustment type is a subtype of the target type
(or else that some side-constraint has been registered which will lead
to an error). However, it used to return the (possibly adjusted) source
as the type of the expression rather than the target. This led to
less good downstream errors.

To work around this, the code around blocks -- and particular tail
expressions in blocks -- had some special case manipulation. However,
since that code is now using the more general `CoerceMany` construct (to
account for breaks), it can no longer take advantage of that. This lead
to some regressions in compile-fail tests were errors were reported at
"less good" locations than before.

This change modifies coercions to return the target type when successful
rather the source type. This extends the behavior from blocks to all
coercions. Typically this has limited effect but on a few tests yielded
better errors results (and avoided regressions, of course).

This change also restores the hint about removing semicolons which went
missing (by giving 'force-unit' coercions a chance to add notes etc).
2017-03-30 08:18:01 -04:00
Niko Matsakis d08a6da1f0 remove `Clone` from `FnCtxt` 2017-03-30 07:56:58 -04:00
Niko Matsakis 127a7d643d rename `only_has_type_or_fresh_var` to `coercion_target_type` 2017-03-30 07:56:58 -04:00
Niko Matsakis d448329849 fix handling of blocks with `CoerceMany` 2017-03-30 07:56:58 -04:00