Commit Graph

56447 Commits

Author SHA1 Message Date
bors b2799a56a1 Auto merge of #35755 - SimonSapin:char_convert, r=alexcrichton
Implement std::convert traits for char

This is motivated by avoiding the `as` operator, which sometimes silently truncates, and instead use conversions that are explicitly lossless and infallible.

I’m less certain that `From<u8> for char` should be implemented: while it matches an existing behavior of `as`, it’s not necessarily the right thing to use for non-ASCII bytes. It effectively decodes bytes as ISO/IEC 8859-1 (since Unicode designed its first 256 code points to be compatible with that encoding), but that is not apparent in the API name.
2016-09-01 02:53:28 -07:00
bors 3135b7877a Auto merge of #36177 - jonathandturner:rollup, r=jonathandturner
Rollup of 13 pull requests

- Successful merges: #35773, #35786, #35911, #35927, #36083, #36087, #36098, #36114, #36118, #36123, #36129, #36152, #36169
- Failed merges:
2016-08-31 17:40:39 -07:00
Jonathan Turner 5c97100058 Rollup merge of #36169 - wdv4758h:librustc_plugin_docs, r=nikomatsakis
Change 'rustc::plugin' to 'rustc_plugin' in doc comment

It looks like there is a missing one.
2016-08-31 13:53:36 -07:00
Jonathan Turner 240d86b631 Rollup merge of #36152 - dns2utf8:man_page_date, r=nikomatsakis
Update man pages

Until I finish #35438
2016-08-31 13:53:35 -07:00
Jonathan Turner 1a1e9b0b6a Rollup merge of #36129 - eddyb:signal-exit-status, r=alexcrichton
Fix run-pass/signal-exit-status to not trigger UB by writing to NULL.

`run-pass/signal-exit-status` has had UB (NULL dereference) since it was introduced in #10109.
Fixes the test failure found by @camlorn while running under Windows Subsystem for Linux.
2016-08-31 13:53:35 -07:00
Jonathan Turner e69d65cc0b Rollup merge of #36123 - nagisa:unignore-json-tests, r=alexcrichton
Unignore the json tests on 32-bit platforms

cc #14064

r? @alexcrichton
2016-08-31 13:53:35 -07:00
Jonathan Turner 6e045cc2be Rollup merge of #36118 - nagisa:windows-has-no-sprint-again, r=brson
Fix the test_variadic_ptr fn on printf-less sys

Fixes #36076
2016-08-31 13:53:35 -07:00
Jonathan Turner 5dc779ba52 Rollup merge of #36114 - zjhmale:fix-E0393, r=jonathandturner
Update E0393 to new error format

Fixes #35632.
Part of #35233.

r? @jonathandturner

and a wired thing is that if i add another label

```rust
.span_label(span, &format!("missing reference to `{}`", def.name))
.span_label(span, &format!("because of the default `Self` reference, type parameters must be specified on object types"))
```

and add a new note in the test case like

```rust
trait A<T=Self> {}

fn together_we_will_rule_the_galaxy(son: &A) {}
//~^ ERROR E0393
//~| NOTE missing reference to `T`
//~| NOTE because of the default `Self` reference, type parameters must be specified on object types
```

it will complain that

```
running 1 test
test [compile-fail] compile-fail/E0393.rs ... FAILED

failures:

---- [compile-fail] compile-fail/E0393.rs stdout ----

error: /Users/zjh/Documents/rustspace/rust/src/test/compile-fail/E0393.rs:13: unexpected "error": '13:43: 13:44: the type parameter `T` must be explicitly specified [E0393]'

unexpected errors (from JSON output): [
    Error {
        line_num: 13,
        kind: Some(
            Error
        ),
        msg: "13:43: 13:44: the type parameter `T` must be explicitly specified [E0393]"
    }
]
```

it is a little bit confusing and through the blog post we can use `//~^` and `//~|` to support multiple notes, @jonathandturner am i missing something here?
2016-08-31 13:53:34 -07:00
Jonathan Turner bbb2d1d0ac Rollup merge of #36098 - king6cong:master, r=alexcrichton
fix git submodule status check

None
2016-08-31 13:53:34 -07:00
Jonathan Turner 1afe1ea003 Rollup merge of #36087 - apasel422:issue-28324, r=alexcrichton
Add test for #28324

Closes #28324
2016-08-31 13:53:34 -07:00
Jonathan Turner e845da90f9 Rollup merge of #36083 - GuillaumeGomez:missing_convert_urls, r=steveklabnik
Add missing urls into convert module

r? @steveklabnik
2016-08-31 13:53:34 -07:00
Jonathan Turner bfe51295b3 Rollup merge of #35927 - matthew-piziak:bitandassign-example, r=GuillaumeGomez
replace `BitAndAssign` example with something more evocative

This is the augmented-assignment version of PR #35809.

r? @GuillaumeGomez
2016-08-31 13:53:33 -07:00
Jonathan Turner 117cbb879e Rollup merge of #35911 - tbu-:pr_io_errorkind_traits, r=alexcrichton
Implement more traits for `std::io::ErrorKind`

This makes it possible to use it as key in various maps.
2016-08-31 13:53:33 -07:00
Jonathan Turner 4bc5bcd812 Rollup merge of #35786 - GuillaumeGomez:paths_doc, r=steveklabnik
Improve Path and PathBuf docs

r? @steveklabnik
2016-08-31 13:53:33 -07:00
Jonathan Turner c75fd78de3 Rollup merge of #35773 - EugeneGonzalez:master, r=jonathandturner
Change E0259 to the new error format

Fixes #35514 as part of #35233.

Sorry about creating a new PR I was having a lot of troubles squashing the commit because I didn't properly branch the new feature.

r? @GuillaumeGomez
2016-08-31 13:53:33 -07:00
bors 2c01bb8851 Auto merge of #35718 - michaelwoerister:incr-comp-dir-locking, r=alexcrichton
Implement synchronization scheme for incr. comp. directory

This PR implements a copy-on-write-based synchronization scheme for the incremental compilation cache directory. For technical details, see the documentation at the beginning of `rustc_incremental/persist/fs.rs`.

The PR contains unit tests for some functions but for testing whether the scheme properly handles races, a more elaborate test setup would be needed. It would probably involve a small tool that allows to manipulate the incremental compilation directory in a controlled way and then letting a compiler instance run against directories in different states. I don't know if it's worth the trouble of adding another test category to `compiletest`, but I'd be happy to do so.

Fixes #32754
Fixes #34957
2016-08-31 12:56:15 -07:00
bors 7a187c39c7 Auto merge of #36166 - jonathandturner:rollup, r=jonathandturner
Rollup of 16 pull requests

- Successful merges: #35758, #35926, #36050, #36079, #36085, #36089, #36101, #36130, #36134, #36135, #36136, #36140, #36141, #36147, #36148, #36165
- Failed merges:
2016-08-31 09:38:36 -07:00
Guillaume Gomez 96e3103cfe Improve Path and PathBuf docs 2016-08-31 17:53:01 +02:00
Chiu-Hsiang Hsu 3f7432a399 Change 'rustc::plugin' to 'rustc_plugin' in doc comment 2016-08-31 22:45:37 +08:00
Guillaume Gomez b712f74508 Add missing urls into convert module 2016-08-31 16:15:19 +02:00
Stefan Schindler 5b5b8536b0 Update man pages 2016-08-31 15:54:34 +02:00
Jonathan Turner 0cb507394e Rollup merge of #36165 - fanzier:fix-typo, r=GuillaumeGomez
Fix typo in PartialOrd docs

The inline code was formatted incorrectly because of the backtick.
2016-08-31 06:29:12 -07:00
Jonathan Turner 2040d19b94 Rollup merge of #36148 - birryree:E0194_bonus_format, r=jonathandturner
Bonus format for E0194

Bonus fix for #35280. Part of #35233. Fixes #36057. Adding expanded notes/context for what trait a parameter shadows as part of E0194 error messages.

Errors for E0194 now look like this:

```
$> ./build/x86_64-apple-darwin/stage1/bin/rustc src/test/compile-fail/E0194.rs
error[E0194]: type parameter `T` shadows another type parameter of the same name
  --> src/test/compile-fail/E0194.rs:13:26
   |
11 | trait Foo<T> { //~ NOTE first `T` declared here
   |           - first `T` declared here
12 |     fn do_something(&self) -> T;
13 |     fn do_something_else<T: Clone>(&self, bar: T);
   |                          ^ shadows another type parameter

error: aborting due to previous error
```

r? @jonathandturner
2016-08-31 06:29:11 -07:00
Jonathan Turner 6631d8e9c6 Rollup merge of #36147 - mikhail-m1:master, r=jonathandturner
update E0265 to new format

Fixes #35309 as part of #35233.
I've describe partially bonus achieve in #35309

r? @jonathandturner
2016-08-31 06:29:11 -07:00
Jonathan Turner 93c5d6cfd7 Rollup merge of #36141 - GuillaumeGomez:err_codes, r=jonathandturner
Err codes

r? @jonathandturner
2016-08-31 06:29:11 -07:00
Jonathan Turner ad5430f397 Rollup merge of #36140 - cristicbz:test-14875, r=nagisa
Add test for #14875

You can check this out in the playground https://is.gd/oVKC2T . It will fail on stable, but pass on nightly as @nagisa suggested on the issue.

Fixes #14875
2016-08-31 06:29:11 -07:00
Jonathan Turner d18f14854a Rollup merge of #36136 - athulappadan:E0034, r=jonathandturner
Update compiler error 0034 to use new format.

Part of #35233
Addresses #35205

r? @jonathandturner
2016-08-31 06:29:10 -07:00
Jonathan Turner f3ce9fd5a7 Rollup merge of #36135 - 0xmohit:pr/error-code-E0520, r=jonathandturner
Update E0520 to new error format

Fixes #36112.
Part of #35233.

r? @jonathandturner
2016-08-31 06:29:10 -07:00
Jonathan Turner 422305af7b Rollup merge of #36134 - tshepang:more-simple, r=steveklabnik
doc: make TcpListener example more simple
2016-08-31 06:29:10 -07:00
Jonathan Turner 668a34d08e Rollup merge of #36130 - frewsxcv:patch-32, r=steveklabnik
rustbook chapters/sections should be an ordered list.
2016-08-31 06:29:10 -07:00
Jonathan Turner 1048ea24e1 Rollup merge of #36101 - frewsxcv:debug-path-components, r=alexcrichton
Implement `Debug` for `std::path::{Components,Iter}`.

None
2016-08-31 06:29:09 -07:00
Jonathan Turner 18b5ae3019 Rollup merge of #36089 - apasel422:issue-24204, r=alexcrichton
Add test for #24204

Closes #24204
2016-08-31 06:29:09 -07:00
Jonathan Turner 44113e603b Rollup merge of #36085 - apasel422:issue-34053, r=brson
Add test for #34053

Closes #34053
2016-08-31 06:29:09 -07:00
Jonathan Turner c4602288d2 Rollup merge of #36079 - acrrd:new_format_E0318, r=GuillaumeGomez
Update E0318 to new format

Fixes #35322.
Part of #35233.

r? @GuillaumeGomez
2016-08-31 06:29:09 -07:00
Jonathan Turner 051685b2bc Rollup merge of #36050 - abhiQmar:e0076-formatting, r=jonathandturner
Update compiler error E0076 to use new error format

Fixes #35221 part of #35233

r? @jonathandturner
2016-08-31 06:29:09 -07:00
Jonathan Turner 2bfb20f392 Rollup merge of #35926 - matthew-piziak:bit-or-xor-examples, r=GuillaumeGomez
add evocative examples for `BitOr` and `BitXor`

These are exactly equivalent to PR #35809, with one caveat: I do not believe there is a non-bitwise binary XOR operator in Rust, so here it's expressed as `(a || b) && !(a && b)`.

Alternative decompositions are `(a && !b) || (!a && b)` and `(a || b) && (!a || !b)`.  Let me know if you think one of those would be clearer.

r? @GuillaumeGomez
2016-08-31 06:29:08 -07:00
Jonathan Turner 45ca620383 Rollup merge of #35758 - matthew-piziak:vec-assert-over-println-remaining, r=GuillaumeGomez
accumulate vector and assert for RangeFrom and RangeInclusive examples

PR #35695 for `Range` was merged, so it seems that this side-effect-free style is preferred for Range* examples. This PR performs the same translation for `RangeFrom` and `RangeInclusive`. It also removes what looks to be an erroneously commented line for `#![feature(step_by)]`, and an unnecessary primitive-type annotation in `0u8..`.
2016-08-31 06:29:08 -07:00
William Lee 69f0cee85d Bonus fix for #35280. Part of #35233. Fixes #36057. Adding expanded notes/context for what trait a parameter shadows as part of E0194 error messages. 2016-08-31 09:18:20 -04:00
bors 824000aee3 Auto merge of #35585 - Kha:gdb-qualified, r=michaelwoerister
gdb: Fix pretty-printing special-cased Rust types

gdb trunk now reports fully qualified type names, just like lldb. Move lldb code for extracting unqualified names to shared file.

For current releases of gdb, `extract_type_name` should just be a no-op.

Fixes #35155
2016-08-31 05:51:58 -07:00
Fabian Zaiser 56edae2f42 Fix typo in PartialOrd docs 2016-08-31 13:50:58 +02:00
zjhmale 189dee6da1 Update E0393 to new error format 2016-08-31 15:54:49 +08:00
bors 603d9ccfbe Auto merge of #34623 - lfairy:repr-conflict, r=Aatch
Warn about multiple conflicting #[repr] hints

Closes #34622
2016-08-31 00:40:42 -07:00
Chris Wong 42b75a5c18 Warn about multiple conflicting #[repr] hints
Closes #34622
2016-08-31 18:54:19 +12:00
Eugene R Gonzalez d4ca5613a0 Change E0259 to the new error format
Fixed E0259 unit test

Added name of conflict to E0259's note
2016-08-30 21:28:50 -04:00
Corey Farwell 268b3f5818 Implement `Debug` for `std::path::Iter`. 2016-08-30 19:57:20 -04:00
bors eac41469d7 Auto merge of #35048 - tmiasko:monotonic-wait-timeout, r=alexcrichton
Use monotonic time in condition variables.

Configure condition variables to use monotonic time using
pthread_condattr_setclock on systems where this is possible.
This fixes the issue when thread waiting on condition variable is
woken up too late when system time is moved backwards.
2016-08-30 16:28:32 -07:00
Abhishek Kumar d3a6ea52d7 Update compiler error E0076 to use new error format
Fixes #35221 part of #35233
2016-08-31 02:05:48 +05:30
Matthew Piziak ba69bc8b40 replace `BitAndAssign` example with something more evocative
This is the augmented-assignment version of PR #35809.

r? @GuillaumeGomez

improved documentation a la PR #35993
2016-08-30 15:55:11 -04:00
Mikhail Modin 507fe14637 update E0265 to new format 2016-08-30 22:46:52 +03:00
Matthew Piziak 8ca9fa11f9 add evocative examples for `BitOr` and `BitXor`
These are exactly equivalent to PR #35809, with one caveat: I do not believe there is a non-bitwise binary "xor" operator in Rust, so here it's expressed as (a || b) && !(a && b).

r? @GuillaumeGomez

improved documentation a la PR #35993
2016-08-30 15:45:37 -04:00