Commit Graph

59709 Commits

Author SHA1 Message Date
est31 d810898751 Librarify tidy
Convert tidy into a library so that the data it creates
can be used by external tools.
2017-06-14 04:59:07 +02:00
Corey Farwell 9242f22666 Rollup merge of #42638 - arthurpaimarnold:lexer_rule_for_octal, r=petrochenkov
Possible mistake in lexer rule for octal integer

Original rule allowed for digits 0-8, but octal is 0-7.

The compiler correctly prevents you from placing an 8 in an octal, so I'm assuming this is caught on a later stage. Still, shouldn't the lexer already catch this?
2017-06-13 17:15:04 -04:00
Corey Farwell d60b291c8f Rollup merge of #42636 - GuillaumeGomez:new-error-codes-next2, r=eddyb
Add E0617

Part of #42229.

cc @Susurrus @frewsxcv @QuietMisdreavus
2017-06-13 17:15:03 -04:00
Corey Farwell 664ab45796 Rollup merge of #42597 - mark-buer:park_timeout_example_fix, r=alexcrichton
Capture elapsed duration in Thread::park_timeout example

`beginning_park.elapsed()` might return a larger value within the loop as compared to that checked in the loop conditional.
Since `Duration` arithmetic is checked, hitting such an edge case will cause a panic.
2017-06-13 17:15:02 -04:00
Corey Farwell 7463cf5faf Rollup merge of #42496 - Razaekel:feature/integer_max-min, r=BurntSushi
Add max and min to Ord

Pursuant to issue #25663, this PR adds max and min methods with default implementations to std::cmp::Ord. It also modifies std::cmp::max|min to internally alias to Ord::max|min, so that any overrides of the default implementations are automatically used by std::cmp::max|min.

Closes #25663
2017-06-13 17:15:00 -04:00
Corey Farwell 78d5d37235 Rollup merge of #42428 - scottmcm:str-get-overflow, r=sfackler
Add overflow checking for `str::get` with inclusive ranges

Fixes https://github.com/rust-lang/rust/issues/42401

Two commits here:

1. The first makes `str::index` just call `SliceIndex<str>::index`.  It's intended to have no behavior change, except where the two methods were inconsistent.
2. The second actually adds the overflow checking to `get(_mut)` (and tests for it)
2017-06-13 17:14:59 -04:00
Corey Farwell 02179bd251 Rollup merge of #42408 - bjorn3:patch-2, r=michaelwoerister
Add docs to librustc/hir/check_attr.rs

Also moved `check_attribute` up to ease reading.
2017-06-13 17:14:59 -04:00
Guillaume Gomez a5dc963974 Add E0617 2017-06-13 23:10:43 +02:00
Arthur Arnold c291e87dae changed upper bound digit in octal rule to 7 2017-06-13 17:08:12 -03:00
bjorn3 e75937022e Add docs to librustc/hir/check_attr.rs 2017-06-13 18:32:39 +02:00
bors 03abb1bd70 Auto merge of #42627 - michaelwoerister:no-ident-in-def-path, r=eddyb
incr.comp.: Don't use Ident in DefPath because that's unstable across compilation sessions

Fixes https://github.com/rust-lang/rust/issues/42550.

cc @jseyfried @nikomatsakis

r? @eddyb
2017-06-13 13:59:38 +00:00
Michael Woerister d714b9790b incr.comp.: Don't use Ident in DefPath because that's unstable across compilation sessions. 2017-06-13 13:47:13 +02:00
bors 9b5b514c8d Auto merge of #42576 - nikomatsakis:incr-comp-less-tasks, r=michaelwoerister
prune some tasks and depnode variants

Pick some low-hanging fruit towards the goal of removing the older tasks.

r? @michaelwoerister
2017-06-13 11:24:24 +00:00
bors 9adf969cd8 Auto merge of #42608 - ollie27:rustdoc_variant_reexport, r=QuietMisdreavus
rustdoc: Fix missing enum variant reexports

Fixes #35488
2017-06-13 08:54:23 +00:00
bors e7fffa2211 Auto merge of #42471 - nrc:save-sig-2, r=eddyb
save-analysis: signatures for everything!
2017-06-13 06:20:12 +00:00
Nick Cameron ffd83fdf7d Update RLS again 2017-06-13 15:15:35 +12:00
bors add847a82d Auto merge of #42566 - arthurprs:update-jemalloc, r=alexcrichton
Revert "Update jemalloc to 4.5.0"

This reverts commit 65d0be3b7b due to bug https://github.com/jemalloc/jemalloc/issues/895.

CC @alexcrichton
2017-06-13 02:30:12 +00:00
Oliver Middleton 68ccba81ae rustdoc: Fix missing enum variant reexports 2017-06-12 22:42:20 +01:00
Niko Matsakis 36973f743f consider closures/ty-fn-defs when making trait selection keys
Fixes #42602.
2017-06-12 17:23:21 -04:00
Niko Matsakis f61bee340c kill dep-graph-unrelated test
Doesnt' seem to add much value, and since we don't track
`TransCrateItem` anymore, it's not clear what to translate it to.
2017-06-12 16:01:31 -04:00
Niko Matsakis 03ff38e018 kill various DepNode variants 2017-06-12 16:01:31 -04:00
Niko Matsakis 3f99118871 kill various tasks we no longer need and remove outdated README text
In the case of `TransCrateItem`, I had to tweak the tests a bit, but
it's a concept that doesn't work well under new system.
2017-06-12 16:00:31 -04:00
Corey Farwell 3023cc49c8 Rollup merge of #42594 - ollie27:rustdoc_assoc_type_links, r=steveklabnik
rustdoc: Link directly to associated types

Rather than just linking to the trait.

Also simplifies the logic used to decide whether to render the full
QPath.
2017-06-12 12:39:49 -04:00
Corey Farwell 87426195ec Rollup merge of #42592 - ollie27:rustdoc_empty_modules, r=steveklabnik
rustdoc: Stop stripping empty modules

There is no good reason to strip empty modules with no documentation and
doing so causes subtle problems.

Fixes #42590
2017-06-12 12:39:48 -04:00
Corey Farwell b646ca9267 Rollup merge of #42586 - ideasman42:patch-1, r=steveklabnik
Docstring: add missing term 'disjoint' from matches, rmatches

This follows `match_indices`
2017-06-12 12:39:47 -04:00
Corey Farwell 3a550a4893 Rollup merge of #42579 - maccoda:maccoda/env_docs, r=steveklabnik
env docs completion.

Should be closing #29351 with the alignment of the iterators to the template.
2017-06-12 12:39:46 -04:00
bors 5aa34038ff Auto merge of #42570 - birkenfeld:patch-3, r=frewsxcv
Add dedicated docstrings to Sum/Product impl of Result

(and fix a minor grammar typo below)
2017-06-12 13:59:39 +00:00
bors 3f8b93693d Auto merge of #42537 - michaelwoerister:tcx-for-dep-node, r=nikomatsakis
incr.comp.: Make DepNode `Copy` and valid across compilation sessions

This PR moves `DepNode` to a representation that does not need retracing and thus simplifies comparing dep-graphs from different compilation sessions. The code also gets a lot simpler in many places, since we don't need the generic parameter on `DepNode` anymore.  See https://github.com/rust-lang/rust/issues/42294 for details.

~~NOTE: Only the last commit of this is new, the rest is already reviewed in https://github.com/rust-lang/rust/pull/42504.~~

This PR is almost done but there are some things I still want to do:
- [x] Add some module-level documentation to `dep_node.rs`, explaining especially what the `define_dep_nodes!()` macro is about.
- [x] Do another pass over the dep-graph loading logic. I suspect that we can get rid of building the `edges` map and also use arrays instead of hash maps in some places.

cc @rust-lang/compiler
r? @nikomatsakis
2017-06-12 11:39:35 +00:00
Georg Brandl 2366c464a7 Add dedicated docstrings to Sum/Product impl of Result
(and fix a minor grammar typo below)
2017-06-12 10:50:28 +02:00
bors 0a5218b506 Auto merge of #42572 - ollie27:rustdoc_create_dir_all, r=GuillaumeGomez
rustdoc: Use `create_dir_all` to create output directory

Currently rustdoc will fail if passed `-o foo/doc` if the `foo`
directory doesn't exist.

Also remove unneeded `mkdir` as `create_dir_all` can now handle
concurrent invocations since #39799.
2017-06-12 08:49:51 +00:00
Michael Woerister fdff2d3588 Add some documentation to the dep_node module. 2017-06-12 10:25:42 +02:00
Mark Buer 0389d40ce0 Capture elapsed duration in Thread::park_timeout example 2017-06-12 13:43:58 +09:30
bors 54eeef14a3 Auto merge of #42419 - ucarion:ucarion-explain-rc-arc-abbrev, r=frewsxcv
Explicate what "Rc" and "Arc" stand for.

A person on the weekly "Easy Questions" Reddit thread [was mystified by what `Arc`/`Rc` means](https://www.reddit.com/r/rust/comments/6dyud9/hey_rustaceans_got_an_easy_question_ask_here/did87ds/). Though this is explained in various places, it's not mentioned in the documentation directly.

This PR adds an explanation of the `Rc`/`Arc` acronyms to their respective documentations. There are two things I'm not sure of:

* Does "Rc" mean "Reference Count**er**" or "Reference Count**ed**"? ~~I went with the former.~~ *Edit:* I've changed this to use the latter alternative.
* Should this information be spelled out elsewhere, such as in the docs for the `rc` module?
2017-06-12 04:08:14 +00:00
Nick Cameron 34bd80a782 Fix rebasing error 2017-06-12 14:29:59 +12:00
Nick Cameron d438b8180c Fix a bug where Json API save-analysis was not labelled as such 2017-06-12 14:14:23 +12:00
Nick Cameron cb7fcdd520 Impl and trait item sigs 2017-06-12 14:14:23 +12:00
Nick Cameron 5ebb0e2498 Implement a bunch more signature functions 2017-06-12 14:14:23 +12:00
Nick Cameron 35abf139a2 Small refactoring + docs 2017-06-12 14:14:23 +12:00
Nick Cameron a2a999f035 Use the new signature stuff
And fix a couple of bugs
2017-06-12 14:14:23 +12:00
Nick Cameron 0058fdd110 Update rls-data 2017-06-12 14:14:23 +12:00
Nick Cameron 600237fa19 Add a sig module to save-analysis
Generates signatures for use in Rustdoc and similar tools.
2017-06-12 14:14:23 +12:00
bors 29ef41215c Auto merge of #42585 - GuillaumeGomez:E0609, r=Susurrus
Add E0609

Part of #42229.

cc @Susurrus
2017-06-11 23:51:04 +00:00
Guillaume Gomez 2f37894740 Add E0610 2017-06-12 01:47:01 +02:00
bors e2eaef8497 Auto merge of #42155 - seanmonstar:unimplemented, r=sfackler
core: allow messages in unimplemented!() macro

This makes `unimplemented!()` match `unreachable!()`, allowing a message and possible formatting to be provided to better explain what and/or why something is not implemented.

I've used this myself in hyper for a while, include the type and method name, to better help while prototyping new modules, like `unimplemented!("Conn::poll_complete")`, or `unimplemented!("Conn::poll; state={:?}", state)`.
2017-06-11 18:56:27 +00:00
Guillaume Gomez f4dd365bbb Add E0609 2017-06-11 19:48:53 +02:00
Oliver Middleton 7298dabdb3 rustdoc: Stop stripping empty modules
There is no good reason to strip empty modules with no documentation and
doing so causes subtle problems.
2017-06-11 18:26:01 +01:00
Oliver Middleton 429dc51bfe rustdoc: Link directly to associated types
Rather than just linking to the trait.

Also simplifies the logic used to decide whether to render the full
QPath.
2017-06-11 18:20:48 +01:00
bors 27650ee8ab Auto merge of #40454 - djzin:fast-swap, r=sfackler
speed up mem::swap

I would have thought that the mem::swap code didn't need an intermediate variable precisely because the pointers are guaranteed never to alias. And.. it doesn't! It seems that llvm will also auto-vectorize this case for large structs, but alas it doesn't seem to have all the aliasing info it needs and so will add redundant checks (and even not bother with autovectorizing for small types). Looks like a lot of performance could still be gained here, so this might be a good test case for future optimizer improvements.

Here are the current benchmarks for the simd version of mem::swap; the timings are in cycles (code below) measured with 10 iterations. The timings for sizes > 32 which are not a multiple of 8 tend to be ever so slightly faster in the old code, but not always. For large struct sizes (> 1024) the new code shows a marked improvement.

\* = latest commit
† = subtracted from other measurements

| arr_length	| noop<sup>†</sup>	| rust_stdlib	| simd_u64x4\*	| simd_u64x8
|------------------|------------|-------------------|-------------------|-------------------
8|80|90|90|90
16|72|177|177|177
24|32|76|76|76
32|68|188|112|188
40|32|80|60|80
48|32|84|56|84
56|32|108|72|108
64|32|108|72|76
72|80|350|220|230
80|80|350|220|230
88|80|420|270|270
96|80|420|270|270
104|80|500|320|320
112|80|490|320|320
120|72|528|342|342
128|48|360|234|234
136|72|987|387|387
144|80|1070|420|420
152|64|856|376|376
160|68|804|400|400
168|80|1060|520|520
176|80|1070|520|520
184|32|464|228|228
192|32|504|228|228
200|32|440|248|248
208|72|987|573|573
216|80|1464|220|220
224|48|852|450|450
232|72|1182|666|666
240|32|428|288|288
248|32|428|308|308
256|80|860|770|770
264|80|1130|820|820
272|80|1340|820|820
280|80|1220|870|870
288|72|1227|804|804
296|72|1356|849|849
2017-06-11 16:40:52 +00:00
bors 07a2dd41c5 Auto merge of #42569 - birkenfeld:patch-2, r=frewsxcv
Simplify FromIterator example of Result

The previous version may be clearer for newcomers, but this is how you'd write it idiomaticly.
2017-06-11 14:29:56 +00:00
bors 4bf5c99afc Auto merge of #42580 - tommyip:import-error, r=petrochenkov
Only emit one error for `use foo::self;`

Currently `use foo::self;` would emit both E0429 and E0432. This commit silence the latter one (assuming `foo` is a valid module).

Fixes #42559
2017-06-10 21:35:31 +00:00