Commit Graph

69438 Commits

Author SHA1 Message Date
kennytm
264bfc418c
Rollup merge of #45714 - sdroege:thread-panic-docs, r=dtolnay
Update the std::thread docs and clarify that panics can nowadays be caught
2017-11-07 22:40:13 +08:00
kennytm
eae36714df
Rollup merge of #45682 - RalfJung:rwlock-guards, r=alexcrichton
RwLock guards are Sync if T is

Currently, the compiler requires `T` to also be `Send`.  There is no reason for
that.  `&Rw{Read,Write}LockGuard` only provides a shared referenced to `T`, sending
that across threads is safe if `T` is `Sync`.

Cc @oconnor663
2017-11-07 22:40:12 +08:00
kennytm
843dc4bd76
Rollup merge of #45588 - Keruspe:master, r=alexcrichton
rustbuild: don't try to install rls if ToolState is not Testing

We already do that for the Dist Step so we would end up trying to install something that we didn't dist.
2017-11-07 22:40:11 +08:00
kennytm
8074361f46
Rollup merge of #45470 - GuillaumeGomez:unix-metadata-ext, r=QuietMisdreavus
add missing docs for MetadataExt

r? @rust-lang/docs
2017-11-07 22:40:09 +08:00
bors
7ade24f672 Auto merge of #45666 - Amanieu:tls-model, r=alexcrichton
Allow overriding the TLS model

This PR adds the ability to override the default "global-dynamic" TLS model with a more specific one through a target json option or a command-line option. This allows for better code generation in certain situations.

This is similar to the `-ftls-model=` option in GCC and Clang.
2017-11-07 14:24:15 +00:00
Michael Woerister
3c6f620ea0 incr.comp.: Add -Zincremental-verify-ich, which allows to perform a consistency check for stored query result fingerprints. 2017-11-07 15:22:29 +01:00
Michael Woerister
81fd279e81 incr.comp.: Don't filter out StmtDecls from hir::Block during hashing as these make a difference for the RegionScopeTree. 2017-11-07 15:18:00 +01:00
Michael Woerister
faad4ea3b7 incr.comp.: Sort exported symbols list in order to achieve stable incr. comp. hash. 2017-11-07 15:15:45 +01:00
Michael Woerister
102eaa5c10 incr.comp.: Always require Session when decoding Spans (as to avoid silently wrong results). 2017-11-07 15:14:32 +01:00
Michael Woerister
a174951272 incr.comp.: Make assertion in try_mark_green() more targeted. 2017-11-07 15:04:10 +01:00
Michael Woerister
667477392b incr.comp.: Mark more input nodes as inputs. 2017-11-07 14:54:07 +01:00
Michael Woerister
70f9a0b214 incr.comp.: Allow for forcing input nodes lazily. 2017-11-07 14:53:21 +01:00
Michael Woerister
8fcf3e33e4 Fix some rebasing fallout. 2017-11-07 08:54:38 +01:00
Michael Woerister
e546fea0a1 Don't duplicate logic of when an Instance requests to be inlined. 2017-11-07 08:54:38 +01:00
Michael Woerister
48a8d23b97 Update run-make tests. 2017-11-07 08:54:38 +01:00
Michael Woerister
7d774c4214 Update mir-opt tests. 2017-11-07 08:54:38 +01:00
Michael Woerister
55c3b8ec66 Update compile-fail tests. 2017-11-07 08:54:38 +01:00
Michael Woerister
9fd4be9c2e Update codegen tests. 2017-11-07 08:54:38 +01:00
Michael Woerister
cedae73c8c Fix incremental tests after change to instantiation strategy. 2017-11-07 08:54:38 +01:00
Michael Woerister
6a3659427e incr.comp.: Improve error message for unknown fingerprint. 2017-11-07 08:54:38 +01:00
Michael Woerister
6c1529b34f Update invalid inline arg test. 2017-11-07 08:54:38 +01:00
Michael Woerister
6ae60ea94e Add regression tests for non-instantiation of inline and const fns. 2017-11-07 08:54:38 +01:00
Michael Woerister
7bb9353dd5 Update codegen-unit tests. 2017-11-07 08:54:38 +01:00
Michael Woerister
b61ee5180c Fix translation item collection for inline and const fns. 2017-11-07 08:54:38 +01:00
bors
3e7f501991 Auto merge of #45620 - ollie27:rustdoc_impl_generic_dupe, r=QuietMisdreavus
rustdoc: Fix duplicated impls with generics

The same type can appear multiple times in impls so we need to use a set
to avoid adding it multiple times.

Fixes: #45584
2017-11-07 07:24:13 +00:00
Alec Theriault
aa38a1ee50 Update comments in cast-lt.pp 2017-11-06 22:18:14 -08:00
Esteban Küber
805333b2b5 review comments 2017-11-06 21:02:31 -08:00
bors
a17e72462f Auto merge of #45571 - zackmdavis:regenerate_char_private, r=alexcrichton
regenerate libcore/char_private.rs

(filed separately from the work in #45569, because of this matter of the updated Unicode data; see also #45567)

char_private.rs is generated programmatically by char_private.py, using data retrieved from the Unicode Consortium's website.

The motivation here was to make `is_printable` crate-visible (with `pub(crate)`), but it would seem that the Unicode data has changed slightly since char_private.rs was last generated.
2017-11-07 02:07:34 +00:00
Corey Farwell
c3ea358121 Display all emission types in error msg if user inputs invalid option.
before:

```
> rustc --emit foo
error: unknown emission type: `foo`
```

after:

```
> rustc --emit foo
error: unknown emission type: `foo` - expected one of: `llvm-bc`, `asm`, `llvm-ir`, `mir`, `obj`, `metadata`, `link`, `dep-info`
```
2017-11-06 20:36:48 -05:00
bors
785643a5eb Auto merge of #45668 - nikomatsakis:nll-free-region, r=arielb1
extend NLL with preliminary support for free regions on functions

This PR extends https://github.com/rust-lang/rust/pull/45538 with support for free regions. This is pretty preliminary and will no doubt want to change in various ways, particularly as we add support for closures, but it's enough to get the basic idea in place:

- We now create specific regions to represent each named lifetime declared on the function.
- Region values can contain references to these regions (represented for now as a `BTreeSet<RegionIndex>`).
- If we wind up trying to infer that `'a: 'b` must hold, but no such relationship was declared, we report an error.

It also does a number of drive-by refactorings.

r? @arielb1

cc @spastorino
2017-11-06 23:30:57 +00:00
Amanieu d'Antras
fdf7ba2ce9 Move tls-model to a -Z option since it is unstable 2017-11-06 21:10:49 +00:00
bors
bd0e45a323 Auto merge of #45811 - DSpeckhals:update-rustfmt-rls, r=nikomatsakis
tools: Fix rustfmt and the RLS

These tools have been corrected in their upstream repo's, and the submodules have been updated here to reflect that. I also had to update Cargo to match what the RLS is expecting.

The tool states for `rustfmt` and `rls` where both changed from "Broken" to "Testing" in this commit, thus enabling testing and distribution again.
2017-11-06 20:43:46 +00:00
bors
dbe8055f5a Auto merge of #45322 - infinity0:master, r=alexcrichton
When cross-compiling, also build target-arch tarballs for libstd. (Closes: #42320)

Half of the logic is actually in there already in install.rs:install_std but it fails with an error like:

sh: 0: Can't open /<<BUILDDIR>>/rustc-1.21.0+dfsg1/build/tmp/dist/rust-std-1.21.0-powerpc64le-unknown-linux-gnu/install.sh

because the target-arch dist tarball wasn't built as well. This commit fixes that so the overall install works.

There is one minor bug in the existing code which this commit doesn't fix - the install.log from multiple runs of the installer gets clobbered, which seems like it might interfere with the uninstall process (I didn't look very deeply into this, because it doesn't affect what I need to do.) The actual installed files under DESTDIR seem fine though - either they are installed under an arch-specific path, or the multiple runs will clobber the same path with the same arch-independent file.
2017-11-06 18:04:13 +00:00
Dustin Speckhals
d0c1f36771 tools: Fix rustfmt and the RLS
These tools have been corrected in their upstream repo's, and the
submodules have been updated here to reflect that. I also had to update
Cargo to match what the RLS is expecting.

The tool states for `rustfmt` and `rls` where both changed from "Broken"
to "Testing" in this commit, thus enabling testing and distribution
again.
2017-11-06 13:03:06 -05:00
Wonwoo Choi
99ada043b6 Forbid casting to/from a pointer of unknown kind 2017-11-07 01:45:57 +09:00
bors
58557fafae Auto merge of #45369 - fintelia:patch-1, r=BurntSushi
Implement is_empty() for BufReader

Simple implementation of `is_empty` method for BufReader so it is possible to tell whether there is any data in its buffer.

I didn't know correct stability annotation to place on the function. Presumably there is no reason to place this feature behind a feature flag, but I wasn't sure how to tag it as an unstable feature without that.

CC: #45323
2017-11-06 15:19:48 +00:00
bors
74be072068 Auto merge of #45737 - oli-obk:json, r=petrochenkov
Pretty print json in ui tests

I found the json output in one line to not be useful for reviewing

r? @petrochenkov
2017-11-06 12:18:12 +00:00
Ximin Luo
32cf6e64c1 Ensure dist::Std for every libstd target. (Closes: #42320)
This fixes cross-compile installation. Half of the logic is actually in there
already in install.rs:install_std but it fails with an error like:

sh: 0: Can't open /<<BUILDDIR>>/rustc-1.21.0+dfsg1/build/tmp/dist/rust-std-1.21.0-powerpc64le-unknown-linux-gnu/install.sh

because the target-arch dist tarball wasn't built as well.
2017-11-06 11:38:27 +01:00
Oliver Schneider
6d6fb2ef97
Adjust json errors to byte changes 2017-11-06 10:35:50 +01:00
Oliver Schneider
dfe218ac97
Do not highlight surrounding whitespace 2017-11-06 09:58:53 +01:00
bors
19402f11e1 Auto merge of #45798 - nrc:rls-bugs-3, r=eddyb
A couple more save-analysis fixes

r? @eddyb
2017-11-06 08:48:11 +00:00
bors
54bbd56715 Auto merge of #45758 - nzig:explain-span-ctxt, r=petrochenkov
Add comment explaining the ctxt field in Span

As discussed in #45747.

r? @petrochenkov
2017-11-06 05:16:15 +00:00
Alec Theriault
3761c0d246 Fix comments 2017-11-05 20:53:46 -08:00
Nick Cameron
b709a7ebc5 save-analysis: fix bugs in method chains
Use the span we save in the PathSegment for a method call, rather than searching for it in the text.

Fixes https://github.com/nrc/rls-analysis/issues/111
2017-11-06 15:52:42 +13:00
bors
11cee74093 Auto merge of #45756 - topecongiro:fix-typos/librustc_typeck, r=kennytm
Fix typos in README.md

This nitpicky PR fixes few typos I found while reading `README.md`s.
2017-11-06 02:02:11 +00:00
Nick Cameron
099f96472f save-analysis: give better info for Unions 2017-11-06 14:56:43 +13:00
bors
44990e5b14 Auto merge of #45770 - spastorino:newtype_index, r=nikomatsakis
Make last structs indexes definitions use newtype_index macro

This PR makes the last two index structs not using newtype_index macro to use it and also fixes this https://github.com/rust-lang/rust/issues/45763 issue.
2017-11-05 22:06:15 +00:00
Alec Theriault
005d14d5c8 Added tests 2017-11-05 12:27:46 -08:00
bors
3b82e4c74d Auto merge of #45723 - sinkuu:ice_45493, r=arielb1
Fix MIR inlining panic in generic function

MIR inlining calls `Instance::resolve` with a substs containing param, and `trans_apply_param_substs` panics. ~~This PR fixes it by making `Instance::resolve` return `None` if `substs.has_param_types()`, though I'm not sure if this is a right fix.~~

Fixes #45493.
2017-11-05 19:19:59 +00:00
Esteban Küber
de959afab5 Handle anon lifetime arg being returned with named lifetime return type
When there's a lifetime mismatch between an argument with an anonymous
lifetime being returned in a method with a return type that has a named
lifetime, show specialized lifetime error pointing at argument with a
hint to give it an explicit lifetime matching the return type.

```
error[E0621]: explicit lifetime required in the type of `other`
  --> file2.rs:21:21
   |
17 |     fn bar(&self, other: Foo) -> Foo<'a> {
   |                   ----- consider changing the type of `other` to `Foo<'a>`
...
21 |                     other
   |                     ^^^^^ lifetime `'a` required
```

Follow up to #44124 and #42669.
2017-11-05 09:55:07 -08:00