Commit Graph

77955 Commits

Author SHA1 Message Date
kennytm
4924fea202
Rollup merge of #50511 - Manishearth:must-use, r=QuietMisdreavus
Add some explanations for #[must_use]

`#[must_use]` can be given a string argument which is shown whilst warning for things.

We should add a string argument to most of the user-exposed ones.

I added these for everything but the operators, mostly because I'm not sure what to write there or if we need anything there.
2018-05-09 20:29:46 +08:00
kennytm
4c3ab33f3a
Rollup merge of #50505 - Aaronepower:add-test, r=oli-obk
Added regression function match value test

closes #44333
2018-05-09 20:29:45 +08:00
kennytm
e6e58a3a43
Rollup merge of #50464 - est31:master, r=rkruppe
Remove some transmutes
2018-05-09 20:29:44 +08:00
kennytm
1f4718a5c1
Rollup merge of #50460 - F001:const_string, r=kennytm
Make `String::new()` const

Following the steps of https://github.com/rust-lang/rust/pull/50233 , make `String::new()` a `const fn`.
2018-05-09 20:29:42 +08:00
Nicholas Nethercote
78262e700d Use SmallVec for DepNodeIndex within dep_graph.
This avoids a decent number of allocations, enough to speed up
incremental runs of many rustc-benchmarks, the best by 2%.
2018-05-09 20:36:17 +10:00
Nicholas Nethercote
77c40f8c6f Inline Span methods.
Because they are simple and hot.

This change speeds up some incremental runs of a few rustc-perf
benchmarks, the best by 3%.
2018-05-09 20:14:03 +10:00
Aaron Power
111786d30e
Update RELEASES.md 2018-05-09 11:06:20 +01:00
kennytm
dea03f1239
Rollup merge of #50148 - japaric:const-manuallydrop, r=oli-obk
turn `ManuallyDrop::new` into a constant function
2018-05-09 17:25:25 +08:00
kennytm
bb690c600c
Rollup merge of #49988 - clarcharr:never_docs, r=steveklabnik
Mention Result<!, E> in never docs.

Fixes #48096.
2018-05-09 17:25:04 +08:00
kennytm
8e7f6dbdd7
Rollup merge of #50539 - clarcharr:log_const, r=dtolnay
Add more logarithm constants

Right now, we have `ln(2)` and `ln(10)`, but only `log2(e)` and `log10(e)`. This also adds `log2(10)` and `log10(2)` for consistency.
2018-05-09 17:24:44 +08:00
kennytm
0fa08507ef
Rollup merge of #50525 - nnethercote:lit_token, r=michaelwoerister
Optimize string handling in lit_token().

In the common case, the string value in a string literal Token is the
same as the string value in a string literal LitKind. (The exception is
when escapes or \r are involved.) This patch takes advantage of that to
avoid calling str_lit() and re-interning the string in that case. This
speeds up incremental builds for a few of the rustc-benchmarks, the best
by 3%.

Benchmarks that got a speedup of 1% or more:
```
coercions
        avg: -1.1%      min: -3.5%      max: 0.4%
regex-check
        avg: -1.2%      min: -1.5%      max: -0.6%
futures-check
        avg: -0.9%      min: -1.4%      max: -0.3%
futures
        avg: -0.8%      min: -1.3%      max: -0.3%
futures-opt
        avg: -0.7%      min: -1.2%      max: -0.1%
regex
        avg: -0.5%      min: -1.2%      max: -0.1%
regex-opt
        avg: -0.5%      min: -1.1%      max: -0.1%
hyper-check
        avg: -0.7%      min: -1.0%      max: -0.3%
```
2018-05-09 17:23:31 +08:00
kennytm
e6a309e352
Rollup merge of #50456 - alexcrichton:update-cargo, r=alexcrichton
Update the Cargo submodule

Hopefully brining in a few fixes to Cargo regressions!
2018-05-09 17:20:55 +08:00
Michael Woerister
31d2012ef7 Adapt some method visibilities in librustc_metadata::cstore. 2018-05-09 10:33:45 +02:00
Eric Huss
5128affbc4 Fix update-references for tests within subdirectories.
Fixes #50438.

I'll make this more robust later for #49815.
2018-05-08 20:27:34 -07:00
Collins Abitekaniza
2f8c2a93bf ignore test-args if user specifies suite_path 2018-05-09 03:24:03 +03:00
Andre Bogus
e333725664 use fmt::Result where applicable 2018-05-09 02:01:37 +02:00
Nicholas Nethercote
65ea0ff29d Optimize string handling in lit_token().
In the common case, the string value in a string literal Token is the
same as the string value in a string literal LitKind. (The exception is
when escapes or \r are involved.) This patch takes advantage of that to
avoid calling str_lit() and re-interning the string in that case. This
speeds up incremental builds for a few of the rustc-benchmarks, the best
by 3%.
2018-05-09 09:17:03 +10:00
Bastien Orivel
da02fad2d1 Update assert_cli
This removes skeptic from the dependency tree which in turn removes
quite a few other dependencies
2018-05-08 21:46:55 +02:00
Bastien Orivel
bcdb67bf43 Update derive-new
This removes the last dependency on syn 0.12
2018-05-08 20:55:43 +02:00
Clar Charr
23b6e465b9 Add more logarithm constants 2018-05-08 13:40:17 -04:00
C Jones
e83c18f91d Make an ensure_root_is_owned method to reduce duplication
Also remove some unnecessary debug_assert! when creating the shared
root, since the root should be stored in the rodata and thus be
impossible to accidentally modify.
2018-05-08 13:28:49 -04:00
bors
8ff4b42064 Auto merge of #50530 - oli-obk:miri, r=kennytm
Fix thinning pointers to extern types in miri

r? @kennytm as an alternative to disabling the miri build

fixes #50495
2018-05-08 17:20:01 +00:00
Alex Crichton
576aab9dfe Update the Cargo/stdsimd submodules
Hopefully brining in a few fixes to Cargo regressions as well as some new
stdsimd functions!
2018-05-08 08:20:47 -07:00
bors
c166b03868 Auto merge of #50497 - RalfJung:pinmut, r=withoutboats
Rename Pin to PinMut, and some more breaking changes

As discussed at [1] §3 and [2] and [3], a formal look at pinning requires considering a distinguished "shared pinned" mode/typestate.  Given that, it seems desirable to at least eventually actually expose that typestate as a reference type.  This renames Pin to PinMut, freeing the name Pin in case we want to use it for a shared pinned reference later on.

[1] https://www.ralfj.de/blog/2018/04/10/safe-intrusive-collections-with-pinning.html
[2] https://github.com/rust-lang/rfcs/pull/2349#issuecomment-379250361
[3] https://github.com/rust-lang/rust/issues/49150#issuecomment-380488275

Cc @withoutboats
2018-05-08 14:45:16 +00:00
John Kåre Alsaker
c9d9c249ec Insert fields from TypeAndMut into TyRef to allow layout optimization 2018-05-08 16:21:58 +02:00
John Kåre Alsaker
710b4ad2a5 Store the GeneratorInterior in the new GeneratorSubsts 2018-05-08 16:21:58 +02:00
John Kåre Alsaker
0edc8f4270 Store generator movability outside GeneratorInterior 2018-05-08 16:21:58 +02:00
Wesley Wiser
868d2a18c1
Fix comment 2018-05-08 09:13:18 -04:00
Michael Woerister
ea4942835d Don't use Lock for heavily accessed CrateMetadata::cnum_map. 2018-05-08 14:32:31 +02:00
bors
b183bd0ad4 Auto merge of #50490 - nrc:method-docs, r=eddyb
save-analysis: emit correct docs for methods

cc https://github.com/rust-lang-nursery/rls/issues/446

r? @eddyb
2018-05-08 12:25:01 +00:00
Oliver Schneider
5258871825
Fix thinning pointers to extern types in miri 2018-05-08 13:52:20 +02:00
bors
697a989ec0 Auto merge of #50503 - alexheretic:master, r=oli-obk
Update rls with compiling clippy

Updates rls to use a working clippy version. This pr can be closed if the latest clippy release is broken again.
2018-05-08 10:15:48 +00:00
Mike Hommey
663c0961b9 Cleanup a use in a raw_vec test
`allocator` is deprecated in favor of `alloc`, and `Alloc` is already imported
through `super::*`.
2018-05-08 17:07:24 +09:00
bors
295d98069f Auto merge of #50390 - hdhoang:46205_deny_by_default, r=nikomatsakis
lint: deny incoherent_fundamental_impls by default

Warn the ecosystem of the pending intent-to-disallow in #49799.

There are 4 ICEs on my machine, look unrelated (having happened before in https://github.com/rust-lang/rust/issues/49146#issuecomment-384473523)

```rust
thread 'main' panicked at 'assertion failed: position <= slice.len()', libserialize/leb128.rs:97:1
```

```
    [run-pass] run-pass/allocator/xcrate-use2.rs
    [run-pass] run-pass/issue-12133-3.rs
    [run-pass] run-pass/issue-32518.rs
    [run-pass] run-pass/trait-default-method-xc-2.rs
```

r? @nikomatsakis
2018-05-08 04:56:01 +00:00
Wesley Wiser
000d3c97ee Make DepGraph::previous_work_products immutable
Fixes #50501
2018-05-07 23:17:16 -04:00
C Jones
f3a3599e09 Add debug asserts and fix some violations 2018-05-07 22:14:34 -04:00
C Jones
ddacf037fd Make into_key_slice avoid taking out-of-bounds pointers 2018-05-07 22:14:34 -04:00
C Jones
5b94e9f053 Split into_slices() to avoid making extra slices
This splits into_slices() into into_key_slice() and into_val_slice(). While the
extra calls would get optimized out, this is a useful semantic change since we
call keys() while iterating, and we don't want to construct and out-of-bounds
val() pointer in the process if we happen to be pointing to the shared static
root.

This also paves the way for doing the alignment handling conditional differently
for the keys and values.
2018-05-07 22:14:34 -04:00
C Jones
fa62eba92a Don't drop the shared static node
We modify the drop implementation in IntoIter to not drop the shared root
2018-05-07 22:14:34 -04:00
C Jones
ef6060c863 Add a statically allocated empty node for empty maps
This gives a pointer to that static empty node instead of allocating
a new node, and then whenever inserting makes sure that the root
isn't that empty node.
2018-05-07 22:14:20 -04:00
C Jones
669bd8223b Make LeafNode #[repr(C)] and put the metadata before generic items
This way we can safely statically allocate a LeafNode to use as the
placeholder before allocating, and any type accessing it will be able to
access the metadata at the same offset.
2018-05-07 21:57:45 -04:00
bors
0da1a69003 Auto merge of #50260 - Manishearth:no-extern-crate, r=nikomatsakis
idiom lints for removing `extern crate`

Based off of https://github.com/rust-lang/rust/pull/49789

This contains two lints:

 - One that suggests replacing pub extern crates with pub use, and removing non-pub extern crates entirely
 - One that suggests rewriting `use modulename::...::cratename::foo` as `cratename::foo`

The latter is a bit tricky to emit suggestions for; for one this involves splicing spans (never a good idea), and it also won't be able to correctly
handle `use module::{cratename, foo}` and use-trees. I'm not sure how to proceed here. Currently it doesn't suggest anything at all.

Perhaps we can go the other way and suggest removal of all extern crates _except_ those used through modules (stash node ids somewhere) and suggest replacing those with `<visibility> use`?

r? @nikomatsakis

fixes https://github.com/rust-lang/rust/issues/48719
2018-05-08 01:37:52 +00:00
bors
715d6a98aa Auto merge of #50305 - GuillaumeGomez:fix-mod-stackoverflow, r=QuietMisdreavus
Prevent infinite recursion of modules

Fixes #50196.

r? @QuietMisdreavus
2018-05-07 23:18:12 +00:00
Manish Goregaokar
a72a0801bd Add explanation for #[must_use] on string replace methods 2018-05-07 10:26:29 -07:00
Manish Goregaokar
f8b774fbf1 Add explanation for #[must_use] on mutex guards 2018-05-07 10:26:28 -07:00
Manish Goregaokar
6e49c837f6 Add explanation for #[must_use] on Debug builders 2018-05-07 10:26:28 -07:00
Manish Goregaokar
1abed9cebf Add explanation for #[must_use] on Result 2018-05-07 10:26:28 -07:00
John Kåre Alsaker
f741ee104b Make SelectionCache and EvaluationCache thread-safe 2018-05-07 17:13:09 +02:00
Aaron Power
31a8ffec71 Added regression function match value test, closes #44333 2018-05-07 16:12:13 +01:00
Alex Butler
640e937ec3
Update clippy 0.0.197 2018-05-07 16:03:42 +01:00