Commit Graph

103018 Commits

Author SHA1 Message Date
Joshua Nelson
37f440fd9a Add wildcard test for const_if_match
Closes https://github.com/rust-lang/rust/issues/66758
2019-11-25 19:44:35 -05:00
Parth Mehrotra
395408ec18
Update documentation-tests.md 2019-11-25 19:34:32 -05:00
bors
483a83b6e6 Auto merge of #66178 - Aaron1011:fix/opaque-normalize, r=varkor
Fix opaque types resulting from projections in function signature

When we normalize the types in a function signature, we may end up
resolving a projection to an opaque type (e.g. `Self::MyType` when
we have `type MyType = impl SomeTrait`). When the projection is
resolved, we will instantiate the generic parameters into fresh
inference variables.

While we do want to normalize projections to opaque types, we don't want
to replace the explicit generic parameters (e.g. `T` in `impl
MyTrait<T>`) with inference variables. We want the opaque type in the
function signature to be eligible to be a defining use of that opaque
type - adding inference variables prevents this, since the opaque type
substs now appears to refer to some specific type, rather than a generic
type.

To resolve this issue, we inspect the opaque types in the function
signature after normalization. Any inference variables in the substs are
replaced with the corresponding generic parameter in the identity substs
(e.g. `T` in `impl MyTrait<T>`). Note that normalization is the only way
that we can end up with inference variables in opaque substs in a
function signature - users have no way of getting inference variables
into a function signature.

Note that all of this refers to the opaque type (ty::Opaque) and its
subst - *not* to the underlying type.

Fixes #59342
2019-11-25 22:45:50 +00:00
Ralf Jung
d0b983307b review feedback: comments and spacing 2019-11-25 22:45:00 +01:00
Ralf Jung
6797d52ee0 make sure we handle all transmute invocations, including diverging ones 2019-11-25 22:37:31 +01:00
Esteban Küber
5ea922aec4 Various cleanups 2019-11-25 13:30:52 -08:00
Esteban Küber
85fb054fef Tweak removed feature error 2019-11-25 13:30:52 -08:00
Esteban Küber
5ef47160e8 Tweak bad continue error 2019-11-25 13:30:52 -08:00
Esteban Küber
3893d16341 Tweak duplicate matcher binding error 2019-11-25 13:30:52 -08:00
Esteban Küber
1eeed17c9e Tweak duplicate fmt arg error 2019-11-25 13:30:52 -08:00
Esteban Küber
9c97d73a2d Tweak move error due to non-Copy 2019-11-25 13:30:52 -08:00
Esteban Küber
9a595417a2 Tweak multiple allocators error 2019-11-25 13:30:48 -08:00
Ralf Jung
b91bf7a334 miri: couple ret place and ret block together (they both exist or both don't) 2019-11-25 22:00:58 +01:00
yuyoyuppe
e846ea1112
Use LLVMDisposePassManager instead of raw delete in rustllvm 2019-11-25 23:52:10 +03:00
Esteban Küber
00fe97ad0e Fix capitalization when mentioning different crate versions in E0308 2019-11-25 12:38:45 -08:00
bors
a44774c3a9 Auto merge of #66739 - pietroalbini:rollup-2t2pd4a, r=pietroalbini
Rollup of 7 pull requests

Successful merges:

 - #65613 (Preserve whitespace inside one-backtick codeblocks)
 - #66512 (Add unix::process::CommandExt::arg0)
 - #66569 (GitHub Actions: preparations, part 1)
 - #66678 (Remove useless line for error index generation)
 - #66684 (Drive-by cleanup in region naming)
 - #66694 (Add some comments to panic runtime)
 - #66698 (tidy: Remove unused import)

Failed merges:

r? @ghost
2019-11-25 19:37:54 +00:00
bors
91642e3ac0 Auto merge of #66748 - ehuss:update-cargo-books, r=alexcrichton
Update cargo, rls, books.

## nomicon

1 commits in 58e36e0e08dec5a379ac568827c058e25990d6cd..041c46e692a2592853aeca132c8dfe8eb5a79a9e
2019-10-30 08:14:24 -0500 to 2019-11-20 16:46:45 +0100
- Update unsafe-code-guidelines link (rust-lang-nursery/nomicon#175)

## cargo

15 commits in 8280633db680dec5bfe1de25156d1a1d53e6d190..750cb1482e4d0e74822cded7ab8b3c677ed8b041
2019-11-11 23:17:05 +0000 to 2019-11-23 23:06:36 +0000
- Some random comments and docstrings. (rust-lang/cargo#7625)
- Add value OUT_DIR to build-script-executed JSON message (rust-lang/cargo#7622)
- Update documentation for custom target dependencies. (rust-lang/cargo#7623)
- Document private items for binary crates by default (rust-lang/cargo#7593)
- Extend documentation on security concerns of crate names in a registry. (rust-lang/cargo#7616)
- Stabilize install-upgrade. (rust-lang/cargo#7560)
- Turn the new lock file format on by default (rust-lang/cargo#7579)
- bump im-rc version (rust-lang/cargo#7609)
- Ignore file lock errors if unsupported, on Windows (rust-lang/cargo#7602)
- Add hack for fwdansi change. (rust-lang/cargo#7607)
- Document Cargo's JSON output. (rust-lang/cargo#7595)
- Remove "cargo login" from user input when asking for login token. (rust-lang/cargo#7588)
- Fix all Clippy suggestions (but not add it to CI 🙃) (rust-lang/cargo#7574)
- Add kind/platform info to `cargo metadata` (rust-lang/cargo#7132)
- Update core-foundation requirement from 0.6.0 to 0.7.0 (rust-lang/cargo#7585)

## reference

2 commits in 45558c464fb458affbcdcb34323946da45c8a117..9e843aeb4df083522c7277179bbaa25d0507731c
2019-11-08 14:47:35 +0100 to 2019-11-24 17:44:04 +0100
- Minor never type additions. (rust-lang-nursery/reference#723)
- Update associated-items.md.  "it"-&gt;is (rust-lang-nursery/reference#721)

## book

3 commits in e79dd62aa63396714278d484d91d48826737f47f..81ebaa2a3f88d4d106516c489682e64cacba4f60
2019-10-30 07:33:12 -0500 to 2019-11-15 08:30:04 -0800
- small fix ch04-03 & code block typo ch07-02 (rust-lang/book#2138)
- Adapt content of Chapter 16.3 in order to be consistent with improved compiler message (rust-lang/book#1779)
- [Rust 1.35] Remove FnBox and use builtin impl FnOnce for Box&lt;FnOnce()&gt; instead. (rust-lang/book#1906)

## rls

3 commits in 5db91c7b94ca81eead6b25bcf6196b869a44ece0..9ec2b8cb57c87517bcb506ac302eae339ffa2025
2019-10-30 16:04:39 +0100 to 2019-11-24 23:16:11 +0100
- Fix test for latest nightly. (rust-lang-nursery/rls#1595)
- doc: contributing: Remove outdated LSP extension (rust-lang-nursery/rls#1594)
- Update cargo. (rust-lang-nursery/rls#1591)

## rust-by-example

1 commits in dcee312c66267eb5a2f6f1561354003950e29105..4835e025826729827a94fdeb7cb85fed288d08bb
2019-10-31 11:26:53 -0300 to 2019-11-14 09:20:43 -0300
- crates: fix suggested value for --crate-type flag (rust-lang/rust-by-example#1292)

## edition-guide

1 commits in f553fb26c60c4623ea88a1cfe731eafe0643ce34..6601cab4666596494a569f94aa63b7b3230e9769
2019-10-30 08:27:42 -0500 to 2019-11-22 12:08:58 -0500
- Remove final nursery reference
2019-11-25 16:23:08 +00:00
Eric Huss
2b98532250 Update cargo, rls, books. 2019-11-25 08:14:07 -08:00
Ralf Jung
419d3fcf54 move ABI check out to cover all calls 2019-11-25 16:25:45 +01:00
Ralf Jung
5900b32cee unify call_intrinsic handling of intruction pointer with other machine hooks 2019-11-25 16:25:45 +01:00
Ralf Jung
7bfed2e32a refactor goto_block and also add unwind_to_block 2019-11-25 16:25:45 +01:00
Christian Duerr
73b467da89
Fix shrink_to panic documentation
While the potential for panicking is already documented for the
`Vec::shrink_to` method, it is not clearly labeled with the usual
`# Panics` heading.
2019-11-25 15:49:40 +01:00
Guillaume Gomez
1bd28b1087 Clean up E0070 long explanation 2019-11-25 15:39:07 +01:00
Guillaume Gomez
ef35980ffb Clean up E0069 long explanation 2019-11-25 15:39:07 +01:00
Guillaume Gomez
98e2917626 Clean up E0067 long explanation 2019-11-25 15:39:07 +01:00
Pietro Albini
43d7732449
Rollup merge of #66698 - petrochenkov:tidywarn, r=Mark-Simulacrum
tidy: Remove unused import

It produces annoying warnings on `x.py` runs.
2019-11-25 15:05:28 +01:00
Pietro Albini
30599d765b
Rollup merge of #66694 - RalfJung:panic-comments, r=Dylan-DPC
Add some comments to panic runtime
2019-11-25 15:05:26 +01:00
Pietro Albini
11b8e166e8
Rollup merge of #66684 - mark-i-m:error-reporting-cleanup, r=davidtwco
Drive-by cleanup in region naming
2019-11-25 15:05:25 +01:00
Pietro Albini
b6dc227299
Rollup merge of #66678 - GuillaumeGomez:remove-useless-error-index-line, r=Dylan-DPC
Remove useless line for error index generation

As you can see here: https://github.com/rust-lang/rust/blob/master/src/librustc_error_codes/error_codes.rs#L10, this replacement is now completely useless.

r? @Dylan-DPC
2019-11-25 15:05:23 +01:00
Pietro Albini
c75044f463
Rollup merge of #66569 - pietroalbini:gha-1, r=alexcrichton
GitHub Actions: preparations, part 1

This PR adds the first batch of commits in preparation for GitHub Actions:

* Added GitHub Actions support in `src/ci/shared.sh` and bootstrap.
* Addded a `setup-environment.sh` script which guesses and sets the `DEPLOY`, `DEPLOY_ALT` and `IMAGE` environment variables automatically, to reduce the verbosity of the CI configuration.

This PR does **not** yet add any builders on GitHub Actions.

r? @alexcrichton
2019-11-25 15:05:21 +01:00
Pietro Albini
2b4af10367
Rollup merge of #66512 - jsgf:process-argv0, r=Dylan-DPC
Add unix::process::CommandExt::arg0

This allows argv[0] to be overridden on the executable's command-line. This also makes the program
executed independent of argv[0].

Does Fuchsia have the same semantics? I'm assuming so.

Addresses: #66510
2019-11-25 15:05:19 +01:00
Pietro Albini
7520f6da69
Rollup merge of #65613 - Mark-Simulacrum:rustdoc-preserve-ws, r=GuillaumeGomez
Preserve whitespace inside one-backtick codeblocks

Previously this was only done inside short docblocks (e.g., summary
lines), but we should also do so in general.

Fixes #65555
2019-11-25 15:05:11 +01:00
Guillaume Gomez
c1ea1fd2b0 Update error messages 2019-11-25 14:24:53 +01:00
bors
ab21557501 Auto merge of #66682 - estebank:fn-type-err, r=davidtwco
Highlight parts of fn in type errors

When a type error arises between two fn items, fn pointers or tuples,
highlight only the differing parts of each.

Examples:

<img width="699" alt="" src="https://user-images.githubusercontent.com/1606434/69487597-ab561600-0e11-11ea-9b4e-d4fd9e91d5dc.png">
<img width="528" alt="" src="https://user-images.githubusercontent.com/1606434/69487207-9033d800-0e0a-11ea-93e3-8c4d002411a5.png">
<img width="468" alt="" src="https://user-images.githubusercontent.com/1606434/69487208-9033d800-0e0a-11ea-92e3-2b2cee120335.png">
<img width="775" alt="" src="https://user-images.githubusercontent.com/1606434/69487209-9033d800-0e0a-11ea-9e68-7f6ed5c8cb08.png">
2019-11-25 12:54:42 +00:00
Guillaume Gomez
7e813c4a01 Clean up E0063 long explanation 2019-11-25 13:32:11 +01:00
Guillaume Gomez
bf5c64abff Clean up E0062 long explanation 2019-11-25 13:31:05 +01:00
bors
582a4eaee6 Auto merge of #66279 - cjgillot:hashstable, r=Zoxc
Use proc-macro to derive HashStable everywhere

Hello,

A second proc-macro is added to derive HashStable for crates librustc depends on.
This proc-macro `HashStable_Generic` (to bikeshed) allows to decouple code and strip much of librustc's boilerplate.

Still, two implementations `Span` and `TokenKind` require to be placed in librustc.
The latter only depends on the `bug` macro. Advise welcome on how to sever that link.
A trait `StableHasingContextLike` has been introduced at each crate root,
in order to handle those implementations which require librustc's very `StableHashingContext`.

This overall effort allowed to remove the `impl_stable_hash_for` macro.

Each commit passes the `x.py check`.
I still have to double check there was no change in the implementation.
2019-11-25 09:28:59 +00:00
bors
4eee955502 Auto merge of #66669 - petrochenkov:tup2attr, r=matthewjasper
Fix some issues with attributes on unnamed fields

Fixes https://github.com/rust-lang/rust/issues/66487
Fixes https://github.com/rust-lang/rust/issues/66555
2019-11-25 05:41:27 +00:00
Esteban Küber
e5816a75cc Fix some rustdoc error capitalization 2019-11-24 18:42:22 -08:00
bors
c9bacb70f0 Auto merge of #66671 - matthewjasper:ast-address-of, r=Centril
Ast address-of

This is the parts of #64588 that don't affect MIR. If an address-of expression makes it to MIR lowering we error and lower to the best currently expressible approximation to limit further errors.

r? @Centril
2019-11-25 01:20:38 +00:00
Wesley Wiser
32e78ca2e3 Respond to CR feedback 2019-11-24 19:09:58 -05:00
Stefan Lankes
55ce5c09ff disable redzone 2019-11-24 23:40:32 +01:00
Matthew Jasper
294f7e4790 Handle non_exhaustive in borrow checking 2019-11-24 22:39:05 +00:00
bors
388ffd9df8 Auto merge of #66540 - nnethercote:SmallVec-Candidate-match_pairs, r=matthewjasper
Use a `SmallVec` for `Candidate::match_pairs`.

This is a small win for `encoding`.

r? @matthewjasper
2019-11-24 21:39:09 +00:00
Stefan Lankes
1475944bdc use nicer code style to pass tidy check 2019-11-24 22:36:50 +01:00
Mark Rousskov
66dce1114d Store ptr_width as u32 on Config
This removes the dependency on IntTy, UintTy from Session.
2019-11-24 16:32:07 -05:00
David Tolnay
fdcf854bb9
tidy: Accommodate rustfmt's preferred layout of stability attributes
Previously tidy would require that the `feature = "name_of_feature"`
part of the stability attribute was on the same line as the `#[stable(`
/ `#[unstable(` opening part of the attribute, and that `)]` was on the
same line as the last key-value pair.

That didn't work with rustfmt's preferred layout of long attributes,
which is like:

    #[unstable(
        feature = "c_variadic",
        reason = "the `c_variadic` feature has not been properly tested on \
                  all supported platforms",
        issue = "44930"
    )]
2019-11-24 12:52:50 -08:00
Stefan Lankes
28c6ef83c6 introduce a target to build the kernel HermitCore
- the target avoids the usage of SSE & AVX within the kernel
2019-11-24 21:05:32 +01:00
Matt Ickstadt
01d01ce3ca Add hardware floating point features to aarch64-pc-windows-msvc 2019-11-24 13:39:03 -06:00
Aaron Hill
df3f33870a
Update for ConstKind refactor 2019-11-24 14:37:24 -05:00