Commit Graph

68479 Commits

Author SHA1 Message Date
Tamir Duberstein
41b105b6ea
fmt: remove misleading comment fragment 2017-10-07 05:48:58 -04:00
Tamir Duberstein
19dcf9190c
fmt: DRY 2017-10-07 05:48:21 -04:00
Tamir Duberstein
45907f5cac
fmt: remove unnecessary lint suppression 2017-10-07 05:41:24 -04:00
bors
d2f71bf23f Auto merge of #44860 - kennytm:fix-44731, r=alexcrichton
Fix issue #44731.

Also excludes `impl Trait` from everybody_loops if it appears in the path.

Fixes #44731.
2017-10-07 09:36:12 +00:00
bors
cce93436d3 Auto merge of #44515 - tamird:clean-shims, r=alexcrichton
{compiler-builtins,libc} shim cleanup

~~Depends on https://github.com/rust-lang/libc/pull/764; opening early for feedback.~~ r? @alexcrichton
2017-10-07 05:32:49 +00:00
Tamir Duberstein
7d6c3dafbd
Trim and document compiler-builtins shim 2017-10-06 20:35:57 -04:00
bors
e11f6d5355 Auto merge of #44614 - tschottdorf:pat_adjustments, r=nikomatsakis
implement pattern-binding-modes RFC

See the [RFC] and [tracking issue].

[tracking issue]: #42640
[RFC]: https://github.com/rust-lang/rfcs/blob/491e0af/text/2005-match-ergonomics.md
2017-10-07 00:28:42 +00:00
Nikolai Vazquez
22298b8240 Add unique feature in Box::from_unique docs 2017-10-06 19:21:22 -04:00
Nikolai Vazquez
5af88ee996 Add missing word in Box::from_unique docs 2017-10-06 17:39:38 -04:00
Nikolai Vazquez
5ce5b2fe76 Create Box::from_unique function
Provides a reasonable interface for Box::from_raw implementation.

Does not get around the requirement of mem::transmute for converting
back and forth between Unique and Box.
2017-10-06 17:30:20 -04:00
Nikolai Vazquez
452b71a07b Revert to using mem::transmute in Box::from_raw
Same reasons as commit 904133e1e2.
2017-10-06 17:01:50 -04:00
Nikolai Vazquez
904133e1e2 Revert to using mem::transmute in Box::into_unique
Seems to cause this error: "Cannot handle boxed::Box<[u8]> represented
as TyLayout".
2017-10-06 16:39:01 -04:00
Tobias Schottdorf
de55b4f077 implement pattern-binding-modes RFC
See the [RFC] and [tracking issue].

[tracking issue]: https://github.com/rust-lang/rust/issues/42640
[RFC]: https://github.com/rust-lang/rfcs/blob/491e0af/text/2005-match-ergonomics.md
2017-10-06 16:30:23 -04:00
Tom Tromey
c3c1df5820 Implement display_hint in gdb pretty printers
A few pretty-printers were returning a quoted string from their
to_string method.  It's preferable in gdb to return a lazy string and to
let gdb handle the display by having a "display_hint" method that
returns "string" -- it lets gdb settings (like "set print ...") work, it
handles corrupted strings a bit better, and it passes the information
along to IDEs.
2017-10-06 13:05:53 -06:00
bors
05cbece094 Auto merge of #43604 - abonander:proc_macro_span_api, r=jseyfried
Improvements to `proc_macro::Span` API

Motivation: https://internals.rust-lang.org/t/better-panic-location-reporting-for-unwrap-and-friends/5042/12?u=logician

TODO:
- [x] Bikeshedding/complete API
- [x] Implement tests/verify return values

cc @jseyfried @nrc
2017-10-06 18:52:30 +00:00
bors
b67f4283b3 Auto merge of #45065 - arielb1:not-correct, r=nikomatsakis
fix logic error in #44269's `prune_cache_value_obligations`

We want to retain obligations that *contain* inference variables, not
obligations that *don't contain* them, in order to fix #43132. Because
of surrounding changes to inference, the ICE doesn't occur in its
original case, but I believe it could still be made to occur on master.

Maybe I should try to write a new test case? Certainly not right now
(I'm mainly trying to get us a beta that we can ship) but maybe before
we land this PR on nightly?

This seems to cause a 10% performance regression in my imprecise
attempt to benchmark item-body checking for #43613, but it's better to
be slow and right than fast and wrong. If we want to recover that, I
think we can change the constrained-type-parameter code to actually
give a list of projections that are important for resolving inference
variables and filter everything else out.
2017-10-06 15:30:32 +00:00
Ariel Ben-Yehuda
91fdadba61 fix logic error in #44269's prune_cache_value_obligations
We want to retain obligations that *contain* inference variables, not
obligations that *don't contain* them, in order to fix #43132. Because
of surrounding changes to inference, the ICE doesn't occur in its
original case, but I believe it could still be made to occur on master.

Maybe I should try to write a new test case? Certainly not right now
(I'm mainly trying to get us a beta that we can ship) but maybe before
we land this PR on nightly?

This seems to cause a 10% performance regression in my imprecise
attempt to benchmark item-body checking for #43613, but it's better to
be slow and right than fast and wrong. If we want to recover that, I
think we can change the constrained-type-parameter code to actually
give a list of projections that are important for resolving inference
variables and filter everything else out.
2017-10-06 17:12:24 +03:00
Alex Crichton
1988447007 rustc: Reduce default CGUs to 16
Rationale explained in the included comment as well as #44941
2017-10-06 07:06:30 -07:00
bors
a8feaee5b6 Auto merge of #44734 - mchlrhw:wip/hashmap-entry-and-then, r=BurntSushi
Implement `and_modify` on `Entry`

## Motivation

`Entry`s are useful for allowing access to existing values in a map while also allowing default values to be inserted for absent keys. The existing API is similar to that of `Option`, where `or` and `or_with` can be used if the option variant is `None`.

The `Entry` API is, however, missing an equivalent of `Option`'s `and_then` method. If it were present it would be possible to modify an existing entry before calling `or_insert` without resorting to matching on the entry variant.

Tracking issue: https://github.com/rust-lang/rust/issues/44733.
2017-10-06 12:51:11 +00:00
bors
3ed8b69842 Auto merge of #44965 - oconnor663:res_init_glibc, r=dtolnay
replace libc::res_init with res_init_if_glibc_before_2_26

The previous workaround for gibc's res_init bug is not thread-safe on
other implementations of libc, and it can cause crashes. Use a runtime
check to make sure we only call res_init when we need to, which is also
when it's safe. See https://github.com/rust-lang/rust/issues/43592.

~This PR is returning an InvalidData IO error if the glibc version string fails to parse. We could also have treated that case as "not glibc", and gotten rid of the idea that these functions could return an error. (Though I'm not a huge fan of ignoring error returns from `res_init` in any case.) Do other folks agree with these design choices?~

I'm pretty new to hacking on libstd. Is there an easy way to build a toy rust program against my changes to test this, other than doing an entire `sudo make install` on my system? What's the usual workflow?
2017-10-06 10:20:14 +00:00
Seiichi Uchida
14c6c11904 Add a semicolon to span for ast::Local 2017-10-06 19:17:40 +09:00
mchlrhw
9e36111fc6 Implement entry_and_modify 2017-10-06 09:10:31 +01:00
bors
ed1cffdb21 Auto merge of #44818 - petrochenkov:astymac2, r=jseyfried
Improve resolution of associated types in declarative macros 2.0

Make various identifier comparisons for associated types (and sometimes other associated items) hygienic.
Now declarative macros 2.0 can use `Self::AssocTy`, `TyParam::AssocTy`, `Trait<AssocTy = u8>` where `AssocTy` is an associated type of a trait `Trait` visible from the macro. Also, `Trait` can now be implemented inside the macro and specialization should work properly (fixes https://github.com/rust-lang/rust/pull/40847#issuecomment-310867299).

r? @jseyfried or @eddyb
2017-10-06 05:37:43 +00:00
bors
b915820878 Auto merge of #44951 - vitiral:incr_struct_defs, r=michaelwoerister
incr compilation struct_defs.rs

I am prematurely openeing this as I need mentoring help from @michaelwoerister (also pinged @nikomatsakis)

First, is this the right approach for these changes?

Second, I'm a bit confused by the results so far.

- Changing `TupleStructFieldType(i32)` -> `...(u32)` changes only Hir and HirBody, not TypeOfItem
- Chaning `TupleStructAddField(i32)` -> `...(i32, u32)` *does* change TypeOfItem

This seems wrong. I feel like it should change TypeOfItem in both cases. Is this a bug in incr compilation or is it expected?
2017-10-06 03:16:13 +00:00
Kevin Hunter Kesling
73ca15cc29 Fix typo, per #45057. 2017-10-05 21:31:59 -04:00
Austin Bonander
7be36d2a6d proc_macro::Span API improvements 2017-10-05 17:00:55 -07:00
bors
f5e036a290 Auto merge of #45054 - andjo403:master, r=alexcrichton
Faster compile times for release builds with llvm fix

Run global optimizations after the inliner to avoid spending time on optimizing dead code.

fixes #44655
2017-10-05 22:20:23 +00:00
Jack O'Connor
9602fe1509 replace libc::res_init with res_init_if_glibc_before_2_26
The previous workaround for gibc's res_init bug is not thread-safe on
other implementations of libc, and it can cause crashes. Use a runtime
check to make sure we only call res_init when we need to, which is also
when it's safe. See https://github.com/rust-lang/rust/issues/43592.
2017-10-05 17:53:10 -04:00
Vadim Petrochenkov
2d9161d188 Improve resolution of associated types in macros 2.0 2017-10-06 00:35:21 +03:00
Guillaume Gomez
98045fdaca Add missing links for AtomicBool 2017-10-05 23:20:58 +02:00
steveklabnik
5e251b74eb Modify Rc/Arc language around mutability
There are a few exceptions to the rule that Arc/Rc are immutable. Rather
than dig into the details, add "generally" to hint at this difference,
as it's kind of a distraction at this point in the docs.

Additionally, Arc's docs were slightly different here generally, so add
in both the existing language and the exception.

Fixes #44105
2017-10-05 16:54:56 -04:00
bors
417c73891f Auto merge of #44943 - nivkner:fixme_fixup, r=dtolnay
address some FIXME whose associated issues were marked as closed

part of #44366
2017-10-05 19:52:00 +00:00
Andreas Jonson
8fd3c8f769 Faster compile times for release builds with llvm fix 2017-10-05 18:56:23 +00:00
bgermann
dba52ff9cd restore 'if: branch = auto' for cross2 builder 2017-10-05 20:42:27 +02:00
bors
4531131bf3 Auto merge of #44878 - Nashenas88:master, r=nikomatsakis
Store a new Region value every time we create a new region variable

Paired with @spastorino to walk through this and implement #44870.
2017-10-05 17:14:12 +00:00
bgermann
724dd46536 Add libsocket and libresolv to Solaris builder 2017-10-05 19:05:19 +02:00
bgermann
9bff9e0ce9 delete 'if: branch = auto' for cross2 builder 2017-10-05 17:21:28 +02:00
bors
1db1144277 Auto merge of #45046 - kennytm:rollup, r=kennytm
Rollup of 9 pull requests

- Successful merges: #44664, #44935, #44972, #44980, #44987, #44997, #45006, #45017, #45024
- Failed merges:
2017-10-05 13:25:55 +00:00
kennytm
5440733971 Rollup merge of #45024 - QuietMisdreavus:doc-masked-issue-num, r=pnkfelix
add the issue number to doc_masked's feature gate

Whoops, missed this in the original `#[doc(masked)]` PR.
2017-10-05 20:22:37 +08:00
kennytm
8249004f03 Rollup merge of #45017 - GuillaumeGomez:mutex-links, r=estebank
Add missing urls for Mutex

r? @rust-lang/docs
2017-10-05 20:22:36 +08:00
kennytm
71fba531dc Rollup merge of #45006 - MaikKlein:patch-2, r=nikomatsakis
Typo in `librustc/README.md`
2017-10-05 20:22:36 +08:00
kennytm
856a12d03e Rollup merge of #44997 - SuriyaaKudoIsc:patch-1, r=steveklabnik
Use HTTPS protocol for "chat.mibbit.com"

I changed the `http://` protocol to `https://` for the `chat.mibbit.com` website. 📝

--[**Suriyaa**](https://mozillians.org/de/u/suriyaakudo/) 🦊

(*PS: Is somebody interested to vouch me at https://mozillians.org/de/u/suriyaakudo/?*)
2017-10-05 20:22:35 +08:00
kennytm
9a43c28e6b Rollup merge of #44987 - pnkfelix:mir-borrowck-fix-borrowindexes-ice, r=arielb1
`EndRegion` do not always correspond to borrow-data entries

Remove assertion that the argument to every `EndRegion` correspond to some dataflow-tracked borrow-data entry.

Fix #44828

(The comment thread on the aforementioned issue discusses why its best to just remove this assertion.)
2017-10-05 20:22:34 +08:00
kennytm
14d8055476 Rollup merge of #44980 - steveklabnik:update-books, r=estebank
update books for next release

Also fixes some stdlib links to the reference which have changed.

First step in https://forge.rust-lang.org/release-process.html, doing it a few days early 😄
2017-10-05 20:22:33 +08:00
kennytm
b380254858 Rollup merge of #44972 - durka:patch-44, r=arielb1
fix ItemKind::DefaultImpl doc comment

Upgrade comment to doc comment.

...Is this actually used? If so, why does the `Impl` variant right below have a `Defaultness`?
2017-10-05 20:22:31 +08:00
kennytm
3a037f113c Rollup merge of #44935 - vitiral:dependencies, r=steveklabnik
Add links to headers in README and CONTRIBUTING

this also adds dependencies to CONTRIBUTING

I'm just getting started building the rust compiler and noticed this information/ability was missing.

It was also missing the gdb dependency for running tests. I pulled the information out of `appveyor.yml` and recommended later than 7.1 because that is what [apt ships](https://packages.ubuntu.com/search?suite=trusty&keywords=gdb). Feel free to tell me something different!
2017-10-05 20:22:30 +08:00
kennytm
b34ade07a1 Rollup merge of #44664 - budziq:contributing_external, r=steveklabnik
Corrected the CONTRIBUTING.md "External Dependencies" section

The "External Dependencies" section is a little outdated.
Please see following comments https://github.com/rust-lang/rust/pull/44567#issuecomment-329797331 https://github.com/rust-lang/rust/pull/44567#issuecomment-329799655 for rationale.
2017-10-05 20:22:29 +08:00
bgermann
a78ce07381 Fix CC for solaris environments 2017-10-05 13:48:34 +02:00
bors
abef7e1fd2 Auto merge of #45019 - aidanhs:aphs-no-trans-worker-panic, r=alexcrichton
Don't unwrap work item results as the panic trace is useless

Fixes #43402 now there's no multithreaded panic printouts

Also update a comment

--------

Likely regressed in #43506, where the code was changed to panic in worker threads on error.

Unwrapping gives zero extra information since the stack trace is so short, so we may as well just surface that there was an error and exit the thread properly. Because there are then no multithreaded printouts, I think it should mean the output of the test for #26199 is deterministic and not interleaved (thanks to @philipc https://github.com/rust-lang/rust/issues/43402#issuecomment-333835271 for a hint).

Sadly the output is now:
```
thread '<unnamed>' panicked at 'aborting due to worker thread panic', src/librustc_trans/back/write.rs:1643:20
note: Run with `RUST_BACKTRACE=1` for a backtrace.
error: could not write output to : No such file or directory

error: aborting due to previous error
```
but it's an improvement over the multi-panic situation before.

r? @alexcrichton
2017-10-05 10:50:11 +00:00
Michael Woerister
b50e8ebbba Fix infinite recursion in <DepNode as Debug>. 2017-10-05 10:20:13 +02:00