Commit graph

19890 commits

Author SHA1 Message Date
Guillaume Gomez
2e343f384f Add help for intra-link lint 2018-06-13 21:18:55 +02:00
Guillaume Gomez
8c43c93e6d Fix options issues 2018-06-13 21:18:55 +02:00
Guillaume Gomez
b000cf0726 Add lint for intra link resolution failure 2018-06-09 14:07:25 +02:00
bors
1c5626f551 Auto merge of #51042 - matthewjasper:reenable-trivial-bounds, r=nikomatsakis
Re-enable trivial bounds

cc #50825

Remove implementations from global bounds in winnowing when there is ambiguity.

This results in the reverse of #24066 happening sometimes. I'm not sure if anything can be done about that though.

cc #48214

r? @nikomatsakis
2018-06-09 01:32:48 +00:00
bors
cf91e9b9ba Auto merge of #51448 - Mark-Simulacrum:rollup, r=Mark-Simulacrum
Rollup of 13 pull requests

Successful merges:

 - #50143 (Add deprecation lint for duplicated `macro_export`s)
 - #51099 (Fix Issue 38777)
 - #51276 (Dedup auto traits in trait objects.)
 - #51298 (Stabilize unit tests with non-`()` return type)
 - #51360 (Suggest parentheses when a struct literal needs them)
 - #51391 (Use spans pointing at the inside of a rustdoc attribute)
 - #51394 (Use scope tree depths to speed up `nearest_common_ancestor`.)
 - #51396 (Make the size of Option<NonZero*> a documented guarantee.)
 - #51401 (Warn on `repr` without hints)
 - #51412 (Avoid useless Vec clones in pending_obligations().)
 - #51427 (compiletest: autoremove duplicate .nll.* files (#51204))
 - #51436 (Do not require stage 2 compiler for rustdoc)
 - #51437 (rustbuild: generate full list of dependencies for metadata)

Failed merges:
2018-06-08 23:22:33 +00:00
Mark Rousskov
898bb78024
Rollup merge of #51401 - estebank:warn-repr, r=cramertj
Warn on `repr` without hints

Fix #51376.
2018-06-08 17:21:05 -06:00
Mark Rousskov
32ed5acf98
Rollup merge of #51391 - estebank:docspan, r=GuillaumeGomez
Use spans pointing at the inside of a rustdoc attribute

Follow up to #51111.

Point to the link in a rustdoc attribute where intralink resolution failed, instead of the full rustdoc attribute's span.

r? @GuillaumeGomez cc @kennytm
2018-06-08 17:21:02 -06:00
Mark Rousskov
4b176b2ce2
Rollup merge of #51360 - estebank:braces-around-literal-structs, r=nikomatsakis
Suggest parentheses when a struct literal needs them

When writing a struct literal in an expression that expects a block to
be started afterwards (like an `if` statement), do not suggest using the
same struct literal:

```
did you mean `S { /* fields * /}`?
```

Instead, suggest surrounding the expression with parentheses:

```
did you mean `(S { /* fields * /})`?
```

Fix #47360, #50090. Leaving #42982 open to come back to this problem with a better solution.
2018-06-08 17:21:00 -06:00
Mark Rousskov
d68098a43e
Rollup merge of #51298 - Dylan-DPC:stabilise/termination-test, r=nikomatsakis
Stabilize unit tests with non-`()` return type

References #48854
2018-06-08 17:20:59 -06:00
Mark Rousskov
b370f0e646
Rollup merge of #51276 - Havvy:dyn-trait-send-send, r=nikomatsakis
Dedup auto traits in trait objects.

Fixes #47010

Note that the test file `run-pass/trait-object-auto-dedup.rs` passes before and after this change. It's the `ui` test that changed from compiling to not compiling. Which does make this a breaking change, but I cannot imagine anybody actually being broken by it.
2018-06-08 17:20:58 -06:00
Mark Rousskov
71865fb947
Rollup merge of #51099 - Crazycolorz5:expectedcloseparen, r=estebank
Fix Issue 38777

When looking through for a closing bracket in the loop condition, adds them to expecteds.
https://github.com/rust-lang/rust/issues/38777
2018-06-08 17:20:57 -06:00
Mark Rousskov
91b6842dc9
Rollup merge of #50143 - petrochenkov:mexuniq, r=nikomatsakis
Add deprecation lint for duplicated `macro_export`s

cc https://github.com/rust-lang/rust/issues/35896#issuecomment-381370556
2018-06-08 17:20:55 -06:00
Crazycolorz5
df0c6a97b4 Built, corrected, and run tests. Added expected stderr files. 2018-06-08 17:25:53 -04:00
bors
8afb894931 Auto merge of #51247 - pnkfelix:issue-51190-report-type-moved-from-behind-borrow, r=nikomatsakis
NLL: report type moved from behind borrow of array/slice

When NLL has illegal move due to borrowed content in an array or slice, provide feedback about why the move wasn't a copy.

Drive by: While comparing the resulting `.nll.stderr` files to their old borrowck variants, I noticed that the test for borrowck-vec-pattern-nesting.rs was not signaling some errors under NLL due to the test assuming lexical lifetimes. So I fixed that too.

Fix #51190
2018-06-08 20:41:20 +00:00
Matthew Jasper
a1bddcfe7b Normalize associated types when checking global bounds 2018-06-08 17:00:56 +01:00
Matthew Jasper
9d7613abee Fix a typo 2018-06-08 17:00:49 +01:00
Matthew Jasper
0476a875d1 Test that object bounds are preferred over global where clause bounds 2018-06-08 17:00:36 +01:00
Matthew Jasper
87f63ca258 Add tests for associated types and inconsistent bounds 2018-06-08 17:00:26 +01:00
Matthew Jasper
ba35e80534 Reenable trivial bounds
Removes extra global bounds at the winnowing stage rather than when
normalizing the param_env. This avoids breaking inference when there is
a global bound.
2018-06-08 17:00:03 +01:00
kennytm
e46ef1bb86
Rollup merge of #51417 - pietroalbini:revert-49719, r=nikomatsakis
Revert #49719

This also needs to be backported into beta.

Fixes #51416.
r? @nikomatsakis
2018-06-08 07:05:47 +08:00
kennytm
d5759daf64
Rollup merge of #51389 - ollie27:rustdoc_cross_macro_src_stab, r=QuietMisdreavus
rustdoc: Fix missing stability and src links for inlined external macros

Fixes #38951

r? @QuietMisdreavus
2018-06-08 07:05:43 +08:00
kennytm
6c73943001
Rollup merge of #51368 - varkor:panic_implementation-closures, r=eddyb
Fix the use of closures within #[panic_implementation]

Fixes #51365.
2018-06-08 07:05:41 +08:00
kennytm
26a9d589c8
Rollup merge of #51283 - kennytm:fix-51279-preempt-the-warning-song-and-dance, r=nikomatsakis
Deny #[cfg] and #[cfg_attr] on generic parameters.

Fix #51279.

Attributes on generic parameters are not expanded, meaning `#[cfg]`, `#[cfg_attr]` and attribute proc macros are entirely ignored on them.

This PR makes using the first two attributes an error, because if they are correctly expanded will affect the AST and change code behavior.

I'm beta-nominating this, because generic parameter attributes are stabilizing in 1.27, and if we did not reserve their usage, we may never be able to repurpose the meaning of these attributes in the Rust 2015 edition.
2018-06-08 07:05:39 +08:00
kennytm
0bc15ed7c0
Rollup merge of #51186 - pnkfelix:remove-unneccessary-nll-stderr-files, r=oli-obk
Remove two redundant .nll.stderr files

It turns out that the diagnostics generated from NLL for these cases are now exactly the same as that produced by AST borrowck, and thus we can just fallback on those `.stderr` files that already exist for AST-borrowck.

Bravo!

(it is a good idea to remove these files, because it slightly reduces the amount of time humans will spend reviewing the .nll.stderr fileset...)

((it *might* be worthwhile trying to change the `compiletest` code to even issue a warning when two such files have equivalent contents... but I am not going so far as to try to implement that right now...))
2018-06-08 07:05:38 +08:00
Pietro Albini
1df7817122
Revert "Auto merge of #49719 - mark-i-m:no_sep, r=petrochenkov"
This reverts commit d6ba1b9b02, reversing
changes made to 8de5353f75.
2018-06-07 17:07:05 +02:00
Esteban Küber
0e3f19d3f1 Do not account for inner/outer attr 2018-06-06 17:39:58 -07:00
Esteban Küber
3cc09c8380 Use consistent span for repr attr suggestion 2018-06-06 17:36:28 -07:00
bors
c131bdcaff Auto merge of #50699 - Zoxc:blocking-queries, r=mw
Blocking Rayon queries

r? @michaelwoerister
2018-06-06 22:24:07 +00:00
Esteban Küber
9a80c2b994 Change repr documentation link 2018-06-06 14:33:07 -07:00
Esteban Küber
48e45eec30 Add transparent as valid repr hint 2018-06-06 14:25:50 -07:00
Esteban Küber
3580de8c6d Turn warning into lint 2018-06-06 14:11:48 -07:00
Felix S. Klock II
e5b378b18d Update the expected error output to reflect changes in this PR. 2018-06-06 22:42:27 +02:00
Felix S. Klock II
9b24595226 Drive-by: Make assignment conflict tests in borrowck-vec-pattern-nesting.rs robust for NLL. 2018-06-06 22:42:27 +02:00
Felix S. Klock II
50224ec1a9 It turns out that the diagnostics generated from NLL for these cases are now exactly the same as that produced by AST borrowck. Bravo! 2018-06-06 22:41:00 +02:00
bors
19d0b539aa Auto merge of #51263 - cramertj:futures-in-core, r=aturon
Add Future and task system to the standard library

This adds preliminary versions of the `std::future` and `std::task` modules in order to unblock development of async/await (https://github.com/rust-lang/rust/issues/50547). These shouldn't be considered as final forms of these libraries-- design questions about the libraries should be left on https://github.com/rust-lang/rfcs/pull/2418. Once that RFC (or a successor) is merged, these APIs will be adjusted as necessary.

r? @aturon
2018-06-06 19:42:19 +00:00
Esteban Küber
2c7099baeb Expand output and suggestions, fix tests 2018-06-06 12:31:43 -07:00
Taylor Cramer
a6055c8859 Add Future and task system to the standard library 2018-06-06 10:41:52 -07:00
Esteban Küber
7d0b6b75f0 When unable to sinthesize link span, fallback to previous behavior 2018-06-06 09:38:47 -07:00
Esteban Küber
507dfd2148 Use spans pointing at the inside of a rustdoc attribute 2018-06-06 08:49:42 -07:00
dylan_DPC
8ecbd351bb fix stderrs 2018-06-06 20:51:57 +05:30
bors
35aeecb8aa Auto merge of #51201 - estebank:dotdot, r=petrochenkov
Accept `..` in incorrect position to avoid further errors

We currently give a specific message when encountering a `..` anywhere
other than the end of a pattern. Modify the parser to accept it (while
still emitting the error) so that we don't also trigger "missing fields
in pattern" errors afterwards.

Add suggestions to either remove trailing `,` or moving the `..` to the
end.

Follow up to #49268.
2018-06-06 14:04:06 +00:00
John Kåre Alsaker
3571684d2c Create thread-pool 2018-06-06 15:25:18 +02:00
bors
9ac372568b Auto merge of #51316 - oli-obk:const_err, r=nikomatsakis
Refactor the const eval diagnostic API

* no longer report "const eval error" for things that have typeck errors
* errors and lints have saner spans and messages
* unified the diagnostic logic (const eval errors were slightly different depending on where they were reported, and there was also code duplication between the different reporters)
* report errors if an erroneous constant is used inside a promoted (fixes most of #50814)
2018-06-06 11:17:15 +00:00
bors
685faa2c3e Auto merge of #50844 - bjorn3:adhoc_compiller_calls, r=nrc
Add AdHocCalls and pass self to build_controller as Box<Self>

This makes it easier to write custom drivers.
2018-06-06 08:14:11 +00:00
Oliver Middleton
e73941a06b rustdoc: Fix missing stability and src links for inlined external macros 2018-06-06 04:13:55 +01:00
Oliver Schneider
14d08e5371 Rebase fallout 2018-06-05 21:08:43 +02:00
Oliver Schneider
13a55e8801 Satisfy the untiring tidy 2018-06-05 20:49:47 +02:00
Oliver Schneider
78d48867da Properly report transitive errors 2018-06-05 20:49:47 +02:00
Oliver Schneider
9cb47de813 Referring to erroneous constants in promoteds must abort the build 2018-06-05 20:49:46 +02:00
Oliver Schneider
5c0d1355f2 Refactor the const eval diagnostic API 2018-06-05 20:49:46 +02:00