69448 Commits

Author SHA1 Message Date
Oliver Schneider
2961937a31
Use a Set<T> instead of a Map<T, bool> 2017-11-03 09:27:20 +01:00
kennytm
1f95c6de3c
Fix broken link in build-powerpc64le-toolchain.sh 2017-11-03 15:53:36 +08:00
Zack M. Davis
085ec6d528 unreachable-pub lint for pub items not reachable from crate root
This is with deepest thanks to Vadim Petrochenkov for thorough review, and
resolves #45521.
2017-11-02 20:50:17 -07:00
bors
9f3b09116b Auto merge of #45484 - oli-obk:lint_names, r=nikomatsakis
Report lint names in json diagnostics

This allows tools like `rustfix` to have whitelists for what to automatically apply and what not.
2017-11-03 00:42:11 +00:00
Amanieu d'Antras
ad1bb2e465 Cache the TLS model in the crate context 2017-11-03 00:29:54 +00:00
Amanieu d'Antras
b233a6e096 Add support for specifying the TLS model 2017-11-03 00:29:54 +00:00
Amanieu d'Antras
37b015fb91 Fix error message for invalid code/reloc models 2017-11-03 00:28:50 +00:00
Niko Matsakis
e8a96c97f4 fallback to provided signature in the event of a type error
This prevents regressions on some annoying cases.
2017-11-02 18:38:24 -04:00
Niko Matsakis
053383dbef new rules for merging expected/supplied types in closure signatures
Also, fix numbering in mir-opt tests. We are now anonymizing more
consistently, I think, and hence some of the `TyAnon` indices shifted.
2017-11-02 17:47:17 -04:00
Niko Matsakis
ea4db3521e move ty_of_closure into check/closure.rs, its only caller 2017-11-02 17:46:45 -04:00
Niko Matsakis
11118dcf19 add some better debugs 2017-11-02 17:46:45 -04:00
Wonwoo Choi
272c2faa1d Display spans correctly when there are non-half-width characters 2017-11-03 03:15:39 +09:00
Mikhail Modin
7d87054347 replace Add by tuple 2017-11-02 20:25:38 +03:00
Sebastian Dröge
b86bba5940 Make join a link to the function's documentation 2017-11-02 19:09:31 +02:00
Sebastian Dröge
a12f511910 Mention that panics can't possibly be caught when compiling with panic=abort 2017-11-02 18:33:25 +02:00
Sebastian Dröge
283b4a1b0b Use ` instead of ' for function names 2017-11-02 18:33:25 +02:00
Sebastian Dröge
5687000979 Update the std::thread docs and clarify that panics can nowadays be caught 2017-11-02 18:33:25 +02:00
bors
e340996ff5 Auto merge of #45409 - tamird:suggest-match-default-bindings, r=nikomatsakis
typeck: suggest use of match_default_bindings feature

Fixes #45383.
Updates #42640.

r? @nikomatsakis
cc @tschottdorf

This needs a UI test, but thought I'd get some early feedback.
2017-11-02 16:28:16 +00:00
Niko Matsakis
7b4282e02b emit less info when we warn
Actually, I meant to make this use `delay_span_bug`
2017-11-02 10:34:25 -04:00
Niko Matsakis
fdcd2256f0 trace span info for constraints and report errors 2017-11-02 10:34:25 -04:00
Niko Matsakis
53e4bd44de add mir-opt/named-lifetimes-basic.rs
This lets us inspect the regions we infer around named arguments.
2017-11-02 10:34:25 -04:00
Mikhail Modin
d6dfec124f improve compiletest output for errors from mir-opt tests 2017-11-02 16:41:40 +03:00
bors
5ce3d482e2 Auto merge of #45647 - nrc:rls-bugs, r=eddyb
save-analysis: support unions

r? @eddyb
2017-11-02 12:34:13 +00:00
Lance John
0f49129fd7
Fix typo
`accomodate` -> `accommodate`
2017-11-02 20:07:22 +08:00
Oliver Schneider
6ae440e048
Make the difference between lint codes and error codes explicit 2017-11-02 10:19:41 +01:00
Oliver Schneider
88fb4c4fda
Report lint names in json diagnostics 2017-11-02 10:19:41 +01:00
Niko Matsakis
b772827350 encapsulate the Region struct within region inference 2017-11-02 04:40:50 -04:00
Niko Matsakis
bfc696ad8a add comments to region_infer, restructure a bit 2017-11-02 04:40:50 -04:00
Niko Matsakis
cafbd99c38 extend NLL regions to include free region indices and add outlives 2017-11-02 04:40:50 -04:00
Niko Matsakis
7b30e8d668 convert (lexical) region errors to warn when NLL is enabled 2017-11-02 04:40:50 -04:00
Niko Matsakis
87c0c32768 add regions_that_outlive to FreeRegionMap 2017-11-02 04:40:49 -04:00
Niko Matsakis
3db1a95a3f add/fix various comments to BitMatrix
Notably, the (hitherto unused) `less_than` method was not at all what it
purported to be. It in fact computes the opposite.
2017-11-02 04:40:49 -04:00
Niko Matsakis
de201b40c9 ignore region errors if NLL is enabled
This way, NLL can report them later.
2017-11-02 04:40:49 -04:00
Niko Matsakis
81f6ce5ce3 rename Lookup to TyContext and pass more info when visiting tys 2017-11-02 04:40:49 -04:00
bors
a7d98c7837 Auto merge of #45630 - joshleeb:iss35241, r=estebank
Improve display of error E0308

Ref. Forgetting to call a variant constructor causes a confusing error message #35241.

This PR modifies [`note_type_err`](b7041bfab3/src/librustc/infer/error_reporting/mod.rs (L669-L674)) to display a `help` message when a `TyFnPtr` or `TyFnDef` are found and the return type, of the function or function pointer, is the same as the type that is expected.

The output of compiling

```rust
struct Foo(u32);

fn test() -> Foo { Foo }

fn main() {}
```

is now

```bash
$ rustc src/test/ui/issue-35241.rs
error[E0308]: mismatched types
  --> src/test/ui/issue-35241.rs:13:20
   |
13 | fn test() -> Foo { Foo }
   |              ---   ^^^ expected struct `Foo`, found fn item
   |              |
   |              expected `Foo` because of return type
   |
   = help: did you mean `Foo { /* fields */ }`?
   = note: expected type `Foo`
              found type `fn(u32) -> Foo {Foo::{{constructor}}}`

error: aborting due to previous error
```
2017-11-02 08:30:03 +00:00
Mikhail Modin
d9e64ebaaa change mir stage in test 2017-11-02 10:21:36 +03:00
Mikhail Modin
59d3184624 add one more sample 2017-11-02 09:43:36 +03:00
Mikhail Modin
cb2867da88 fix pre binding false edges 2017-11-02 09:43:36 +03:00
Mikhail Modin
a954dcc72e fix opt-mir test and remove false edge if no guard 2017-11-02 09:43:36 +03:00
Mikhail Modin
2d71c5f10c add TerminatorKind::FalseEdges and use it in matches 2017-11-02 09:43:36 +03:00
bors
2379faa933 Auto merge of #45468 - Xanewok:crate-source, r=nrc
Emit crate disambiguators in save-analysis data

Needed for https://github.com/nrc/rls-analysis/issues/93.
Blocked by https://github.com/nrc/rls-data/pull/11. (For now, this pulls my branch [rls-data/crate-source](https://github.com/Xanewok/rls-data/tree/crate-source))

This will allow to disambiguate different crates types/versions when indexing resulting save-analysis data (most importantly allow to support bin+lib and different crate versions).

r? @nrc
2017-11-02 03:36:50 +00:00
Nick Cameron
5d3be12a4d save-analysis: fix issue with sub-exprs in for loops
Fixes https://github.com/nrc/rls-analysis/issues/78
2017-11-02 14:35:39 +13:00
Paul Daniel Faria
97692afda9 newindex_type macro: make index private by default and allow pub through config 2017-11-01 21:25:37 -04:00
Paul Daniel Faria
bf1198eb1f newtype_index: Support simpler serializable override, custom derive, and fix mir_opt tests 2017-11-01 20:12:53 -04:00
Paul Daniel Faria
b46e42fe2a Clean up macro argument matches so they satisfy tidy checks 2017-11-01 20:12:10 -04:00
Paul Daniel Faria
4e496de26d Add derive and doc comment capabilities to newtype_index macro 2017-11-01 20:12:10 -04:00
bors
d5b69d4670 Auto merge of #45306 - whitequark:ref_slice, r=alexcrichton
Bring back slice::ref_slice as slice::from_ref.

These functions were deprecated and removed in 1.5, but such simple
functionality shouldn't require using unsafe code, and it isn't
cluttering libstd too much.

The original removal was quite contentious (see #27774), since then
we've had precedent for including such nuggets of functionality (see rust-lang/rfcs#1789),
and @nikomatsakis has provided a lot of use cases in https://github.com/rust-lang/rfcs/pull/1789#issuecomment-314640034.
Hence this PR.

I'm not too sure what to do with stability, feel free to correct me.
It seems pointless to go through stabilization for these functions though.

cc @aturon
2017-11-02 00:06:16 +00:00
laurent
ed20f3b5c0 Remove the redundant span_label. 2017-11-01 23:43:32 +00:00
Nick Cameron
20c64e8155 save-analysis: corrects reference for tuple struct and unit struct literals
Fixes https://github.com/nrc/rls-analysis/issues/77
2017-11-02 11:28:56 +13:00
whitequark
1cc88be2eb De-stabilize core::slice::{from_ref, from_ref_mut}. 2017-11-01 22:21:29 +00:00