Commit Graph

79180 Commits

Author SHA1 Message Date
Havvy
e9e0ca0382 Slightly better summary for E0538 2018-06-11 17:21:15 -07:00
Havvy
45748256ef Long diagnostic for E0538 2018-06-11 15:49:54 -07:00
Havvy
cf3fcab973 More E0541 long diagnostic wording tweaks 2018-06-11 03:51:04 -07:00
Havvy
0c91bd200e Make tidy happy 2018-06-11 03:04:08 -07:00
Havvy
2d7b046d71 Fix typos in previous commit 2018-06-11 02:44:55 -07:00
Havvy
f7df1f38dd Long diagnostic for E0541 2018-06-11 01:52:12 -07:00
bors
a32e979ba5 Auto merge of #51423 - RalfJung:from_raw_parts, r=sfackler
Improve docs for slice::from_raw_parts

Explain why the pointer must be non-null and aligned.

Cc @hsivonen
2018-06-11 03:48:23 +00:00
bors
7dc61f3022 Auto merge of #51461 - estebank:e0423-doc, r=petrochenkov
Update E0423 description

E0423 doesn't apply only to structs, update the error index description
to make this clear.

Fix #42077.
2018-06-11 00:32:22 +00:00
bors
b202bebdee Auto merge of #51475 - GuillaumeGomez:fix-error-codes, r=Manishearth
Fix error codes
2018-06-10 22:30:14 +00:00
bors
a805a2a5eb Auto merge of #50205 - topecongiro:include-parens-to-type-parameter, r=petrochenkov
Include parens to type parameter

The motivation of this PR is to fix a bug in rustfmt (cc https://github.com/rust-lang-nursery/rustfmt/issues/2630).
2018-06-10 20:09:22 +00:00
bors
cabb679bf1 Auto merge of #51474 - llogiq:from-docs, r=TimNN
add some docs to `From` conversions

This adds a helpful document to the bool → int* conversions as well as to the lossless integer conversions.

One of #51430 down, some more to go.
2018-06-10 18:00:12 +00:00
bors
c5a129e809 Auto merge of #51200 - tmccombs:stable-iter-repeat-with, r=Centril,kennytm
Stabilize iterator_repeat_with

Fixes #48169
2018-06-10 15:48:14 +00:00
bors
900037e3c3 Auto merge of #51079 - GuillaumeGomez:stabilize-entry-or-default, r=SimonSapin
Stabilize entry-or-default

Fixes #44324.

cc @SimonSapin
2018-06-10 12:46:14 +00:00
Guillaume Gomez
f2349d5ec6 Fix error codes 2018-06-10 14:04:48 +02:00
Andre Bogus
553a44a5cc add some docs to conversions 2018-06-10 13:16:34 +02:00
Guillaume Gomez
861c7cb9fd Stabilize entry-or-default 2018-06-10 12:59:12 +02:00
bors
684b8d3d7b Auto merge of #51196 - Havvy:remove-keywords, r=petrochenkov
Implement RFC 2421, 'Keyword unreservations (pure, sizeof, alignof, offsetof)

On my local machine I was getting failures in `test/ui-fulldeps`, but I was also getting them again after reverting the change, so I'm hoping that this works.

I removed the test because that's what the other PR that unreserved a keyword did and I feel that it doesn't make sense/keep value to keep a test for something removed years ago.
2018-06-10 08:26:10 +00:00
bors
b4d836c98b Auto merge of #51320 - tmccombs:step-by, r=SimonSapin
Stabilize Iterator::step_by

Fixes #27741
2018-06-10 01:45:42 +00:00
Seiichi Uchida
dc87d0d1fb Update tests 2018-06-10 10:37:38 +09:00
Seiichi Uchida
699be41809 Simplify an error handling in the parser 2018-06-10 10:37:38 +09:00
Seiichi Uchida
78a19d9b88 Include parens to type parameter 2018-06-10 10:37:38 +09:00
bors
ae0659c97d Auto merge of #51265 - Mark-Simulacrum:cleanup-syntax-parse, r=petrochenkov
crate-ify and delete unused code from syntax::parse

This is intended primarily to ensure the compiler catches dead code for us in
more cases.
2018-06-09 23:32:01 +00:00
Mark Simulacrum
60058e5dbe Crate-ify and delete unused code in syntax::parse 2018-06-09 16:57:19 -06:00
Esteban Küber
a6782d9e4e Update E0423 description
E0423 doesn't apply only to structs, update the error index description
to make this clear.
2018-06-09 14:27:42 -07:00
bors
2a0062974a Auto merge of #51459 - kennytm:dist-at-stage-0, r=Mark-Simulacrum
Miscellaneous changes to rustbuild and CI.

1. Don't build LLVM when running rust-installer.
2. If toolstate is unchanged, don't push a commit to the toolstate repo.
3. Allow `./x.py build src/librustc_codegen_llvm`
4. Added log to track #50887.
2018-06-09 21:22:36 +00:00
Havvy
679a5219e7 Test keyword unreservations 2018-06-09 14:15:57 -07:00
Havvy
ebc315bbbb Implement RFC 2421, 'Keyword unreservations (pure, sizeof, alignof, offsetof)' 2018-06-09 14:15:57 -07:00
kennytm
ab5e3e66b5
Added comment to explain why only RustIstaller has llvm_tools = false. 2018-06-10 04:50:42 +08:00
kennytm
4a0e92eee5
Log the clang_rt.asan-dynamic-i386.vers on failure to track #50887 2018-06-10 04:31:50 +08:00
kennytm
b00ea6c2da
Allowing building the codegen backend specifically.
Use `./x.py build src/librustc_codegen_llvm` to build the codegen backend.
2018-06-10 04:31:49 +08:00
kennytm
d2b5b7603b
Do not push a commit if the toolstate is unchanged.
This should greatly reduce the commits on the rust-toolstate repository.

`publish_toolstate.py` defaults to keep the old status if a new one is not
found, so nothing needs to be changed to that file.
2018-06-10 04:31:49 +08:00
kennytm
14d50bfecb
Allow some tools to be run without first building LLVM.
Conservatively only disable LLVM for rust-installer. This should shave
5 minutes from the x86_64-gnu-distcheck job by not building LLVM twice.
2018-06-10 04:31:49 +08:00
bors
61d88318aa Auto merge of #51068 - Crazycolorz5:pluseqsplitting, r=petrochenkov
parser: Split `+=` into `+` and `=` where `+` is explicitly requested (such as generics)

Added functions in tokens to check whether a token leads with `+`. Used them when parsing to allow for token splitting of `+=` into `+` and `=`.
Fixes https://github.com/rust-lang/rust/issues/47856
2018-06-09 17:46:36 +00:00
bors
0b491a17b9 Auto merge of #51441 - bstrie:sizeof128, r=dtolnay
Document size_of for 128-bit integers

We might want to consider separately documenting the alignment of
primitives, rather than just their size, since 128-bit integers, unlike
all other primitives, have an alignment that is not identical to their
size (size_of is 16, align_of is 8)
2018-06-09 15:41:44 +00:00
bors
a561ea7083 Auto merge of #51439 - Voultapher:feature/fix-contributing-spelling-error, r=kennytm
Fix spelling error in CONTRIBUTING.md

Thought I'd start with something small.
2018-06-09 12:35:21 +00:00
bors
0fb32a9f62 Auto merge of #51400 - xfix:patch-6, r=kennytm
Increase number of usages of `u8` in weird expressions u8 test
2018-06-09 10:22:59 +00:00
Ralf Jung
426f06f8fe Be more precise about why references need to be non-null and aligned 2018-06-09 10:40:51 +02:00
bors
40f20b5327 Auto merge of #51359 - cramertj:fdio_spawn, r=sfackler
[fuchsia] Migrate from launchpad to fdio_spawn_etc

fdio_spawn_etc is the preferred way of creating processes on Fuchsia
now.

cc @abarth
2018-06-09 03:41:31 +00: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
8c5002d1e0
Rollup merge of #51437 - est31:rustbuild_metadata, r=Mark-Simulacrum
rustbuild: generate full list of dependencies for metadata

Previously, we didn't send --features to our cargo metadata invocations,
and thus missed some dependencies that we enable through the --features
mechanism.
2018-06-08 17:21:10 -06:00
Mark Rousskov
efb30d7695
Rollup merge of #51436 - Mark-Simulacrum:doc-stage1, r=QuietMisdreavus
Do not require stage 2 compiler for rustdoc

r? @QuietMisdreavus

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

I *think* this is correct; though I'm not certain. If it passes CI though I expect that to be good enough...
2018-06-08 17:21:09 -06:00
Mark Rousskov
4a2c1c294f
Rollup merge of #51427 - FelixMcFelix:nll-stderr-remover, r=oli-obk
compiletest: autoremove duplicate .nll.* files (#51204)

UI tests in bless mode should now check to see if `.nll.*` files have a
matching `.*` file. If a match is found, it will be deleted.
This should be extensible to other modes (i.e., Polonius).
On running with `--bless`, the two files removed in #51186 are, in turn,
removed automatically.

fixes #51204
2018-06-08 17:21:08 -06:00
Mark Rousskov
8ac351c209
Rollup merge of #51412 - nnethercote:pending_obligations, r=estebank
Avoid useless Vec clones in pending_obligations().

The only instance of `ObligationForest` in use has an obligation type of
`PendingPredicateObligation`, which contains a `PredicateObligation` and a
`Vec<Ty>`.

`FulfillmentContext::pending_obligations()` calls
`ObligationForest::pending_obligations()`, which clones all the
`PendingPredicateObligation`s. But the `Vec<Ty>` field of those cloned
obligations is never touched.

This patch changes `ObligationForest::pending_obligations()` to
`map_pending_obligations` -- which gives callers control about which part
of the obligation to clone -- and takes advantage of the change to avoid
cloning the `Vec<Ty>`. The change speeds up runs of a few rustc-perf
benchmarks, the best by 1%.
2018-06-08 17:21:07 -06: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
b1a6db2833
Rollup merge of #51396 - SimonSapin:option-nonzero-layout, r=SimonSapin
Make the size of Option<NonZero*> a documented guarantee.

Closes #49137, the tracking issue for `NonZero*`, as this was the last remaining open question.

Note that `ptr::NonNull<T>` already documents a similar guarantee.
2018-06-08 17:21:04 -06:00
Mark Rousskov
6abaf4e703
Rollup merge of #51394 - nnethercote:NCA-depths, r=nikomatsakis
Use scope tree depths to speed up `nearest_common_ancestor`.

This patch adds depth markings to all entries in the `ScopeTree`'s
`parent_map`. This change increases memory usage somewhat, but permits a
much faster algorithm to be used:

- If one scope has a greater depth than the other, the deeper scope is
  moved upward until they are at equal depths.

- Then we move the two scopes upward in lockstep until they match.

This avoids the need to keep track of which scopes have already been
seen, which was the major part of the cost of the old algorithm. It also
reduces the number of child-to-parent moves (which are hash table
lookups) when the scopes start at different levels, because it never
goes past the nearest common ancestor the way the old algorithm did.

Finally, the case where one of the scopes is the root is now handled in
advance, because that is moderately common and lets us skip everything.

This change speeds up runs of several rust-perf benchmarks, the best by
6%.

A selection of the bigger improvements:
```
clap-rs-check
        avg: -2.6%      min: -6.6%      max: 0.0%
syn-check
        avg: -2.2%      min: -5.0%      max: 0.0%
style-servo-check
        avg: -2.9%?     min: -4.8%?     max: 0.0%?
cargo-check
        avg: -1.3%      min: -2.8%      max: 0.0%
sentry-cli-check
        avg: -1.0%      min: -2.1%      max: 0.0%
webrender-check
        avg: -0.9%      min: -2.0%      max: 0.0%
style-servo
        avg: -0.9%?     min: -1.8%?     max: -0.0%?
ripgrep-check
        avg: -0.7%      min: -1.8%      max: 0.1%
clap-rs
        avg: -0.9%      min: -1.6%      max: -0.2%
regex-check
        avg: -0.2%      min: -1.3%      max: 0.1%
syn
        avg: -0.6%      min: -1.3%      max: 0.1%
hyper-check
        avg: -0.5%      min: -1.1%      max: 0.0%
```
The idea came from multiple commenters on my blog and on Reddit. Thank you!

r? @nikomatsakis
2018-06-08 17:21:03 -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