Commit Graph

101741 Commits

Author SHA1 Message Date
Mazdak Farrokhzad f221c3d83c Rollup merge of #66106 - JOE1994:master, r=GuillaumeGomez
Fix typo in explanation of `E0080`

Handling issue #66105 in Rust repo.
`evaluate an constant expression` to `evaluate a constant expression`
2019-11-06 03:28:19 +01:00
Mazdak Farrokhzad 32e745fc94 Rollup merge of #66101 - estebank:break-tail-e0308, r=Centril
Tweak type mismatch caused by break on tail expr

When `break;` has a type mismatch because the `Destination` points at a tail
expression with an obligation flowing from a return type, point at the
return type.

Fix #39968.
2019-11-06 03:28:17 +01:00
Mazdak Farrokhzad 409b2bf941 Rollup merge of #66098 - estebank:path-asciption-typo, r=Centril
Detect `::` -> `:` typo when involving turbofish

Fix #65569.
2019-11-06 03:28:15 +01:00
Mazdak Farrokhzad 7d66a09a29 Rollup merge of #66093 - estebank:fmt-ice, r=Centril
Do not ICE with a precision flag in formatting str and no format arguments

Fix #66065.
2019-11-06 03:28:14 +01:00
Mazdak Farrokhzad 76311a8db9 Rollup merge of #66081 - RalfJung:ptr-offset, r=zackmdavis
let caller of check_ptr_access_align control the error message

This is needed for https://github.com/rust-lang/miri/pull/1031
2019-11-06 03:28:12 +01:00
Mazdak Farrokhzad f5c54896b9 Rollup merge of #66068 - euclio:null-emitter, r=estebank
use silent emitter for rustdoc highlighting pass

Partially addresses #63284.
2019-11-06 03:28:11 +01:00
Mazdak Farrokhzad e5da1a12e7 Rollup merge of #66054 - petrochenkov:delspan, r=estebank
syntax: Avoid span arithmetic for delimiter tokens

The +/-1 logic is from the time where the whole group had a single span and the delimiter spans had to be calculated from it.
Now the delimiters have their own spans which are constructed by lexer or proc macro API and can be used directly.
If those spans are not perfect, then it should be fixed by tweaking the corresponding lexer logic rather than by trying to add or substract `1` from the span boundaries.

Fixes https://github.com/rust-lang/rust/issues/62524
r? @estebank
2019-11-06 03:28:09 +01:00
Mazdak Farrokhzad 5c4a595ff0 Rollup merge of #66027 - Mark-Simulacrum:panic-handler-query, r=alexcrichton
Move has_panic_handler to query

Moves us off of a global Once instead re-querying the lang item each time. The conditions on when we set it to true change a little (previously we'd make sure a few more lang items were `Some`) but I think they in practice don't matter, we won't compile later on if we don't have them.
2019-11-06 03:28:08 +01:00
Mazdak Farrokhzad f746d99f68 Rollup merge of #66014 - dkadashev:47319-type-param-def-location, r=estebank
Show type parameter name and definition in type mismatch error messages

Fixes #47319

r? estebank
2019-11-06 03:28:06 +01:00
Mazdak Farrokhzad 5910116b17 Rollup merge of #65892 - pnkfelix:trim-special-derives, r=petrochenkov
Remove `PartialEq` and `Eq` from the `SpecialDerives`.

Now that PR #65519 landed, this is the follow-on work of removing `PartialEq` and `Eq` from the set of `SpecialDerives` .
2019-11-06 03:28:05 +01:00
Esteban Küber b0f258b2c4 Tweak type mismatch caused by break on tail expr
When `break;` has a type mismatch because the `Destination` points at a tail
expression with an obligation flowing from a return type, point at the
return type.

Fix #39968.
2019-11-05 14:50:18 -08:00
bors 1423bec54c Auto merge of #66121 - pietroalbini:rollup-8zrwe7l, r=pietroalbini
Rollup of 8 pull requests

Successful merges:

 - #65948 (Improve MaybeUninit::get_{ref,mut} documentation)
 - #65953 (Allow specifying LLVM's MCTargetOptions::ABIName in target specification files)
 - #66012 (De-querify `trivial_dropck_outlives`.)
 - #66025 (`Span` cannot represent `span.hi < span.lo`)
 - #66047 (Don't double-count `simd_shuffle` promotion candidates)
 - #66053 (when Miri tests are not passing, do not add Miri component)
 - #66082 (clean highlightSourceLines code)
 - #66091 (Implemented the home_dir for VxWorks)

Failed merges:

r? @ghost
2019-11-05 20:22:27 +00:00
Esteban Küber bbd7f5c85b Do not ICE whith a precision flag in formatting str and no format arguments 2019-11-05 11:01:43 -08:00
Esteban Küber a8ccbf5f2f Account for typo in turbofish and suggest :: 2019-11-05 10:29:54 -08:00
Felix S. Klock II 99243616cc Review feedback: alpha-rename field from copy_derives to containers_derving_copy. 2019-11-05 14:59:29 +01:00
Felix S. Klock II 0dfe0ed8e1 Review feedback: Remove more stuff! Simplify simplify simplify! 2019-11-05 14:59:29 +01:00
Felix S. Klock II 7d7fbcb301 Remove PartialEq and Eq from the SpecialDerives. 2019-11-05 14:58:10 +01:00
Pietro Albini 135b784182 Rollup merge of #66091 - Wind-River:master_xyz, r=cramertj
Implemented the home_dir for VxWorks

Use HOME's value if it is set;
otherwise return NONE.
2019-11-05 14:37:08 +01:00
Pietro Albini 63e5ed3fdc Rollup merge of #66082 - GuillaumeGomez:cleanup-highlightsourcelines, r=kinnison
clean highlightSourceLines code

This is the first part of https://github.com/rust-lang/rust/issues/66046. Now that I've splitted the hashchange stuff and the source code lines highlighting, I'll be able to fix the whole issue once and for all.

r? @kinnison
2019-11-05 14:37:07 +01:00
Pietro Albini 50035e8d84 Rollup merge of #66053 - RalfJung:miri-toolstate, r=pietroalbini
when Miri tests are not passing, do not add Miri component

Second attempt, this time based on the JSON files that exist since https://github.com/rust-lang/rust/pull/65274.

Fixes https://github.com/rust-lang/rust/issues/60301
r? @pietroalbini @alexcrichton
2019-11-05 14:37:05 +01:00
Pietro Albini 80404bf088 Rollup merge of #66047 - ecstatic-morse:issue-66016, r=eddyb
Don't double-count `simd_shuffle` promotion candidates

Resolves #66016.

The `#[rustc_args_required_const]` attribute was added to `simd_shuffle*` in rust-lang/stdarch#825. This caused `promote_consts` to double-count its second argument when recording promotion candidates, which caused the promotion candidate compatibility check to fail.

Once `stdarch` is updated in-tree to include rust-lang/stdarch#825, all special logic around `simd_shuffle` can and should be removed.
2019-11-05 14:37:03 +01:00
Pietro Albini 6ad9f56316 Rollup merge of #66025 - petrochenkov:lohi, r=eddyb
`Span` cannot represent `span.hi < span.lo`

So we can remove the corresponding checks from various code
2019-11-05 14:37:01 +01:00
Pietro Albini b5bcb28b72 Rollup merge of #66012 - nnethercote:dequery-trivial_dropck_outlives, r=michaelwoerister
De-querify `trivial_dropck_outlives`.

It's sufficiently simple and fast that memoizing it is a slight
pessimization.

r? @michaelwoerister
2019-11-05 14:36:59 +01:00
Pietro Albini 26449f8db4 Rollup merge of #65953 - keystone-enclave:llvm_abiname, r=alexcrichton
Allow specifying LLVM's MCTargetOptions::ABIName in target specification files

This addresses #65024, as it allows RISC-V target specification files to set `"llvm-abiname": "lp64d"`.

Other languages (read: C) usually expose this codegen parameter under a compiler argument like `-mabi=<XYZ>`.
2019-11-05 14:36:57 +01:00
Pietro Albini 54c57a2f21 Rollup merge of #65948 - danielhenrymantilla:doc/maybe_uninit_ref_mut, r=RalfJung
Improve MaybeUninit::get_{ref,mut} documentation

As mentioned in https://github.com/rust-lang/rust/issues/63568#issuecomment-544106668, `MaybeUninit`'s `get_{ref,mut}` documentation is lacking, so this PR attempts to fix that.

That being said, and as @RalfJung mentions in that thread,

> In particular, we should clarify that all the UB rules for these methods equally apply when calling the raw ptr methods and creating a reference manually.

these other docs also need to be improved, which I can do in this PR ~~(hence the `[WIP]`)~~.

Finally, since all these documentations are related to clearly establishing when dealing with uninitialized memory which patterns are known to be sound and which patterns are currently UB (that is, until, if ever, the rules around references to unintialized integers get relaxed, this documentation will treat them as UB, and advise against such patterns (_e.g._, it is not possible to use uninitialized buffers with the `Read` API)), I think that adding even more examples to the main documentation of `MaybeUninit` inherent definition wouldn't hurt either.

___

  - [Rendered](http://dreamy-ritchie-99d637.netlify.com/core/mem/union.maybeuninit#method.get_ref)
2019-11-05 14:36:55 +01:00
bors 3a1b3b30c6 Auto merge of #66083 - RalfJung:miri-offset-from, r=oli-obk
fix Miri offset_from

This is needed to make https://github.com/rust-lang/miri/pull/1032 pass.
2019-11-05 12:46:29 +00:00
Ralf Jung a593b54199 expand comment explaining integer exception 2019-11-05 10:41:19 +01:00
bors d1fff4a4b2 Auto merge of #66109 - pietroalbini:rollup-2npidna, r=pietroalbini
Rollup of 10 pull requests

Successful merges:

 - #65136 (Update codegen option documentation.)
 - #65574 (docs: improve disclaimer regarding LinkedList)
 - #65720 (Add FFI bindings for LLVM's Module::getInstructionCount())
 - #65905 ([doc] fixes for unix/vxworks `OpenOptionsExt::mode`)
 - #65962 (Fix logic in example.)
 - #66019 (Improved std::iter::Chain documentation)
 - #66038 (doc(str): show example of chars().count() under len())
 - #66042 (Suggest correct code when encountering an incorrect trait bound referencing the current trait)
 - #66073 (Do not needlessly write-lock)
 - #66096 (Add a failing UI test for multiple loops of all kinds in a `const`)

Failed merges:

r? @ghost
2019-11-05 09:31:36 +00:00
Pietro Albini 1ffa93e5f8 Rollup merge of #66096 - ecstatic-morse:const-loop-test, r=Centril
Add a failing UI test for multiple loops of all kinds in a `const`

This simply demonstrates the current behavior and ensures we don't allow anything by accident.

The new const checker will be able to improve the diagnostics here. While working on it, I didn't see very many tests with non-`while` loops in a `const`, and there were no tests with multiple loops.
2019-11-05 09:50:00 +01:00
Pietro Albini dc40c9389a Rollup merge of #66073 - Mark-Simulacrum:no-borrow-mut, r=Centril
Do not needlessly write-lock

Just removes a needless `borrow_mut()` by using `borrow()` instead.
2019-11-05 09:49:59 +01:00
Pietro Albini 1d5cb17ebe Rollup merge of #66042 - ohadravid:suggest-correct-code-when-ref-current-trait, r=estebank
Suggest correct code when encountering an incorrect trait bound referencing the current trait

Fixes #65985 and also improves the suggestion for code like this:

```
trait Grab {
    type Value;
    fn grab(&self) -> Grab::Value;
}
```

To suggest `<Self as Grab>::Value`.

I wasn't sure which of the syntax versions is better (`<Self as ..>::` vs `Self::`), so I used the former simply because it was less change to the existing code.

r? @estebank
2019-11-05 09:49:58 +01:00
Pietro Albini d32a262ab8 Rollup merge of #66038 - jdxcode:char-len, r=alexcrichton
doc(str): show example of chars().count() under len()

the docs are great at explaining that .len() isn't like in other
languages but stops short of explaining how to get the character length.
2019-11-05 09:49:56 +01:00
Pietro Albini c25975d327 Rollup merge of #66019 - olegnn:fixed_std_iter_chain_docs, r=Mark-Simulacrum
Improved std::iter::Chain documentation

Replaces `strings two iterators` by `links two iterators` in `std::iter::Chain` documentation.

I didn't find any meaning of `strings` which can be evaluated as `links` or `joins`.

I don't think that `std::iter:Chain` works as a stringer or plays billiards. (https://www.lexico.com/en/definition/string).
2019-11-05 09:49:55 +01:00
Pietro Albini 370d01aea7 Rollup merge of #65962 - kevincox:patch-1, r=sfackler
Fix logic in example.

The example claims SuperiorThanZero and presumably Zero is not Superior than itself so it should not be allowed.
2019-11-05 09:49:53 +01:00
Pietro Albini 0a284153e9 Rollup merge of #65905 - cuviper:doc-unix-mode, r=Dylan-DPC
[doc] fixes for unix/vxworks `OpenOptionsExt::mode`
2019-11-05 09:49:52 +01:00
Pietro Albini 7976d5720a Rollup merge of #65720 - icefoxen:LLVMgetInstructionCount, r=rkruppe
Add FFI bindings for LLVM's Module::getInstructionCount()

Just to make it usable for profiling and such inside
rustc itself.  It was vaguely useful in
https://wiki.alopex.li/WhereRustcSpendsItsTime and I figured
I might as well upstream it; I may or may not ever get around
to doing more with it (hopefully I will), but it may be useful
for others.
2019-11-05 09:49:50 +01:00
Pietro Albini 5831e0643e Rollup merge of #65574 - tshepang:linked-list-disclaimer, r=Centril
docs: improve disclaimer regarding LinkedList
2019-11-05 09:49:48 +01:00
Pietro Albini a4e91c2986 Rollup merge of #65136 - ehuss:update-codegen-options, r=Dylan-DPC
Update codegen option documentation.

Some documentation updates:

- Add more detail to codegen options.
- Add missing options:
    - `force-frame-pointers`
    - `default-linker-libraries`
    - `linker-plugin-lto`
- Add fragment anchors for all command-line-arguments.
- Add some cross links between options.
2019-11-05 09:49:47 +01:00
bors 2e4da3caad Auto merge of #65938 - eddyb:fn-abi-rename, r=oli-obk
rustc_target: rename {Fn,Arg}Type to {Fn,Arg}Abi.

I was trying to tweak the API of `FnType` (now `FnAbi`) and the name kept bothering me.

`FnAbi` is to a function signature a bit like a layout is to a type, so the name still isn't perfect yet, but at least it doesn't have the misleading `Type` in it anymore.

If this can't land I think I can continue my original refactor without it, so I'm not strongly attached to it.

r? @nagisa cc @oli-obk
2019-11-05 05:47:31 +00:00
Youngsuk Kim f28126ee1b Fix typo in explanation of E0080
Handling issue #66105 in Rust repo.
`evaluate an constant expression` to `evaluate a constant expression`
2019-11-05 00:35:18 -05:00
bors d2185f6752 Auto merge of #65911 - mati865:static-libstdcxx-mingw, r=alexcrichton
Statically link libstdc++ on windows-gnu

Fixes https://github.com/rust-lang/rust/issues/61561 by not shipping `libstdc++-6.dll` which can conflict with the GCC.
2019-11-05 00:30:58 +00:00
Esteban Küber 3bbfc7320b Detect :: -> : typo when involving turbofish 2019-11-04 16:19:55 -08:00
Dylan MacKenzie c8ae2819c5 Add tests for loop constructs in consts
These errors are suboptimal, but they will be fixed by the new
`check_consts` pass.
2019-11-04 14:19:51 -08:00
bors 881ebeb776 Auto merge of #65874 - Nadrieril:clarify-usefulness, r=varkor
Clarify pattern-matching usefulness algorithm

This PR clarifies a bit the usefulness algorithm by emphasizing that each row of the matrix can be seen as a sort of stack from which we pop constructors. It also moves code around to increase separation of concerns.

This is part of my splitting of https://github.com/rust-lang/rust/pull/65160 into smaller PRs.
2019-11-04 21:06:50 +00:00
Daniel Henry-Mantilla 67f2200f4a Minor style improvements
Co-Authored-By: Ralf Jung <post@ralfj.de>
2019-11-04 19:47:31 +01:00
Umesh Kalappa 5083adeaad Implemented the home_dir for VxWorks 2019-11-04 09:15:28 -08:00
Ralf Jung 21d284b6f0 also test different integers 2019-11-04 13:32:38 +01:00
Ralf Jung 3c944feb65 test offset_from with two integers 2019-11-04 13:32:38 +01:00
Ralf Jung 047e702c66 Miri: ptr_offset_from: support offset_from with twice the same non-null integer 2019-11-04 13:32:38 +01:00
Ralf Jung da0c7c664b Miri: offset_from: do int-to-ptr casts when needed 2019-11-04 13:32:38 +01:00