Commit Graph

103599 Commits

Author SHA1 Message Date
Esteban Küber
f6b435d923 Accurately portray raw identifiers in error messages
When refering to or suggesting raw identifiers, refer to them with `r#`.

Fix #65634.
2019-12-03 19:01:42 -08:00
Aaron Hill
a6883c0ab0
Disable issue-59756 test for now
Currently, rustfix has no notion of mutually exclusive suggestions. When
it processes issue-59756, it will attempt to apply two mutually
exclusive suggestions for the same span, causing an error.
2019-12-03 21:56:32 -05:00
Aaron Hill
462f06de07
Emit coercion suggestions in more places
Fixes #66910

We have several different kinds of suggestions we can try to make when
type coercion fails. However, we were previously only emitting these
suggestions from `demand_coerce_diag`. This resulted in the compiler
failing to emit applicable suggestions in several different cases, such
as when the implicit return value of a function had the wrong type.

This commit adds a new `emit_coerce_suggestions` method, which tries to
emit a number of related suggestions. This method is called from both
`demand_coerce_diag` and `CoerceMany::coerce_inner`, which covers a much
wider range of cases than before.

We now suggest using `.await` in more cases where it is applicable,
among other improvements.
2019-12-03 21:51:16 -05:00
bors
ff143089a8 Auto merge of #66995 - flip1995:clippyup, r=Manishearth
Update Clippy

Fixes #66989

r? @Manishearth @Centril
2019-12-04 01:52:49 +00:00
Oliver Middleton
b6b0fd9148 rustdoc: Add test for fixed issue 2019-12-04 01:31:35 +00:00
Oliver Scherer
5cef094a72 Leave fixme 2019-12-04 01:51:26 +01:00
flip1995
5ce98d318d
Update Clippy 2019-12-04 01:37:28 +01:00
Andrew Banchich
1fa948f4cc
capitalize Rust 2019-12-03 19:11:53 -05:00
bors
2f04472c02 Auto merge of #66925 - RalfJung:miri, r=RalfJung
update Miri

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

r? @ghost
2019-12-03 22:40:44 +00:00
Sen Jiang
52649ddfbd
Fix documentation of pattern for str::matches()
Made it the same as rmatches()
2019-12-03 14:31:41 -08:00
Guillaume Gomez
c911bb1a2e clean up E0107 error explanation 2019-12-03 22:25:15 +01:00
Reese Williams
911b7d6d4d Update missed test. 2019-12-03 14:58:41 -05:00
Umesh Kalappa
dc1a428d87 Modified the testcases for VxWorks 2019-12-03 11:58:03 -08:00
bors
7afe6d9d1f Auto merge of #66997 - Centril:rollup-uraqpgu, r=Centril
Rollup of 7 pull requests

Successful merges:

 - #66750 (Update the `wasi` crate for `wasm32-wasi`)
 - #66878 (Move Sessions into (new) librustc_session)
 - #66903 (parse_enum_item -> parse_enum_variant)
 - #66951 (miri: add throw_machine_stop macro)
 - #66957 (Change Linker for x86_64-fortanix-unknown-sgx target to rust-lld)
 - #66960 ([const-prop] Fix ICE calculating enum discriminant)
 - #66973 (Update the minimum external LLVM to 7)

Failed merges:

r? @ghost
2019-12-03 18:42:43 +00:00
Mazdak Farrokhzad
8dcb5326dd
Rollup merge of #66973 - cuviper:min-llvm7, r=alexcrichton
Update the minimum external LLVM to 7

LLVM 7 is over a year old, which should be plenty for compatibility. The
last LLVM 6 holdout was llvm-emscripten, which went away in #65501.

I've also included a fix for LLVM 8 lacking `MemorySanitizerOptions`,
which was broken by #66522.
2019-12-03 19:41:57 +01:00
Mazdak Farrokhzad
ded98853ec
Rollup merge of #66960 - wesleywiser:fix_66787_take2, r=oli-obk,RalfJung
[const-prop] Fix ICE calculating enum discriminant

Fixes #66787

Different approach than #66857

r? @oli-obk
cc @RalfJung @eddyb
2019-12-03 19:41:55 +01:00
Mazdak Farrokhzad
69f1323167
Rollup merge of #66957 - parthsane:pvs/ftx_lld_linker, r=alexcrichton
Change Linker for x86_64-fortanix-unknown-sgx target to rust-lld

Changed linker for `x86_64-fortanix-unknown-sgx` target to `rust-lld`
This change needed the RelaxELFRelocations flag to be set for it to work correctly

r? @jethrogb
2019-12-03 19:41:54 +01:00
Mazdak Farrokhzad
71d1286bdf
Rollup merge of #66951 - RalfJung:miri-machine-stop, r=oli-obk
miri: add throw_machine_stop macro

r? @oli-obk
This helps Miri: https://github.com/rust-lang/miri/pull/1093
2019-12-03 19:41:52 +01:00
Mazdak Farrokhzad
d4b623547f
Rollup merge of #66903 - Centril:parse-enum-variant, r=estebank
parse_enum_item -> parse_enum_variant

r? @estebank
2019-12-03 19:41:51 +01:00
Mazdak Farrokhzad
b6602d2dd1
Rollup merge of #66878 - Mark-Simulacrum:sess-decouple, r=Centril
Move Sessions into (new) librustc_session

This PR moves `ParseSess` and `Session` from their current locations into a new crate, `librustc_session`.

There are several intents behind this change. librustc is a very large crate, and we want to split it up over time -- this movement removes the sizeable session module from it. It also helps allow for future movement of things not coupled to TyCtxt but coupled to Session out of the crate.

This movement allows allows for a future follow-up PR which unifies Session and ParseSess, allowing for a single source of truth for APIs interested in global options throughout the compiler; the ParseSess is already created directly as a member of Session in the current compiler (i.e., we do not first construct a ParseSess and then move it into Session later in the compilation).

This PR intentionally avoids changing numerous imports throughout the tree to new locations of the moved types; this is needless noise and can be done as needed.

In the process of moving the sessions back, the lint system received an update as well -- notably, early buffered lints are no longer ad-hoc declared as enum pairs and later associated with proper lint declarations. They are still separately handled (buffered), it is a little unclear whether this is truly necessary, but regardless is left for future PRs.

Many of the types moved back are sort of ad-hoc placed into the same crate (librustc_session) instead of creating other crates; it's unclear whether this is actually a good thing, but it seemed better than creating numerous tiny crates which served no purpose on their own.
2019-12-03 19:41:48 +01:00
Mazdak Farrokhzad
1b83dcf2ee
Rollup merge of #66750 - alexcrichton:update-wasi, r=sfackler
Update the `wasi` crate for `wasm32-wasi`

This commit updates the `wasi` crate used by the standard library which
is used to implement most of the functionality of libstd on the
`wasm32-wasi` target. This update comes with a brand new crate structure
in the `wasi` crate which caused quite a few changes for the wasi target
here, but it also comes with a significant change to where the
functionality is coming from.

The WASI specification is organized into "snapshots" and a new snapshot
happened recently, so the WASI APIs themselves have changed since the
previous revision. This had only minor impact on the public facing
surface area of libstd, only changing on `u32` to a `u64` in an unstable
API. The actual source for all of these types and such, however, is now
coming from the `wasi_preview_snapshot1` module instead of the
`wasi_unstable` module like before. This means that any implementors
generating binaries will need to ensure that their embedding environment
handles the `wasi_preview_snapshot1` module.
2019-12-03 19:41:46 +01:00
Eric Huss
8d77653647 Update cargo 2019-12-03 10:22:00 -08:00
BaoshanPang
79849eed5d add ExitStatusExt into prelude 2019-12-03 10:16:45 -08:00
Mark Rousskov
68fb218f22 Fix UI tests for new locations 2019-12-03 12:19:17 -05:00
Mark Rousskov
42c4ae0d4b Deduplicate CrateConfig 2019-12-03 12:19:17 -05:00
Mark Rousskov
cc2c33a156 Move Session to librustc_session 2019-12-03 12:19:16 -05:00
Mark Rousskov
52d4d478a1 Move ParseSess to librustc_session 2019-12-03 12:19:16 -05:00
Mark Rousskov
817d1ae834 Move BufferedEarlyLint to librustc_session 2019-12-03 12:19:16 -05:00
Mark Rousskov
2731075a6b Duplicate CrateConfig into Session
Since it's just a type alias this isn't too difficult and once Session
is moved back we can make this be the canonical location.
2019-12-03 12:19:16 -05:00
Mark Rousskov
e810b7ef5c Remove dead cfg method 2019-12-03 12:19:16 -05:00
Mark Rousskov
f2a8aed380 Directly use types from libsyntax::ast 2019-12-03 12:19:16 -05:00
Mark Rousskov
72c67bec09 Re-export Client from rustc_data_structures::jobserver 2019-12-03 12:19:16 -05:00
Mark Rousskov
285144a8de Move NativeLibraryKind to rustc_session 2019-12-03 12:19:16 -05:00
Mark Rousskov
f03d8f305a Move early lint declarations to librustc_session 2019-12-03 12:19:14 -05:00
Mark Rousskov
526ee51ccc Move Lint to rustc_session
This commit breaks early-lint registration, which will be fixed in the
next commit. This movement will allow essentially all crates in the compiler
tree to declare lints (though not lint passes).
2019-12-03 12:18:32 -05:00
Mark Rousskov
433e546af9 Move Level to rustc_session 2019-12-03 12:18:32 -05:00
Mark Rousskov
43516981cb Move duration_to_secs_str to rustc_session 2019-12-03 12:18:32 -05:00
Mark Rousskov
984c74a40a Move cgu_reuse_tracker to librustc_session 2019-12-03 12:18:32 -05:00
Mark Rousskov
c761ec1ac9 Introduce rustc_session crate 2019-12-03 12:18:32 -05:00
Mark Rousskov
b7cd58c00e Decouple CguReuseTracker from Session 2019-12-03 12:18:32 -05:00
Mark Rousskov
2ea18337f7 Use FxHash* from data structures not nodemap 2019-12-03 12:18:32 -05:00
Ralf Jung
6b7f63481a update miri 2019-12-03 18:04:03 +01:00
Ömer Sinan Ağacan
b85d5f42b0 Fix angle bracket formatting when dumping MIR debug vars
Fixes #66985
2019-12-03 19:21:31 +03:00
Alex Crichton
f3fb1c5e95 Update the wasi crate for wasm32-wasi
This commit updates the `wasi` crate used by the standard library which
is used to implement most of the functionality of libstd on the
`wasm32-wasi` target. This update comes with a brand new crate structure
in the `wasi` crate which caused quite a few changes for the wasi target
here, but it also comes with a significant change to where the
functionality is coming from.

The WASI specification is organized into "snapshots" and a new snapshot
happened recently, so the WASI APIs themselves have changed since the
previous revision. This had only minor impact on the public facing
surface area of libstd, only changing on `u32` to a `u64` in an unstable
API. The actual source for all of these types and such, however, is now
coming from the `wasi_preview_snapshot1` module instead of the
`wasi_unstable` module like before. This means that any implementors
generating binaries will need to ensure that their embedding environment
handles the `wasi_preview_snapshot1` module.
2019-12-03 07:03:06 -08:00
Esteban Küber
3091b823d1 Tweak wording of collect() on bad target type 2019-12-03 06:52:55 -08:00
Eduard-Mihai Burtescu
c2f4c57296 rustc: add docs to FnAbi::{of_fn_ptr,of_instance} and InstanceDef::Virtual. 2019-12-03 15:55:21 +02:00
Eduard-Mihai Burtescu
9da14a82c6 rustc: move Instance::fn_sig to ty::layout and privatize it. 2019-12-03 15:55:21 +02:00
Eduard-Mihai Burtescu
79d908b301 rustc_target: add abi::call::Conv::Rust distinct from Conv::C. 2019-12-03 15:55:21 +02:00
Eduard-Mihai Burtescu
e93aa104ab rustc_codegen_llvm: privatize as much of attributes::* as possible. 2019-12-03 15:55:21 +02:00
Eduard-Mihai Burtescu
cd3c324b07 rustc_codegen_llvm: take an Instance in attributes::from_fn_attrs. 2019-12-03 15:55:21 +02:00