Commit Graph

103047 Commits

Author SHA1 Message Date
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
Aaron Hill
cec7d944ba
Add example and extra documentation 2019-11-24 14:37:24 -05:00
Aaron Hill
542383f65b
Fix missing character
Co-Authored-By: varkor <github@varkor.com>
2019-11-24 14:37:24 -05:00
Aaron Hill
850e3e6d4d
bug!() on const inference variable in opaque type
Add some tests to verify that this case is never hit
2019-11-24 14:37:24 -05:00
Aaron Hill
a59b7eabe6
Also fix lifetimes and consts in opaque types 2019-11-24 14:37:24 -05:00
Aaron Hill
6b47cbaee6
Improve error message when opaque type is not fully constrained 2019-11-24 14:37:24 -05:00
Aaron Hill
4b57d2228b
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-24 14:37:23 -05:00
bors
412f43ac5b Auto merge of #66647 - petrochenkov:nosynt, r=Centril
rustc_plugin: Remove support for syntactic plugins

This part of the plugin interface was successfully replaced by token-based procedural macros in theory and in practice.

cc https://github.com/rust-lang/rust/issues/29597
cc https://github.com/rust-lang/rust/pull/64675
r? @Centril
2019-11-24 18:16:43 +00:00
Matthew Jasper
f4efc5de8a Add tests for raw_ref_op 2019-11-24 18:06:13 +00:00
Matthew Jasper
064bed0f31 Parse and feature gate raw address of expressions 2019-11-24 18:06:13 +00:00
Matthew Jasper
a8efd31f2b Add raw address of expressions to the AST and HIR 2019-11-24 18:06:13 +00:00
Janusz Marcinkiewicz
6f70803e7e Fix pointing at arg for fulfillment errors in function calls 2019-11-24 15:26:09 +01:00
Timo Freiberg
2a0292f9aa fixup! Lowercase diagnostic message label 2019-11-24 15:17:16 +01:00
Timo Freiberg
318fb9a4da fixup! Add negative tests where the diagnostic message would be wrong 2019-11-24 15:17:16 +01:00
Timo Freiberg
dffdf378ee Add version mismatch help message for unimplemented trait
Issue #22750
The error reporting for E0277 (the trait `X` is not implemented for `Foo`)
now checks whether `Foo` implements a trait with the same path as `X`,
which probably means that the programmer wanted to actually use only one
version of the trait `X` instead of the two.
2019-11-24 15:17:16 +01:00
bors
5a1d028d4c Auto merge of #66592 - estebank:raw-raw-ah-ah-ah, r=cramertj
Rework raw ident suggestions

Use heuristics to determine whethersuggesting raw identifiers is
appropriate.

Account for raw identifiers when printing a path in a `use` suggestion.

Fix #66126.
2019-11-24 14:08:08 +00:00
Vadim Petrochenkov
2e41ce9923 tidy: Remove unused import 2019-11-24 16:09:55 +03:00
Ralf Jung
6440b94253 make comment compile 2019-11-24 13:15:22 +01:00
Ralf Jung
80f5213cee expand type info on __rust_start_panic 2019-11-24 13:13:33 +01:00
Elichai Turkel
b3666b6473
Update tests for raw array in FFI lint 2019-11-24 13:48:55 +02:00
Elichai Turkel
fb6647c626
Add FFI raw array lint 2019-11-24 13:35:50 +02:00
bors
b56b23988d Auto merge of #66393 - ssomers:hash_benches, r=dtolnay
introduce benchmarks of HashSet operations

To avoid goofs such as corrected by #66280, I added benchmarks of binary HashSet operations.

Due to the fact x.py keeps recompiling the whole shebang (or at least a big part of it) whenever you touch the test code, and because piling up all tests in one file does not strike me as future proof, I tried moving the hash benches to the separate place they are for liballoc/collections/btree. But it turns out that, in a cleaned checkout, x.py still recompiles the whole shebang whenever you touch the test code (PS or when you add or delete any irrelevant file). So I'm not going to add more tests, and I doubt others will, and these tests have proven their point already, so this PR is kind of pointless
2019-11-24 10:52:12 +00:00